UNPKG

@etsoo/smarterp-core

Version:
269 lines (268 loc) 7.04 kB
import { ApiResponseType } from "@etsoo/restclient"; import { EntityApi } from "@etsoo/appscript"; import { OrgDownloadKind } from "./dto/org/OrgDownloadKind"; import { DataTypes } from "@etsoo/shared"; /** * Organization API * 机构接口 */ export class OrgApi extends EntityApi { /** * Constructor * @param app Application * @param api API */ constructor(app, api = app.api) { super("Org", app, api); } /** * Create * @param rq Request data * @param payload Payload * @returns Result */ create(rq, payload) { return this.createBase(rq, payload); } /** * Create API * @param rq Request data * @param payload Payload * @returns Result */ createApi(rq, payload) { return this.api.post(`${this.flag}/CreateApi`, rq, payload); } /** * Create resource * @param rq Request data * @param payload Payload * @returns Result */ createResource(rq, payload) { return this.api.post(`${this.flag}/CreateResource`, rq, payload); } /** * Delete * @param id Id * @param payload Payload * @returns Result */ delete(id, payload) { return this.deleteBase(id, payload); } /** * Download file * @kind Download kind * @param id id * @param payload Payload * @returns Result */ async downloadFile(kind, id) { const payload = { responseType: ApiResponseType.Stream }; const key = DataTypes.getEnumKey(OrgDownloadKind, kind); const result = await this.api.get(`${this.flag}/Download${key}File/${id}`, undefined, payload); if (result == null || payload.response == null) return; const filename = this.api.getContentDisposition(payload.response)?.filename ?? "DownloadFile"; await this.app.download(result, filename); } /** * Format HTML content * @param content HTML content * @param payload Payload * @returns Result */ formatHtmlContent(content, payload) { return this.api.post(`${this.flag}/FormatHtmlContent`, content, payload); } /** * Get current organization's custom resources * @param culture Culture * @param payload Payload * @returns Result */ getCustomResources(culture, payload) { return this.api.get(`${this.flag}/GetCustomResources/${culture}`, undefined, payload); } /** * Get user's latest accessed organizations * @param rq Request data * @param payload Payload * @returns Result */ getMy(rq, payload) { return this.api.post(`${this.flag}/GetMy`, rq, payload); } /** * Leave the organization * @param id Organization id * @param payload Payload * @returns Result */ leave(id, payload) { return this.api.post(`${this.flag}/Leave/${id}`, undefined, payload); } /** * List * @param rq Request data * @param payload Payload * @returns Result */ list(rq, payload) { return this.listBase(rq, payload); } /** * Query * @param rq Request data * @param payload Payload * @returns Result */ query(rq, payload) { return this.queryBase(rq, payload); } /** * Query API * @param rq Request data * @param payload Payload * @returns Result */ queryApi(rq, payload) { return this.api.post(`${this.flag}/QueryApi`, rq, payload); } /** * Query custom resources * @param rq Request data * @param payload Payload * @returns Result */ queryResource(rq, payload) { return this.api.post(`${this.flag}/QueryResource`, rq, payload); } /** * Read * @param id Id * @param payload Payload * @returns Result */ read(id, payload) { return this.readBase(id, payload); } /** * Read API schema * 读取接口架构 * @param service API service * @param payload Payload * @returns Result */ readApiSchema(service, payload) { return this.api.get(`${this.flag}/ReadApiSchema/${service}`, undefined, payload); } /** * Get Antiforgery request token * 获取反伪造请求令牌 * @param payload Payload * @returns Result */ requestToken(payload) { return this.api.get(`${this.flag}/RequestToken`, undefined, payload); } /** * Send email * 发送邮件 * @param message Email message * @param payload Payload * @returns Result */ sendEmail(message, payload) { return this.api.post(`${this.flag}/SendEmail`, message, payload); } /** * Send SMS * 发送短信 * @param message SMS message * @param payload Payload * @returns Result */ sendSMS(message, payload) { return this.api.post(`${this.flag}/SendSMS`, message, payload); } /** * Send profile email * @param rq Request data * @param payload Payload * @returns Result */ sendProfileEmail(rq, payload) { return this.api.post(`${this.flag}/SendProfileEmail`, rq, payload); } /** * Update * @param rq Request data * @param payload Payload * @returns Result */ update(rq, payload) { return this.updateBase(rq, payload); } /** * Update API * @param rq Request data * @param payload Payload * @returns Result */ updateApi(rq, payload) { return this.api.put(`${this.flag}/UpdateApi`, rq, payload); } /** * Update avatar * @param id Organization id * @param data Avatar form data * @param payload Payload * @returns Result */ updateAvatar(id, data, payload) { return this.api.put(`${this.flag}/UpdateAvatar/${id}`, data, payload); } /** * Update read * @param id Id * @param payload Payload * @returns Result */ updateRead(id, payload) { return this.updateReadBase(id, payload); } /** * Update API read * @param id Id * @param payload Payload * @returns Result */ updateApiRead(id, payload) { return this.api.get(`${this.flag}/UpdateApiRead/${id}`, undefined, payload); } /** * Upload profle attachments * @param id Profile id * @param files Files * @param action Action data * @param payload Payload * @returns Result */ uploadProfileFiles(id, files, action, payload) { return this.api.post(`${this.flag}/UploadProfileFiles/${id}?action=${encodeURIComponent(JSON.stringify(action))}`, files, payload); } /** * Update read * @param id Id * @param payload Payload * @returns Result */ updateResourceRead(id, payload) { return this.api.get(`${this.flag}/UpdateResourceRead/${id}`, undefined, payload); } }