import TemplatesRoute from "../routes/TemplatesRoute"; import Requests from "../util/Requests"; import Response from "../util/Response"; import { AxiosPromise } from "axios"; class Templates { /** * List all the templates. * * @see https://api.glitch.fun/api/documentation#/Template%20Route/resourceTemplateList * * @returns promise */ public static list(params?: Record) : AxiosPromise> { return Requests.processRoute(TemplatesRoute.routes.list, undefined, undefined, params); } /** * Create a new template. * * @see https://api.glitch.fun/api/documentation#/Template%20Route/newTemplateResourceStorage * * @param data The data to be passed when creating a template. * * @returns Promise */ public static create(data : object, params?: Record) : AxiosPromise> { return Requests.processRoute(TemplatesRoute.routes.create, data, undefined, params); } /** * Update a template. * * @see https://api.glitch.fun/api/documentation#/Template%20Route/updateTemplateStorage * * @param template_id The id of the template to update. * @param data The data to update. * * @returns promise */ public static update(template_id : string, data : object, params?: Record) : AxiosPromise>{ return Requests.processRoute(TemplatesRoute.routes.update, data, {template_id : template_id}, params); } /** * Retrieve the information for a single template. * * @see https://api.glitch.fun/api/documentation#/Template%20Route/showTemplateStorage * * @param template_id The id fo the template to retrieve. * * @returns promise */ public static view(template_id : string, params?: Record) : AxiosPromise> { return Requests.processRoute(TemplatesRoute.routes.view, {}, {template_id : template_id}, params); } /** * Deletes a template. * * @see https://api.glitch.fun/api/documentation#/Template%20Route/destoryTemplateStorage * * @param template_id The id of the template to delete. * @returns promise */ public static delete(template_id : string, params?: Record) : AxiosPromise> { return Requests.processRoute(TemplatesRoute.routes.delete, {}, {template_id : template_id}, params); } /** * Updates the logo for the template using a File object. * * @see https://api.glitch.fun/api/documentation#/Template%20Route/uploadLogoTemplateImage * * @param file The file object to upload. * @param data Any additional data to pass along to the upload. * * @returns promise */ public static uploadLogoFile(template_id: string, file : File, data? : object, params?: Record): AxiosPromise> { let url = TemplatesRoute.routes.uploadLogo.url.replace('{template_id}', template_id); return Requests.uploadFile(url, 'image', file, data); } /** * Updates the logo for the template using a Blob. * * @see https://api.glitch.fun/api/documentation#/Template%20Route/uploadLogoTemplateImage * * @param blob The blob to upload. * @param data Any additional data to pass along to the upload * * @returns promise */ public static uploadLogoBlob(template_id: string, blob : Blob, data? : object, params?: Record): AxiosPromise> { let url = TemplatesRoute.routes.uploadLogo.url.replace('{template_id}', template_id); return Requests.uploadBlob(url, 'image', blob, data); } /** * Updates the main image for the template using a File object. * * @see https://api.glitch.fun/api/documentation#/Template%20Route/uploadMainTemplateImage * * @param file The file object to upload. * @param data Any additional data to pass along to the upload. * * @returns promise */ public static uploadMainImageFile(template_id: string, file : File, data? : object, params?: Record): AxiosPromise> { let url = TemplatesRoute.routes.uploadMainImage.url.replace('{template_id}', template_id); return Requests.uploadFile(url, 'image', file, data); } /** * Updates the main image for the template using a Blob. * * @see https://api.glitch.fun/api/documentation#/Template%20Route/uploadMainTemplateImage * * @param blob The blob to upload. * @param data Any additional data to pass along to the upload * * @returns promise */ public static uploadMainImageBlob(template_id: string, blob : Blob, data? : object, params?: Record): AxiosPromise> { let url = TemplatesRoute.routes.uploadMainImage.url.replace('{template_id}', template_id); return Requests.uploadBlob(url, 'image', blob, data); } } export default Templates;