UNPKG

@zohocrm/nodejs-sdk-2.0

Version:
78 lines (68 loc) 3.12 kB
const Param = require("../../../../../../routes/param").MasterModel; const ParameterMap = require("../../../../../../routes/parameter_map").MasterModel; const APIResponse = require("../../../../../../routes/controllers/api_response").MasterModel; const CommonAPIHandler = require("../../../../../../routes/middlewares/common_api_handler").MasterModel; const Constants = require("../../../../../../utils/util/constants").MasterModel; const SDKException = require("../exception/sdk_exception").MasterModel; class FileOperations{ /** * The method to upload files * @param {BodyWrapper} request An instance of BodyWrapper * @param {ParameterMap} paramInstance An instance of ParameterMap * @returns {APIResponse} An instance of APIResponse * @throws {SDKException} */ async uploadFiles(request, paramInstance=null) { const BodyWrapper = require("./body_wrapper").MasterModel; if((request != null) && (!(request instanceof BodyWrapper))) { throw new SDKException(Constants.DATA_TYPE_ERROR, "KEY: request EXPECTED TYPE: BodyWrapper", null, null); } if((paramInstance != null) && (!(paramInstance instanceof ParameterMap))) { throw new SDKException(Constants.DATA_TYPE_ERROR, "KEY: paramInstance EXPECTED TYPE: ParameterMap", null, null); } var handlerInstance = new CommonAPIHandler(); var apiPath = ''; apiPath = apiPath.concat("/crm/v2/files"); handlerInstance.setAPIPath(apiPath); handlerInstance.setHttpMethod(Constants.REQUEST_METHOD_POST); handlerInstance.setCategoryMethod(Constants.REQUEST_CATEGORY_CREATE); handlerInstance.setContentType("multipart/form-data"); handlerInstance.setRequest(request); handlerInstance.setMandatoryChecker(true); handlerInstance.setParam(paramInstance); let ActionHandler = require.resolve("./action_handler"); return handlerInstance.apiCall(ActionHandler, "application/json"); } /** * The method to get file * @param {ParameterMap} paramInstance An instance of ParameterMap * @returns {APIResponse} An instance of APIResponse * @throws {SDKException} */ async getFile(paramInstance=null) { if((paramInstance != null) && (!(paramInstance instanceof ParameterMap))) { throw new SDKException(Constants.DATA_TYPE_ERROR, "KEY: paramInstance EXPECTED TYPE: ParameterMap", null, null); } var handlerInstance = new CommonAPIHandler(); var apiPath = ''; apiPath = apiPath.concat("/crm/v2/files"); handlerInstance.setAPIPath(apiPath); handlerInstance.setHttpMethod(Constants.REQUEST_METHOD_GET); handlerInstance.setCategoryMethod(Constants.REQUEST_CATEGORY_READ); handlerInstance.setParam(paramInstance); let ResponseHandler = require.resolve("./response_handler"); return handlerInstance.apiCall(ResponseHandler, "application/x-download"); } } class UploadFilesParam{ static TYPE = new Param("type", "com.zoho.crm.api.File.UploadFilesParam"); } class GetFileParam{ static ID = new Param("id", "com.zoho.crm.api.File.GetFileParam"); } module.exports = { GetFileParam : GetFileParam, UploadFilesParam : UploadFilesParam, MasterModel : FileOperations, FileOperations : FileOperations }