>>(function () { >> 'use strict'; >> >> var app = angular.module('sysMgrApp'); >> >> app.factory('invoicesService', ['$http', '$q', function($http, $q) { >> >> var deferredMeta = null; >> >> var invokeCallNumber = 0; >> // Implementation >> var getMetaData = function () { >> >> if (deferredMeta) { >> return deferredMeta.promise; >> } >> >> deferredMeta = $q.defer(); >> >> if (service.metaData) >> deferredMeta.resolve(service.metaData); >> else { >> >> $http.get('/api/invoices/metadata') >> .success(function (data) { >> invokeCallNumber++; >> window.console && console.log('Calling http service ' + invokeCallNumber + ' time...') >> service.metaData = data; >> deferredMeta.resolve(data); >> }) >> .error(function (data, status, header, config) { >> >> deferredMeta.reject(status); >> }); >> } >> >> return deferredMeta.promise; >> }; >> >> var getInvoices = function (queryRequest) { >> var deferred = $q.defer(); >> $http.get('/api/invoices', { params: queryRequest }) >> .success(function (data) { >> deferred.resolve(data); >> }) >> .error(function (data, status, header, config) { >> deferred.reject(status); >> }); >> return deferred.promise; >> }; >> >> var getAccountInvoices = function (queryRequest) { >> var deferred = $q.defer(); >> $http.get('/api/invoices/getAccountInvoices', { params: queryRequest }) >> .success(function (data) { >> deferred.resolve(data); >> }) >> .error(function (data, status, header, config) { >> deferred.reject(status); >> }); >> return deferred.promise; >> }; >> >> var getNonFinalizedInvoices = function(queryRequest) { >> var deferred = $q.defer(); >> $http.get('/api/invoices/getInvoicesToApplyFees', { params: queryRequest }) >> .success(function (data) { >> deferred.resolve(data); >> }) >> .error(function (data, status, header, config) { >> deferred.reject(status); >> }); >> return deferred.promise; >> }; >> >> var processPayments = function (transactionObject) { >> var deferred = $q.defer(); >> $http.post('/api/invoices/processPayments', transactionObject) >> .success(function (data) { >> deferred.resolve(data); >> }) >> .error(function (data, status, header, config) { >> deferred.reject(status); >> }); >> return deferred.promise; >> }; >> >> var getAccountInvoices = function (queryRequest) { >> var deferred = $q.defer(); >> $http.get('/api/invoices/getAccountInvoices', { params: queryRequest }) >> .success(function (data) { >> deferred.resolve(data); >> }) >> .error(function (data, status, header, config) { >> deferred.reject(status); >> }); >> return deferred.promise; >> }; >> >> var getInvoicesToBePaid = function (queryRequest) { >> var deferred = $q.defer(); >> $http.get('/api/invoices/getInvoicesToBePaid', { params: queryRequest }) >> .success(function (data) { >> deferred.resolve(data); >> }) >> .error(function (data, status, header, config) { >> deferred.reject(status); >> }); >> return deferred.promise; >> }; >> >> var getInvoice = function (id) { >> var deferred = $q.defer(); >> $http.get('/api/invoices/' + id) >> .success(function (data) { >> deferred.resolve(data); >> }) >> .error(function (data, status, header, config) { >> deferred.reject(status); >> }); >> return deferred.promise; >> }; >> >> var createInvoice = function (invoice) { >> var deferred = $q.defer(); >> $http.post('/api/invoices', invoice) >> .success(function (data) { >> deferred.resolve(data); >> }) >> .error(function (data, status, header, config) { >> deferred.reject(status); >> }); >> return deferred.promise; >> }; >> >> var saveInvoice = function (invoice) { >> var deferred = $q.defer(); >> $http.put('/api/invoices', invoice) >> .success(function (data) { >> deferred.resolve(data); >> }) >> .error(function (data, status, header, config) { >> deferred.reject(data, status); >> }); >> return deferred.promise; >> }; >> >> var deleteInvoice = function (invoiceNo) { >> var deferred = $q.defer(); >> $http.delete('/api/invoices/' + invoiceNo) >> .success(function (data) { >> deferred.resolve(data); >> }) >> .error(function (data, status, header, config) { >> deferred.reject(status); >> }); >> return deferred.promise; >> }; >> >> // Interface >> var service = { >> metaData: null, >> getMetaData: getMetaData, >> getInvoices: getInvoices, >> getAccountInvoices: getAccountInvoices, >> getInvoicesToBePaid: getInvoicesToBePaid, >> getInvoice: getInvoice, >> createInvoice: createInvoice, >> saveInvoice: saveInvoice, >> deleteInvoice: deleteInvoice, >> processPayments: processPayments >> }; >> >> return service; >> }]); >>})(); >>>>