(function () { 'use strict'; angular.module('streamApp').service('groupsService', function (apiProxy, $q) { this.getGroups = function () { return apiProxy.GET({ url: 'api/groups/allSelected', }).then(function (data) { return data; }); }; this.getTags = function () { return apiProxy.GET({ url: 'api/groups', }).then(function (data) { return data; }); }; this.getGroupsEditable = function () { return apiProxy.GET({ url: 'api/groups/editable', }).then(function (data) { return data; }); }; this.getTagsViewers = function () { return apiProxy.GET({ url: 'api/groups/includeMembers', }).then(function (data) { return data; }); }; this.getViewersDrop = function (dropId) { return apiProxy.GET({ url: 'api/drops/' + dropId + '/viewers', }).then(function (data) { return data; }); }; this.getViewers = function (tagIds) { tagIds = tagIds || []; if (!tagIds.length) { return $q.when([]); } return apiProxy.GET({ url: 'api/groups/viewers?ids=' + tagIds.join('&ids='), }).then(function (data) { return data.data; }); }; this.addTag = function (tagId, getTags) { return apiProxy.PUT({ url: '/stream/addtag', data: { tagId: tagId } }).then(function () { getTags(); }); }; this.delete = function (tagId) { return apiProxy.DELETE({ url: 'api/groups/' + tagId, }).then(function () { }); }; this.updatetagViewers = function (groupId, viewers) { return apiProxy.PUT({ url: 'api/groups/' + groupId + "/members", data: { ids: viewers}, }); }; this.rename = function (groupId, name) { return apiProxy.PUT({ url: 'api/groups/' + groupId, data: { name: name }, }); } }); })();