helper.js 1.46 KB
import request from './request'

export default class Helper {

    static getKey() {
        return parseInt(process.env.VUE_APP_API_KEY)
    }

    static getSecret() {
        return process.env.VUE_APP_API_SECRET
    }

    static getExpire() {
        return parseInt(process.env.VUE_APP_API_EXPIRETIME)
    }


    static getUrlKey(name) {
        return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.href) || [, ''])[1].replace(/\+/g, '%20')) || null
    }

    static getToken() {
        return this.getUrlKey('token')
    }

    static getSignature(userID) {
        const generator = new window.LibGenerateTestUserSig(this.getKey(), this.getSecret(), this.getExpire())
        return generator.genTestUserSig(userID)
    }

    /**
     *
     * @returns {Promise<never>|Promise<{sign, id}>}
     */
    static verifyToken() {
        return request.get('auth').then(res => {
            const {esm_id} = res.data
            return Promise.resolve({id: esm_id, sign: this.getSignature(esm_id)})
        })
    }

    static contactList(params = {}) {
        return request.get('im/contacts', {params})
    }

    static groupList(params = {}) {
        return request.get('im/groups', {params})
    }

    static groupMemberList(group, params = {}) {
        return request.get(`im/groups/${group}/members`, {params})
    }

    static joinGroup(id, member) {
        return request.post(`im/groups/${id}/members`, {member})
    }
}