Summary Table

Categories Total Count
PII 0
URL 0
DNS 0
EKL 0
IP 0
PORT 0
VsID 0
CF 0
AI 0
VPD 0
PL 0
Other 0

File Content

define(['angular', 'app'], function (angular, app) {
"use strict";
app.service('videoService', function ($http, $q, localResourceDirectoryService, questionnaireResponseService) {
var currMediaRequest = {};

var service = {
getMediaRequest: function () {
return currMediaRequest;
},
setMediaRequest: function (mediaRequest) {
var deferred = $q.defer();

currMediaRequest = mediaRequest;

this.initEvaluation('MyVideo', mediaRequest.id,mediaRequest.questionnaireResponse).then(function () {
deferred.resolve();
});

return deferred.promise;
},
setQuestionnaireResponseId: function (responseId) {
currMediaRequest.questionnaireResponse = responseId;
},
transformResponse: function(response){
var evaluation = {};
var status = _.get(response, "status") || "NOT_STARTED";
evaluation.mediaRequestId = _.get(response, "identifier.value") || "";
evaluation.images = this.getVideo(response.group) || [];
return evaluation;
},
updateResponse: function(){
this.currResponse.group.group = [];
var group = this.createVideoGroup();
if(group)
this.currResponse.group.group.push(group);
},
createVideoGroup: function () {
var video = this.currEvaluation.images[0];
var linkId = this.getLinkId("TAKE_VIDEO");
var group;
if(video) {
group = {
linkId: linkId,
question: []
};

group.question.push(this.createAnswer(linkId + ".1", "string", (video || {}).id || ''));
group.question.push(this.createAnswer(linkId + ".2", "string", (video || {}).imageDescription || ''));
}
return group;
},
getVideo : function (jsonObject) {
var videos = [];
var video;
var linkId = this.getLinkId("TAKE_VIDEO");
var urlObj = this.findElement(jsonObject, linkId + ".1");
if(urlObj) {
var id = this.getValue(jsonObject, urlObj.linkId) || '';
video = {
id: id,
imageUrl: this.resourceLinks['media'].replace("{MEDIA_ID}", id),
imageDescription: this.getValue(jsonObject, linkId + ".2"),
imageSection: {
name: 'OTHER',
description: 'Other'
},
imageType: {
name: 'OTHER',
description: 'Other'
}
};
}
videos.push(video);
return videos;
},
setVideo : function (video) {
this.currEvaluation.images = [video];
},
saveMediaRequest: function () {
var deferred = $q.defer();
var url = this.resourceLinks['update-request'];

url = url.replace('{MEDIA_REQUEST_ID}', currMediaRequest.id);

var updateObj = {
status: currMediaRequest.status,
questionnaireResponse : currMediaRequest.questionnaireResponse
};

$http({
method: 'PATCH',
url: url,
data: JSON.stringify(updateObj)
}).success(function () {
deferred.resolve();
}).error(function (error) {
deferred.reject(error);
});

return deferred.promise;
}
}

angular.extend(service, questionnaireResponseService);

return service;
});
});