UNPKG

channelape-sdk

Version:
136 lines 5.55 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const Resource_1 = require("../../model/Resource"); const Version_1 = require("../../model/Version"); const GenerateApiError_1 = require("../../utils/GenerateApiError"); const Q = require("q"); const EXPECTED_GET_STATUS = 200; const EXPECTED_CREATE_STATUS = 201; class BusinessesCrudService { constructor(client) { this.client = client; } get(request) { const deferred = Q.defer(); let requestUrl = `/${Version_1.default.V1}${Resource_1.default.BUSINESSES}`; let requestOptions = {}; if (request.userId) { requestOptions = { params: request }; } else { requestUrl += `/${request.businessId}`; } this.client.get(requestUrl, requestOptions, (error, response, body) => { this.mapBusinessesPromise(requestUrl, deferred, error, response, body, EXPECTED_GET_STATUS); }); return deferred.promise; } getBusinessMember(request) { const deferred = Q.defer(); const requestUrl = `/${Version_1.default.V1}${Resource_1.default.BUSINESSES}`; const requestOptions = { params: { businessId: request.businessId, userId: request.userId } }; this.client.get(requestUrl, requestOptions, (error, response, body) => { this.mapResponse(requestUrl, deferred, error, response, body, EXPECTED_GET_STATUS); }); return deferred.promise; } getBusinessUsers(businessId) { const deferred = Q.defer(); const requestUrl = `/${Version_1.default.V1}${Resource_1.default.BUSINESSES}/?businessId=${businessId}`; this.client.get(requestUrl, {}, (error, response, body) => { this.mapResponse(requestUrl, deferred, error, response, body, EXPECTED_GET_STATUS); }); return deferred.promise; } verifyBusinessMember(verificationCode) { const deferred = Q.defer(); const requestUrl = `/${Version_1.default.V1}${Resource_1.default.BUSINESS_MEMBER_VERIFICATIONS}/${verificationCode}`; const requestOptions = {}; this.client.get(requestUrl, requestOptions, (error, response, body) => { this.mapResponse(requestUrl, deferred, error, response, body, EXPECTED_GET_STATUS); }); return deferred.promise; } create(business) { const deferred = Q.defer(); const requestUrl = `${Version_1.default.V1}${Resource_1.default.BUSINESSES}`; const options = { data: business }; this.client.post(requestUrl, options, (error, response, body) => { this.mapResponse(requestUrl, deferred, error, response, body, EXPECTED_CREATE_STATUS); }); return deferred.promise; } inviteMember(email, businessId) { const deferred = Q.defer(); const requestUrl = `/${Version_1.default.V1}${Resource_1.default.BUSINESSES}/${businessId}/members`; const options = { data: { username: email } }; this.client.post(requestUrl, options, (error, response, body) => { this.mapResponse(requestUrl, deferred, error, response, body, EXPECTED_CREATE_STATUS); }); return deferred.promise; } removeMember(businessId, userId) { const deferred = Q.defer(); const requestUrl = `/${Version_1.default.V1}${Resource_1.default.BUSINESSES}/${businessId}/members/${userId}`; this.client.delete(requestUrl, {}, (error, response, body) => { this.mapResponse(requestUrl, deferred, error, response, body, EXPECTED_GET_STATUS); }); return deferred.promise; } update(business) { const deferred = Q.defer(); const requestUrl = `${Version_1.default.V1}${Resource_1.default.BUSINESSES}/${business.id}`; const options = { data: business }; this.client.put(requestUrl, options, (error, response, body) => { this.mapResponse(requestUrl, deferred, error, response, body, EXPECTED_GET_STATUS); }); return deferred.promise; } mapBusinessesPromise(requestUrl, deferred, error, response, body, expectedStatusCode) { if (error) { deferred.reject(error); } else if (response.status === expectedStatusCode) { if (body.businesses) { const businesses = body.businesses; deferred.resolve(businesses); } else { const business = body; deferred.resolve(business); } } else { const channelApeErrorResponse = (0, GenerateApiError_1.default)(requestUrl, response, body, expectedStatusCode); deferred.reject(channelApeErrorResponse); } } mapResponse(requestUrl, deferred, error, response, body, expectedStatusCode) { const data = body && body.users ? body.users : body; if (error) { deferred.reject(error); } else if (response.status === expectedStatusCode) { deferred.resolve(data); } else { const channelApeErrorResponse = (0, GenerateApiError_1.default)(requestUrl, response, data, expectedStatusCode); deferred.reject(channelApeErrorResponse); } } } exports.default = BusinessesCrudService; //# sourceMappingURL=BusinessesCrudService.js.map