pinafore/src/routes/_api/statuses.js

37 lines
1.2 KiB
JavaScript
Raw Normal View History

2018-03-05 00:27:15 +00:00
import { auth, basename } from './utils'
import { DEFAULT_TIMEOUT, get, post, WRITE_TIMEOUT } from '../_utils/ajax'
2018-03-05 00:27:15 +00:00
2018-03-05 01:16:33 +00:00
export async function postStatus (instanceName, accessToken, text, inReplyToId, mediaIds,
2018-04-19 03:43:13 +00:00
sensitive, spoilerText, visibility) {
2018-03-05 00:27:15 +00:00
let url = `${basename(instanceName)}/api/v1/statuses`
let body = {
status: text,
in_reply_to_id: inReplyToId,
media_ids: mediaIds,
sensitive: sensitive,
spoiler_text: spoilerText,
visibility: visibility
}
for (let key of Object.keys(body)) {
let value = body[key]
// remove any unnecessary fields, except 'status' which must at least be an empty string
if (key !== 'status' && (!value || (Array.isArray(value) && !value.length))) {
2018-03-05 00:27:15 +00:00
delete body[key]
}
}
return post(url, body, auth(accessToken), { timeout: WRITE_TIMEOUT })
2018-03-05 01:16:33 +00:00
}
export async function getStatusContext (instanceName, accessToken, statusId) {
let url = `${basename(instanceName)}/api/v1/statuses/${statusId}/context`
return get(url, auth(accessToken), { timeout: DEFAULT_TIMEOUT })
}
export async function getStatus (instanceName, accessToken, statusId) {
let url = `${basename(instanceName)}/api/v1/statuses/${statusId}`
return get(url, auth(accessToken), { timeout: DEFAULT_TIMEOUT })
}