@raincatcher/angularjs-http
Advanced tools
Comparing version 0.0.2 to 0.0.5
var Promise = require('bluebird'); | ||
var noop = function() { }; | ||
var util = require('util'); | ||
var EventEmitter = require('events').EventEmitter; | ||
function HttpDataService(entityName, baseUrlPromise, $http) { | ||
EventEmitter.call(this); | ||
this.entityName = entityName; | ||
@@ -10,12 +14,11 @@ this.baseUrlPromise = baseUrlPromise; | ||
'beforeCreate': noop, | ||
'afterCreate': noop, | ||
'beforeUpdate': noop, | ||
'afterUpdate': noop, | ||
'beforeRemove': function() { | ||
return true; | ||
}, | ||
'afterRemove': noop, | ||
}; | ||
} | ||
util.inherits(HttpDataService, EventEmitter); | ||
HttpDataService.prototype.request = function(relativeUrl, httpConfig) { | ||
@@ -46,3 +49,3 @@ var self = this; | ||
params: { | ||
size: '25' | ||
size: '100' | ||
} | ||
@@ -69,3 +72,3 @@ }).then(function(response) { | ||
data: data | ||
}).tap(this.handlers.afterCreate); | ||
}).tap(this.triggerEvent('create')); | ||
}; | ||
@@ -78,6 +81,7 @@ | ||
data: data | ||
}).tap(this.handlers.afterUpdate); | ||
}).tap(this.triggerEvent('update')); | ||
}; | ||
HttpDataService.prototype.remove = function(data) { | ||
var self = this; | ||
if (!this.handlers.beforeRemove(data)) { | ||
@@ -89,3 +93,6 @@ console.info('Remove operation cancelled due to beforeRemove hook'); | ||
method: 'DELETE' | ||
}).tap(this.handlers.afterRemove); | ||
}).tap(function() { | ||
// trigger event manually since DELETE responds with no data | ||
self.emit('remove', data); | ||
}); | ||
}; | ||
@@ -97,3 +104,3 @@ | ||
params: { | ||
size: '25', | ||
size: '100', | ||
filter: filter | ||
@@ -127,25 +134,10 @@ } | ||
/** | ||
* Provides a function that is called after creating a new data item | ||
*/ | ||
HttpDataService.prototype.onAfterCreate = function(cb) { | ||
this.handlers.afterCreate = cb; | ||
HttpDataService.prototype.triggerEvent = function(eventName) { | ||
var self = this; | ||
return function(data) { | ||
self.emit(eventName, data); | ||
}; | ||
}; | ||
/** | ||
* Provides a function that is called after updating the data | ||
*/ | ||
HttpDataService.prototype.onAfterUpdate = function(cb) { | ||
this.handlers.afterUpdate = cb; | ||
}; | ||
/** | ||
* Provides a function that is called after removing a data item | ||
*/ | ||
HttpDataService.prototype.onAfterRemove = function(cb) { | ||
this.handlers.afterRemove = cb; | ||
}; | ||
module.exports = HttpDataService; | ||
@@ -1,4 +0,1 @@ | ||
var _ = require('lodash'); | ||
// Generating common data repositories | ||
var HttpApiDataService = require("./httpDataService"); | ||
@@ -11,7 +8,19 @@ | ||
}; | ||
// These services must be singletons to allow for event listeners to be global | ||
// i.e. workorderService.onBeforeCreate, etc. | ||
var workorderService; | ||
var workflowService; | ||
angular.module('wfm.common.apiservices').service("workorderService", ['baseUrl', '$http', function(baseUrlPromise, $http) { | ||
return new HttpApiDataService(datasets.workorders, baseUrlPromise, $http); | ||
if (!workorderService) { | ||
workorderService = new HttpApiDataService(datasets.workorders, baseUrlPromise, $http); | ||
} | ||
return workorderService; | ||
}]); | ||
angular.module('wfm.common.apiservices').service("workflowService", ['baseUrl', '$http', function(baseUrlService, $http) { | ||
return new HttpApiDataService(datasets.workflows, baseUrlService, $http); | ||
if (!workflowService) { | ||
return new HttpApiDataService(datasets.workflows, baseUrlService, $http); | ||
} | ||
return workflowService; | ||
}]); |
{ | ||
"name": "@raincatcher/angularjs-http", | ||
"version": "0.0.2", | ||
"version": "0.0.5", | ||
"description": "Angularjs http module for WFM API access", | ||
@@ -5,0 +5,0 @@ "engines": { |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
6812
164