SmartIT_Extensions/BMC/smart-it-full-helix/scripts/app/template/ticket-template-service.js

201 lines
8.9 KiB
JavaScript

"use strict";
(function () {
'use strict';
angular.module('templateModule').service('ticketTemplateService', ['$resource', function ($resource) {
var smartRecorderResource = $resource('/smartit/rest/smartrecord/templates', {}, {
getTemplates: {
method: 'POST',
isArray: true
}
}), incidentTemplateResource = $resource('', {}, {
GetIncidentTemplateList: {
url: '/smartit/rest/incident/templates',
method: 'GET',
isArray: true
},
GetIncidentTemplateTierOptions: {
url: '/smartit/rest/category/incidentTemplate/template/templateCategoryTier:id',
method: 'GET',
isArray: true
},
GetIncidentTemplateListByCategory: {
url: '/smartit/rest/incident/templates/category',
method: 'GET',
isArray: true
}
}), servicerequestTemplateResource = $resource('', {}, {
GetServicerequestTemplateList: {
url: '/smartit/rest/request/templates',
method: 'GET',
isArray: true
},
GetServicerequestDynamicOptions: {
url: '/smartit/rest/request/:srdId/questionoptions/:questionId',
method: 'GET',
isArray: true
}
}), taskTemplateResource = $resource('', {}, {
GetTaskTemplateMetadata: {
url: '/smartit/rest/task/template/metadata',
method: 'GET',
isArray: true
},
GetTaskTemplateList: {
url: '/smartit/rest/task/templates',
method: 'GET',
isArray: true
},
GetTaskGroupPreview: {
url: '/smartit/rest/task/templates/preview/:groupId',
method: 'GET',
isArray: true
}
}), workorderTemplateResource = $resource('', {}, {
GetWorkorderTemplateList: {
url: '/smartit/rest/workorder/templates',
method: 'GET',
isArray: true
}
}), changeTemplateResource = $resource('', {}, {
GetChangeTemplateList: {
url: '/smartit/rest/change/templates',
method: 'GET',
isArray: true
}
}), releaseTemplateResource = $resource('', {}, {
GetReleaseTemplateList: {
url: '/smartit/rest/release/templates',
method: 'GET',
isArray: true
}
}), activityTemplateResource = $resource('', {}, {
GetActivityTemplateList: {
url: '/smartit/rest/activity/templates',
method: 'GET',
isArray: true
}
});
this.getTemplatesForSmartRecorder = function (params) {
return smartRecorderResource.getTemplates(params, {}).$promise.then(function (result) {
return _.chain(result[0].items[0].objects)
.sortBy('type')
.map(function (template) {
return new SmartRecorderTemplateVO().build(template);
}).value();
});
};
this.getIncidentTemplateList = function (searchQuery, companyName) {
return incidentTemplateResource.GetIncidentTemplateList({
input: searchQuery,
companyName: companyName,
isName: true
}).$promise.then(function (result) {
return result[0].items[0];
});
};
// params = {
// 'incidentTemplateCategoryTierX' : 'tierName', // where X in (1,2,3)
// 'incidentTemplateCompanyName' : 'companyName',
// 'searchText' : 'templateName'
// }
this.getIncidentTemplateListByCategory = function (params) {
// filter empty params
var queryArgs = _.transform(params, function (res, v, k) {
if (k && v) {
res[k] = v;
}
});
return incidentTemplateResource.GetIncidentTemplateListByCategory(queryArgs)
.$promise.then(function (result) {
return result[0].items[0];
});
};
this.getIncidentTemplateTierOptions = function (tier, dependency) {
var params = {
id: tier
};
if (!_.isUndefined(dependency)) {
params.criteria = dependency;
}
return incidentTemplateResource.GetIncidentTemplateTierOptions(params).$promise;
};
this.getServicerequestTemplateList = function (searchQuery, companyName, customerId) {
return servicerequestTemplateResource.GetServicerequestTemplateList({
input: searchQuery,
companyName: companyName,
user: customerId
}).$promise.then(function (result) {
return result[0].items[0];
});
};
this.getServicerequestDynamicOptions = function (queryParams) {
return servicerequestTemplateResource.GetServicerequestDynamicOptions(queryParams).$promise.then(function (result) {
return result[0].items[0];
});
};
this.getTaskTemplateMetadata = function () {
return taskTemplateResource.GetTaskTemplateMetadata().$promise;
};
this.getTaskTemplateList = function (term, companyName) {
return taskTemplateResource.GetTaskTemplateList({ input: term, companyName: companyName }).$promise;
};
this.getTaskGroupPreview = function (groupId) {
return taskTemplateResource.GetTaskGroupPreview({ groupId: groupId }).$promise;
};
this.getWorkorderTemplateList = function (searchQuery, companyName) {
return workorderTemplateResource.GetWorkorderTemplateList({
input: searchQuery,
companyName: companyName,
isName: true
}).$promise.then(function (result) {
return result[0].items[0];
});
};
this.getAllWorkorderTemplateList = function (company) {
return workorderTemplateResource.GetWorkorderTemplateList({
input: '%',
companyName: (company && company.name) ? company.name : (_.isString(company) ? company : ''),
isName: true,
chunkInfo: { startIndex: 0, chunkSize: 200 }
}).$promise.then(function (result) {
return result[0].items[0];
});
};
this.getChangeTemplateList = function (searchQuery, companyName) {
return changeTemplateResource.GetChangeTemplateList({
input: searchQuery,
companyName: companyName,
isName: true
}).$promise.then(function (result) {
return result[0].items[0];
});
};
this.getReleaseTemplateList = function (searchQuery, companyName) {
return releaseTemplateResource.GetReleaseTemplateList({
input: searchQuery,
companyName: companyName,
isName: true
}).$promise.then(function (result) {
return result[0].items[0];
});
};
this.getActivityTemplateList = function (searchQuery, companyName) {
return activityTemplateResource.GetActivityTemplateList({
input: searchQuery,
companyName: companyName
}).$promise.then(function (result) {
return result[0].items[0];
});
};
this.getAllActivityTemplateList = function (company) {
return activityTemplateResource.GetActivityTemplateList({
input: '%',
companyName: company.name || null,
chunkInfo: { startIndex: 0, chunkSize: 200 }
}).$promise.then(function (result) {
return result[0].items[0];
});
};
}]);
}());