"use strict"; (function () { 'use strict'; angular.module('myitsmApp') .service('favoriteService', ['$resource', function ($resource) { var resource = $resource('/smartit/rest/bulkupdate/all', {}, { addFavorite: { method: 'POST', isArray: true }, removeFavorite: { method: 'POST', isArray: true } }); var prepareRequestItems = function (items) { var actionItems = _.isArray(items) ? items : [items]; return { ids: _.chain(actionItems) .map(function (item) { return { uuid: item.id || item.uuid, type: item.type }; }) .filter(function (item) { return item.uuid && item.type; }).value() }; }; this.addFavorite = function (items) { items = prepareRequestItems(items); items.attributeValueMap = { favouriteAction: 'Add' }; return resource.addFavorite(items).$promise; }; this.removeFavorite = function (items) { items = prepareRequestItems(items); items.attributeValueMap = { favouriteAction: 'Remove' }; return resource.removeFavorite(items).$promise; }; }]); }());