(function(){ "use strict"; angular .module("app.repositories") .factory("repository.careProvider", careProvidersRepository); function careProvidersRepository(webApi, dataTableConstant, personHelper){ return { add: add, activateLicense: activateLicense, block: block, changePassword : changePassword , deActivateLicense: deActivateLicense, getById: getById, getAll: getAll, getAllActive: getAllActive, getAllBlocked: getAllBlocked, deleteBankAccountById: deleteBankAccountById, updateById: updateById, unblock: unblock, uploadCareProviderImage: uploadCareProviderImage, updateDate: updateDate, getSpecialQualities:getSpecialQualities, getServicingAreas:getServicingAreas, getServicesCategories:getServicesCategories }; function add(careProvider){ return webApi.createCareProvider(careProvider); } function activateLicense(careProviderId){ return webApi.activateCareProviderLicense({ "url": { "id": careProviderId } }); } function block(service){ return webApi.blockCareProviderById({ "url": { id: service.id } }); } function changePassword (id, model){ return webApi.changeCareProviderPasswordById({ "url": { id: id }, "data": model }); } function deActivateLicense(careProviderId, model){ return webApi.deActivateCareProviderLicense({ "url": { "id": careProviderId }, "data": model }); } function getById(id){ return webApi.getCareProviderById({ url: { id: id } }); } function getSpecialQualities(){ return webApi.getSpecialQualities([]); } function getServicingAreas(){ return webApi.getServicingAreas([]); } function getServicesCategories(){ return webApi.getServicesCategories([]); } function getAll(){ return webApi.getAllCareProvidersAll([]); } /** * Get all existing places by user Id. * @param {string|null} query * @param {string|null} orderBy * @param {string|null} orderDirection * @param {string|number} currentPage * @param {string|number} itemsPerPage * @returns {*} */ function getAllActive(currentPage, itemsPerPage, queryParams){ queryParams.pageNumber = currentPage || dataTableConstant.CURRENT_PAGE; queryParams.pageSize = itemsPerPage || dataTableConstant.REQUEST_PAGE_SIZE; queryParams = excludeNullable(queryParams); return webApi.getAllActivecareProviders({ before: [], after: queryParams }) } function getAllBlocked(currentPage, itemsPerPage, queryParams){ queryParams.pageNumber = currentPage || dataTableConstant.CURRENT_PAGE; queryParams.pageSize = itemsPerPage || dataTableConstant.REQUEST_PAGE_SIZE; queryParams = excludeNullable(queryParams); return webApi.getAllBlockedcareProviders({ before: [], after: queryParams }) } function deleteBankAccountById(accountId, careProviderId){ return webApi.deleteCareProviderBankAccountsById({ "url": { accountId: accountId, careProviderId: careProviderId } }); } function updateById(id, careProvider){ return webApi.updateCareProviderById({ url: { id: id }, data: careProvider }); } function unblock(service){ return webApi.unblockCareProviderById({ "url": { id: service.id } }); } function uploadCareProviderImage(id, data){ return webApi.uploadCareProviderImage({ "url": { "id": id }, "data": data, "options": { "transformRequest": angular.identity, "headers": { 'Content-Type': undefined } } }); } function excludeNullable(model) { var result = {}; for (var key in model) { if (model.hasOwnProperty(key)) { if (model[key] != null && model[key] != "") { result[key] = model[key]; } } } return result; } /** * Update the date value inside input via jQuery. * @param {element|string} id * @param {number|string|date} value * @param {boolean|undefined} isEmpty * @param {string|date} endDate */ function updateDate(id, value, isEmpty, endDate){ personHelper.updateDate(id, value, isEmpty, endDate); } } // IoC container. careProvidersRepository.$inject = [ "webApi", "appConstant.dataTable", "helpers.person" ]; })();