import MessagesRoute from "../routes/MessagesRoute"; import Requests from "../util/Requests"; import Response from "../util/Response"; import { AxiosPromise } from "axios"; class Messages { /** * Get all the message threads that a user has particpated in. * * @see https://api.glitch.fun/api/documentation#/Messages/getConversations * * @returns promise */ public static listMessageThreads(params?: Record): AxiosPromise> { return Requests.processRoute(MessagesRoute.routes.listMessageThreads, undefined, undefined, params); } /** * Send a new message that will be added to a thread. Festival-scoped threads * enforce current admission, blocking and read-only state server-side. * Include an optional client_message_id UUID and reuse it when retrying a * timed-out request to prevent duplicate messages and notifications. * * @see https://api.glitch.fun/api/documentation#/Messages/storeMessage * * @returns A promise */ public static sendMessage(data? : object, params?: Record) : AxiosPromise> { return Requests.processRoute(MessagesRoute.routes.sendMessage, data, {}, params); } /** * Updates a message. * * @see https://api.glitch.fun/api/documentation#/Messages/updateMessage * * @returns A promise */ public static updateMessage(message_id: string, data? : object, params?: Record) : AxiosPromise> { return Requests.processRoute(MessagesRoute.routes.updateMessage, data, {message_id : message_id}, params); } /** * Deletes a message. * * @see https://api.glitch.fun/api/documentation#/Messages/destroyMessage * * @returns A promise */ public static deleteMessage(message_id: string, data? : object, params?: Record) : AxiosPromise> { return Requests.processRoute(MessagesRoute.routes.deleteMessage, data, {message_id : message_id}, params); } /** * A message thread is a thread between multiple users. Pass the user ids in the thread and it will either * get the current thread or create a new thread. * * @see https://api.glitch.fun/api/documentation#/Messages/conversations * * @returns A promise */ public static createOrGetThread(data? : object, params?: Record) : AxiosPromise> { return Requests.processRoute(MessagesRoute.routes.createOrGetThread, data, {}, params); } /** * Get a single thread. * * @see https://api.glitch.fun/api/documentation#/Messages/getThread * * @returns promise */ public static getThread(thread_id : string, params?: Record): AxiosPromise> { return Requests.processRoute(MessagesRoute.routes.getThread, undefined, {thread_id : thread_id}, params); } } export default Messages;