UNPKG

pip-webui

Version:

HTML5 UI for LOB applications

606 lines (559 loc) 25.4 kB
/** * @file Settings data model * @copyright Digital Living Software Corp. 2014-2016 */ (function (angular) { 'use strict'; var thisModule = angular.module('pipUserSettings.Data', ['pipDataModel']); /** * @ngdoc service * @name pipUserSettings.Data:pipUserSettingsTabDataProvider * * @description * Service reproduces a data layer for settings component. * The service provides an interface to interact with server. * * @requires pipDataModel */ /** * @ngdoc service * @name pipUserSettings.Data:pipUserSettingsTabData * * @description * Service reproduces a data layer for settings component. * The service provides an interface to interact with server. * * @requires pipDataModel */ thisModule.provider('pipUserSettingsTabData', function () { /** * @ngdoc method * @methodOf pipUserSettings.Data:pipUserSettingsTabDataProvider * @name pipUserSettings.Data.pipUserSettingsTabDataProvider:readContactsResolver * * @description * Retrieve user's contacts from the server. * * @returns {promise} Request promise. */ this.readContactsResolver = /* @ngInject */ function ($stateParams, pipRest) { return pipRest.getOwnContacts().get({ party_id: pipRest.partyId($stateParams), session_id: pipRest.sessionId() }).$promise; }; /** * @ngdoc method * @methodOf pipUserSettings.Data:pipUserSettingsTabDataProvider * @name pipUserSettings.Data.pipUserSettingsTabDataProvider:readBlocksResolver * * @description * Retrieves blocks resolver from the server. * * @returns {promise} Request promise. */ this.readBlocksResolver = /* @ngInject */ function ($stateParams, pipRest) { return pipRest.connectionBlocks().query({ party_id: pipRest.partyId($stateParams) }).$promise; }; /** * @ngdoc method * @methodOf pipUserSettings.Data:pipUserSettingsTabDataProvider * @name pipUserSettings.Data.pipUserSettingsTabDataProvider:readSessionsResolver * * @description * Retrieves user's active sessions from the server. * * @returns {promise} Request promise. */ this.readSessionsResolver = /* @ngInject */ function ($stateParams, pipRest) { return pipRest.userSessions().query({ party_id: pipRest.partyId($stateParams) }).$promise; }; /** * @ngdoc method * @methodOf pipUserSettings.Data:pipUserSettingsTabDataProvider * @name pipUserSettings.Data.pipUserSettingsTabDataProvider:readSessionsResolver * * @description * Retrieves user's activities collection. * * @returns {promise} Request promise. */ this.readActivitiesResolver = /* @ngInject */ function ($stateParams, pipRest) { return pipRest.partyActivities().tab({ party_id: pipRest.partyId($stateParams), paging: 1, skip: 0, take: 25 }).$promise; }; /** * @ngdoc method * @methodOf pipUserSettings.Data:pipUserSettingsTabDataProvider * @name pipUserSettings.Data.pipUserSettingsTabDataProvider:readSettingsResolver * * @description * Retrieves user's party settings object from the server. * * @returns {promise} Request promise. */ this.readSettingsResolver = /* @ngInject */ function ($stateParams, pipRest) { return pipRest.partySettings().get({ party_id: pipRest.partyId($stateParams) }).$promise; }; /** * @ngdoc method * @methodOf pipUserSettings.Data:pipUserSettingsTabDataProvider * @name pipUserSettings.Data.pipUserSettingsTabDataProvider:readSessionIdResolver * * @description * Retrieves current user's active session id. * * @returns {promise} Request promise. */ this.readSessionIdResolver = /* @ngInject */ function ($stateParams, pipRest) { return pipRest.sessionId(); }; // CRUD operations and other business methods this.$get = function (pipRest, $stateParams) { return { /** * @ngdoc property * @propertyOf pipUserSettings.Data:pipUserSettingsTabData * @name pipUserSettings.Data.pipUserSettingsTabDataProvider:partyId * * @description * Contains user's party ID. */ partyId: pipRest.partyId, /** * @ngdoc method * @methodOf pipUserSettings.Data:pipUserSettingsTabData * @name pipUserSettings.Data.pipUserSettingsTabDataProvider:updateParty * * @description * Updates user's party configuration. * * @param {Object} transaction Service provides API to change application state * @param {Object} party New updating object * @param {Function} successCallback Function invokes when data is updated successfully * @param {Function} errorCallback Function invokes when data is not updated */ updateParty: function (transaction, party, successCallback, errorCallback) { var tid = transaction.begin('UPDATING'); if (!tid) { return; } pipRest.parties().update( party, function (updatedParty) { if (transaction.aborted(tid)) { return; } transaction.end(); if (successCallback) { successCallback(updatedParty); } }, function (error) { transaction.end(error); if (errorCallback) { errorCallback(error); } } ); }, /** * @ngdoc method * @methodOf pipUserSettings.Data:pipUserSettingsTabData * @name pipUserSettings.Data.pipUserSettingsTabDataProvider:saveContacts * * @description * Saves user's contacts. * * @param {Object} transaction Service provides API to change application state * @param {Array<Object>} contacts New updating contacts collection * @param {Function} successCallback Function invokes when data is updated successfully * @param {Function} errorCallback Function invokes when data is not updated */ saveContacts: function (transaction, contacts, successCallback, errorCallback) { var tid = transaction.begin('SAVING'); if (!tid) { return; } pipRest.contacts().save( contacts, function (savedContacts) { if (transaction.aborted(tid)) { return; } transaction.end(); if (successCallback) { successCallback(savedContacts); } }, function (error) { transaction.end(error); if (errorCallback) { errorCallback(error); } } ); }, /** * @ngdoc method * @methodOf pipUserSettings.Data:pipUserSettingsTabData * @name pipUserSettings.Data.pipUserSettingsTabDataProvider:updateContact * * @description * Updates a contact record. * * @param {Object} transaction Service provides API to change application state * @param {Object} contact Updating contant object * @param {Function} successCallback Function invokes when data is updated successfully * @param {Function} errorCallback Function invokes when data is not updated */ updateContact: function (transaction, contact, successCallback, errorCallback) { var tid = transaction.begin('UPDATING'); if (!tid) { return; } pipRest.contacts().update( contact, function (updatedContact) { if (transaction.aborted(tid)) { return; } transaction.end(); if (successCallback) { successCallback(updatedContact); } }, function (error) { transaction.end(error); if (errorCallback) { errorCallback(error); } } ); }, /** * @ngdoc method * @methodOf pipUserSettings.Data:pipUserSettingsTabData * @name pipUserSettings.Data.pipUserSettingsTabDataProvider:updateUser * * @description * Updates a user's profile. * * @param {Object} transaction Service provides API to change application state * @param {Object} user Updating user's profile * @param {Function} successCallback Function invokes when data is updated successfully * @param {Function} errorCallback Function invokes when data is not updated */ updateUser: function (transaction, user, successCallback, errorCallback) { var tid = transaction.begin('UPDATING'); if (!tid) { return; } pipRest.users().update( user, function (updatedUser) { if (transaction.aborted(tid)) { return; } transaction.end(); if (successCallback) { successCallback(updatedUser); } }, function (error) { transaction.end(error); if (errorCallback) { errorCallback(error); } } ); }, /** * @ngdoc method * @methodOf pipUserSettings.Data:pipUserSettingsTabData * @name pipUserSettings.Data.pipUserSettingsTabDataProvider:removeBlock * * @description * Removes a block. * * @param {Object} transaction Service provides API to change application state * @param {Object} block Removing block object * @param {Function} successCallback Function invokes when data is updated successfully * @param {Function} errorCallback Function invokes when data is not updated */ removeBlock: function (transaction, block, successCallback, errorCallback) { var tid = transaction.begin('REMOVING'); if (!tid) { return; } pipRest.connectionBlocks().remove( block, function (removedBlock) { if (transaction.aborted(tid)) { return; } transaction.end(); if (successCallback) { successCallback(removedBlock); } }, function (error) { transaction.end(error); if (errorCallback) { errorCallback(error); } } ); }, /** * @ngdoc method * @methodOf pipUserSettings.Data:pipUserSettingsTabData * @name pipUserSettings.Data.pipUserSettingsTabDataProvider:removeBlock * * @description * Remove an session, passed through parameters. * * @param {Object} transaction Service provides API to change application state * @param {Object} session Removing block object * @param {Function} successCallback Function invokes when data is updated successfully * @param {Function} errorCallback Function invokes when data is not updated */ removeSession: function (transaction, session, successCallback, errorCallback) { var tid = transaction.begin('REMOVING'); if (!tid) { return; } pipRest.userSessions().remove( { id: session.id, party_id: pipRest.partyId($stateParams) }, function (removedSession) { if (transaction.aborted(tid)) { return; } transaction.end(); if (successCallback) { successCallback(removedSession); } }, function (error) { transaction.end(error); if (errorCallback) { errorCallback(error); } } ); }, /** * @ngdoc method * @methodOf pipUserSettings.Data:pipUserSettingsTabData * @name pipUserSettings.Data.pipUserSettingsTabDataProvider:requestEmailVerification * * @description * Cancels process of email verification. * * @param {Object} transaction Service provides API to change application state */ requestEmailVerification: function (transaction) { var tid = transaction.begin('RequestEmailVerification'); if (!tid) { return; } pipRest.requestEmailVerification().get( { party_id: pipRest.partyId($stateParams) }, function () { if (transaction.aborted(tid)) { return; } transaction.end(); }, function (error) { transaction.end(error); } ); }, /** * @ngdoc method * @methodOf pipUserSettings.Data:pipUserSettingsTabData * @name pipUserSettings.Data.pipUserSettingsTabDataProvider:verifyEmail * * @description * Verifies passed email. * * @param {Object} transaction Service provides API to change application state * @param {Object} verifyData Verified data * @param {Function} successCallback Function invokes when data is updated successfully * @param {Function} errorCallback Function invokes when data is not updated */ verifyEmail: function (transaction, verifyData, successCallback, errorCallback) { var tid = transaction.begin('Verifying'); if (!tid) { return; } pipRest.verifyEmail().call( verifyData, function (verifyData) { if (transaction.aborted(tid)) { return; } transaction.end(); if (successCallback) { successCallback(verifyData); } }, function (error) { transaction.end(error); if (errorCallback) { errorCallback(error); } } ); }, /** * @ngdoc method * @methodOf pipUserSettings.Data:pipUserSettingsTabData * @name pipUserSettings.Data.pipUserSettingsTabDataProvider:verifyEmail * * @description * Saves user's settings. * * @param {Object} transaction Service provides API to change application state * @param {Object} settings Saves user's settings * @param {Function} successCallback Function invokes when data is updated successfully * @param {Function} errorCallback Function invokes when data is not updated */ saveSettings: function (transaction, settings, successCallback, errorCallback) { var tid = transaction.begin('SAVING'); if (!tid) { return; } pipRest.partySettings().save( settings, function (savedSettings) { if (transaction.aborted(tid)) { return; } transaction.end(); if (successCallback) { successCallback(savedSettings); } }, function (error) { transaction.end(error); if (errorCallback) { errorCallback(error); } } ); }, /** * @ngdoc method * @methodOf pipUserSettings.Data:pipUserSettingsTabData * @name pipUserSettings.Data.pipUserSettingsTabDataProvider:getPreviousActivities * * @description * Retrieves previous user's activities * * @param {Object} transaction Service provides API to change application state * @param {number} start Start position * @param {Function} successCallback Function invokes when data is updated successfully * @param {Function} errorCallback Function invokes when data is not updated */ getPreviousActivities: function (transaction, start, successCallback, errorCallback) { var tid = transaction.begin('SAVING'); if (!tid) { return; } pipRest.partyActivities().tab( { party_id: pipRest.partyId($stateParams), paging: 1, skip: start, take: 25 }, function (tabActivities) { if (transaction.aborted(tid)) { return; } transaction.end(); if (successCallback) { successCallback(tabActivities); } }, function (error) { transaction.end(error); if (errorCallback) { errorCallback(error); } } ); }, /** * @ngdoc method * @methodOf pipUserSettings.Data:pipUserSettingsTabData * @name pipUserSettings.Data.pipUserSettingsTabDataProvider:getRefPreviousEventsActivities * * @description * Retrieves events for corresponded to pervious activities * * @param {Object} transaction Service provides API to change application state * @param {Object} start Start position * @param {string} refType Name of needed entity * @param {Object} item Entity object * @param {Function} successCallback Function invokes when data is updated successfully * @param {Function} errorCallback Function invokes when data is not updated */ getRefPreviousEventsActivities: function (transaction, start, refType, item, successCallback, errorCallback) { var tid = transaction.begin('SAVING'); if (!tid) { return; } pipRest.partyActivities().tab( { party_id: pipRest.partyId($stateParams), paging: 1, skip: start, ref_type: refType, ref_id: item.id, take: 25 }, function (tabActivities) { if (transaction.aborted(tid)) { return; } transaction.end(); if (successCallback) { successCallback(tabActivities); } }, function (error) { transaction.end(error); if (errorCallback) { errorCallback(error); } } ); } }; }; }); })(window.angular);