6 .factory("attachmentService", attachmentService);
8 attachmentService.$inject = ["$http", "$q", "$filter", "promiseCache", "errorHandlerService"];
11 Attachment service implementation
13 function attachmentService($http, $q, $filter, promiseCache, errorHandlerService) {
16 addAttachments: addAttachments,
17 deleteAttachment: deleteAttachment,
18 getAttachmentConversionKey: getAttachmentConversionKey,
19 getConversionProgress: getConversionProgress,
20 killConversionProcess: killConversionProcess,
21 sendAttachmentToDropbox: sendAttachmentToDropbox
24 // Add a list of files to a session
25 function addAttachments(attachFiles, idProperties) {
27 var attachFileIds = [];
28 for (var i = 0; i < attachFiles.length; i++) {
29 attachFileIds.push(attachFiles[i].fileId);
34 cmd: "addAttachments",
35 attachFiles: JSON.stringify(attachFileIds)
37 config.params[idProperties.propertyName] = idProperties.propertyValue;
41 return $http.get(actionURLAjax, config);
44 key: JSON.stringify(config.params)
46 .then(addAttachmentsComplete)
47 ["catch"](addAttachmentsFailed);
49 function addAttachmentsComplete(response) {
50 if (response.data.success) {
51 if (!response.data.message) {
52 response.data.message = $filter("translate")("ext.nero.services.attachment.toastr-add-successMessage");
57 // If success variable is false or undefined then throw an error
58 var message = $filter("translate")("ext.nero.services.attachment.toastr-add-successMessage");
59 var error = errorHandlerService.buildErrorObject(response, message);
60 return ($q.reject(error));
63 function addAttachmentsFailed(error) {
64 // If message is undefined then throw unknown error. Otherwise, use expected error message.
65 if (!angular.isObject(error.data) || !error.data.message) {
66 var message = $filter("translate")("ext.nero.services.attachment.toastr-add-successMessage");
67 return ($q.reject(message));
70 return ($q.reject(error.data.message));
76 Take the attachment to delete and information concerning his ID or his folder.
77 idProperties is a JSON object containing a property name and a property value :
78 {propertyName: "sessionId", propertyValue: ""}
80 function deleteAttachment(attachment, idProperties) {
83 cmd: "deleteAttachment",
84 fileName: attachment.fileName
86 config.params[idProperties.propertyName] = idProperties.propertyValue;
88 return $http.get(actionURLAjax, config)
89 .then(deleteAttachmentComplete)
90 ["catch"](deleteAttachmentFailed);
92 function deleteAttachmentComplete(response) {
93 if (response.data.success) {
94 if (!response.data.message) {
95 response.data.message = $filter("translate")("ext.nero.services.attachment.toastr-delete-successMessage");
100 // If success variable is false or undefined then throw an error
101 var message = $filter("translate")("ext.nero.services.attachment.toastr-delete-errorMessage");
102 var error = errorHandlerService.buildErrorObject(response, message);
103 return ($q.reject(error));
106 function deleteAttachmentFailed(error) {
107 // If message is undefined then throw unknown error. Otherwise, use expected error message.
108 if (!angular.isObject(error.data) || !error.data.message) {
109 var message = $filter("translate")("ext.nero.services.attachment.toastr-delete-errorMessage");
110 return ($q.reject(message));
113 return ($q.reject(error.data.message));
118 Send an attachment to user drobox.
119 Take the attachment to delete and information concerning his ID or his folder.
120 idProperties is a JSON object containing a property name and a property value :
121 {propertyName: "homeworkId", propertyValue: ""}
123 function sendAttachmentToDropbox(attachment, idProperties) {
126 cmd: "sendToDropbox",
127 fileName: attachment.fileName
129 config.params[idProperties.propertyName] = idProperties.propertyValue;
131 return $http.get(actionURLAjax, config)
132 .then(sendAttachmentToDropboxComplete)
133 ["catch"](sendAttachmentToDropboxFailed);
135 function sendAttachmentToDropboxComplete(response) {
136 if (response.data.success) {
137 if (!response.data.message) {
138 response.data.message = $filter("translate")("ext.nero.services.attachment.toastr-send-successMessage");
140 return response.data;
143 // If success variable is false or undefined then throw an error
144 var message = $filter("translate")("ext.nero.services.attachment.toastr-send-errorMessage");
145 var error = errorHandlerService.buildErrorObject(response, message);
146 return ($q.reject(error));
149 function sendAttachmentToDropboxFailed(error) {
150 // If message is undefined then throw unknown error. Otherwise, use expected error message.
151 if (!angular.isObject(error.data) || !error.data.message) {
152 var message = $filter("translate")("ext.nero.services.attachment.toastr-send-errorMessage");
153 return ($q.reject(message));
156 return ($q.reject(error.data.message));
161 Get attachment key that is needed to find conversion progress
163 function getAttachmentConversionKey(attachment, idProperties) {
166 cmd: "getAttachmentConversionKey",
167 fileName: attachment.fileName
169 config.params[idProperties.propertyName] = idProperties.propertyValue;
171 return $http.get(actionURLAjax, config)
172 .then(getAttachmentConversionKeyComplete)
173 ["catch"](getAttachmentConversionKeyFailed);
175 function getAttachmentConversionKeyComplete(response) {
176 if (response.data.success) {
177 if (!response.data.message) {
178 response.data.message = $filter("translate")("ext.nero.services.attachment.toastr-conversion-successMessage");
180 return response.data;
183 // If success variable is false or undefined then throw an error
184 var message = $filter("translate")("ext.nero.services.attachment.toastr-conversion-errorMessage");
185 var error = errorHandlerService.buildErrorObject(response, message);
186 return ($q.reject(error));
189 function getAttachmentConversionKeyFailed(error) {
190 // If message is undefined then throw unknown error. Otherwise, use expected error message.
191 if (!angular.isObject(error.data) || !error.data.message) {
192 var message = $filter("translate")("ext.nero.services.attachment.toastr-conversion-errorMessage");
193 return ($q.reject(message));
196 return ($q.reject(error.data.message));
201 Get conversion progress for an attachment.
202 When an attachment is converted (document, audio or video),
203 return the progress status. (X%, error, done)
205 function getConversionProgress(idSecure) {
208 cmd: "getConversionProgress",
212 return $http.get(actionURLAjax, config)
213 .then(getConversionProgressComplete)
214 ["catch"](getConversionProgressFailed);
216 function getConversionProgressComplete(response) {
217 if (response.data.success) {
218 if (!response.data.message) {
219 response.data.message = $filter("translate")("ext.nero.services.attachment.toastr-conversion-successMessage");
221 return response.data;
224 // If success variable is false or undefined then throw an error
225 var message = $filter("translate")("ext.nero.services.attachment.toastr-conversion-errorMessage");
226 var error = errorHandlerService.buildErrorObject(response, message);
227 return ($q.reject(error));
230 function getConversionProgressFailed(error) {
231 // If message is undefined then throw unknown error. Otherwise, use expected error message.
232 if (!angular.isObject(error.data) || !error.data.message) {
233 var message = $filter("translate")("ext.nero.services.attachment.toastr-conversion-errorMessage");
234 return ($q.reject(message));
237 return ($q.reject(error.data.message));
242 Send the signal to kill the file conversion process
244 function killConversionProcess(idSecure) {
247 cmd: "killConversionProcess",
251 return $http.get(actionURLAjax, config)
252 .then(killConversionProcessComplete)
253 ["catch"](killConversionProcessFailed);
255 function killConversionProcessComplete(response) {
256 if (response.data.success) {
257 return response.data;
260 // If success variable is false or undefined then throw an error
261 var error = errorHandlerService.buildErrorObject(response, message);
262 return ($q.reject(error));
265 function killConversionProcessFailed(error) {
266 console.error(error);
267 return ($q.reject(error.data.message));