(function () { 'use strict'; var serviceId = 'relationshipsDataContext'; angular.module('relationships').factory(serviceId, ['$q', '$http', 'relationshipsConfig', datacontext]); function datacontext($q, $http, config) { var service = { getRelationshipTypes: getRelationshipTypes, createRelationshipType: createRelationshipType, updateRelationshipType: updateRelationshipType, deleteRelationshipType: deleteRelationshipType, getRelationshipsForUser: getRelationshipsForUser, createRelationship: createRelationship, updateRelationship: updateRelationship, deleteRelationship: deleteRelationship }; return service; function getRelationshipTypes() { var request = $http({ method: "get", url: config.apigatewayUrl + 'relationships/RelationshipType' + '?cache=' + Date.now(), }); return (request.then(handleSuccess, handleError)); } function createRelationshipType(type) { var request = $http({ method: "post", url: config.apigatewayUrl + 'relationships/RelationshipType' + '?cache=' + Date.now(), data: type }); return (request.then(handleSuccess, handleError)); } function updateRelationshipType(type) { var request = $http({ method: "put", url: config.apigatewayUrl + 'relationships/RelationshipType' + '?cache=' + Date.now(), data: type }); return (request.then(handleSuccess, handleError)); } function deleteRelationshipType(type) { var request = $http({ method: "delete", url: config.apigatewayUrl + 'relationships/RelationshipType/id/' + type.id + '?cache=' + Date.now(), }); return (request.then(handleSuccess, handleError)); } function getRelationshipsForUser(userId) { var request = $http({ method: "get", url: config.apigatewayUrl + 'relationships/Relationship/user/' + userId + '?cache=' + Date.now(), }); return (request.then(handleSuccess, handleError)); } function createRelationship(model) { var request = $http({ method: "post", url: config.apigatewayUrl + 'relationships/Relationship' + '?cache=' + Date.now(), data: model }); return (request.then(handleSuccess, handleError)); } function updateRelationship(model) { var request = $http({ method: "put", url: config.apigatewayUrl + 'relationships/Relationship' + '?cache=' + Date.now(), data: model }); return (request.then(handleSuccess, handleError)); } function deleteRelationship(model) { var request = $http({ method: "delete", url: config.apigatewayUrl + 'relationships/Relationship/id/' + model.id + '?cache=' + Date.now(), }); return (request.then(handleSuccess, handleError)); } function handleError(response) { // The API response from the server should be returned in a // nomralized format. However, if the request was not handled by the // server (or what not handles properly - ex. server error), then we // may have to normalize it on our end, as best we can. if ( !angular.isObject(response.data) || !response.data.message ) { return ($q.reject("An unknown error occurred.")); } // Otherwise, use expected error message. return ($q.reject(response.data.message)); } // I transform the successful response, unwrapping the application data // from the API response payload. function handleSuccess(response) { if (response) return (response.data); else return null; } } })();