156 lines
3.4 KiB
JavaScript
156 lines
3.4 KiB
JavaScript
import request from '@/utils/request'
|
|
import { getToken } from '@/utils/auth'
|
|
import { baseName } from './utils'
|
|
|
|
import _ from 'lodash'
|
|
|
|
export async function deletePack(host, token, name) {
|
|
return await request({
|
|
baseURL: baseName(host),
|
|
url: `/api/pleroma/emoji/packs/${name}`,
|
|
method: 'delete',
|
|
headers: authHeaders(token)
|
|
})
|
|
}
|
|
|
|
export async function reloadEmoji(host, token) {
|
|
return await request({
|
|
baseURL: baseName(host),
|
|
url: '/api/pleroma/admin/reload_emoji',
|
|
method: 'post',
|
|
headers: authHeaders(token)
|
|
})
|
|
}
|
|
|
|
export async function importFromFS(host, token) {
|
|
return await request({
|
|
baseURL: baseName(host),
|
|
url: '/api/pleroma/emoji/packs/import_from_fs',
|
|
method: 'post',
|
|
headers: authHeaders(token)
|
|
})
|
|
}
|
|
|
|
export async function createPack(host, token, name) {
|
|
return await request({
|
|
baseURL: baseName(host),
|
|
url: `/api/pleroma/emoji/packs/${name}`,
|
|
method: 'put',
|
|
headers: authHeaders(token)
|
|
})
|
|
}
|
|
|
|
export async function listPacks(host) {
|
|
return await request({
|
|
baseURL: baseName(host),
|
|
url: `/api/pleroma/emoji/packs/`,
|
|
method: 'get'
|
|
})
|
|
}
|
|
|
|
export async function listRemotePacks(host, token, instance) {
|
|
return await request({
|
|
baseURL: baseName(host),
|
|
url: `/api/pleroma/emoji/packs/list_from`,
|
|
method: 'post',
|
|
headers: authHeaders(token),
|
|
data: { instance_address: baseName(instance) }
|
|
})
|
|
}
|
|
|
|
export async function downloadFrom(host, instance_address, pack_name, as, token) {
|
|
if (as.trim() === '') {
|
|
as = null
|
|
}
|
|
|
|
return await request({
|
|
baseURL: baseName(host),
|
|
url: '/api/pleroma/emoji/packs/download_from',
|
|
method: 'post',
|
|
headers: authHeaders(token),
|
|
data: { instance_address: baseName(instance_address), pack_name, as },
|
|
timeout: 0
|
|
})
|
|
}
|
|
|
|
export async function savePackMetadata(host, token, name, new_data) {
|
|
return await request({
|
|
baseURL: baseName(host),
|
|
url: `/api/pleroma/emoji/packs/${name}/update_metadata`,
|
|
method: 'post',
|
|
headers: authHeaders(token),
|
|
data: { name, new_data },
|
|
timeout: 0 // This might take a long time
|
|
})
|
|
}
|
|
|
|
function fileUpdateFormData(d) {
|
|
const data = new FormData()
|
|
|
|
_.each(d, (v, k) => {
|
|
data.set(k, v)
|
|
})
|
|
|
|
return data
|
|
}
|
|
|
|
export async function updatePackFile(host, token, args) {
|
|
let data = null
|
|
|
|
switch (args.action) {
|
|
case 'add': {
|
|
const { shortcode, file, fileName } = args
|
|
|
|
data = fileUpdateFormData({
|
|
action: 'add',
|
|
shortcode: shortcode,
|
|
file: file
|
|
})
|
|
if (fileName.trim() !== '') {
|
|
data.set('filename', fileName)
|
|
}
|
|
|
|
break
|
|
}
|
|
|
|
case 'update': {
|
|
const { oldName, newName, newFilename } = args
|
|
|
|
data = fileUpdateFormData({
|
|
action: 'update',
|
|
shortcode: oldName,
|
|
new_shortcode: newName,
|
|
new_filename: newFilename
|
|
})
|
|
|
|
break
|
|
}
|
|
|
|
case 'remove': {
|
|
const { name } = args
|
|
data = fileUpdateFormData({
|
|
action: 'remove',
|
|
shortcode: name
|
|
})
|
|
|
|
break
|
|
}
|
|
}
|
|
|
|
const { packName } = args
|
|
|
|
return await request({
|
|
baseURL: baseName(host),
|
|
url: `/api/pleroma/emoji/packs/${packName}/update_file`,
|
|
method: 'post',
|
|
headers: authHeaders(token),
|
|
data: data,
|
|
timeout: 0
|
|
})
|
|
}
|
|
|
|
export function addressOfEmojiInPack(host, packName, name) {
|
|
return `${baseName(host)}/emoji/${packName}/${name}`
|
|
}
|
|
|
|
const authHeaders = (token) => token ? { 'Authorization': `Bearer ${getToken()}` } : {}
|