UNPKG

1.54 kBtext/coffeescriptView Raw
1FriendlySharefile = require 'friendly-sharefile'
2debug = require('debug')('friendly-sharefile-worker:queue-worker')
3
4class QueueWorker
5 constructor: ({@jobManager,@meshbluConfig}) ->
6 run: (callback) =>
7 @jobManager.getRequest ['request'], (error, result) =>
8 return callback error if error?
9 return callback() unless result?
10
11 {token,domain,jobType,options,responseId} = result.metadata
12 data = JSON.parse result.rawData
13 options.data = data
14
15 friendlySharefile = new FriendlySharefile {@meshbluConfig,token,domain}
16 func = friendlySharefile[jobType]
17 unless func?
18 error = new Error "jobType not found: #{jobType}"
19 console.error error.stack
20 return @respondWithError error, responseId, callback
21 func options, (error, sharefileResult) =>
22 return @respondWithError error, responseId, callback if error?
23 @respondWithSuccess sharefileResult, responseId, callback
24
25 respondWithError: (error, responseId, callback) =>
26 response =
27 metadata:
28 responseId:responseId
29 code: error.code
30 data: error.message
31 debug 'responding with error', response
32 @jobManager.createResponse 'response', response, callback
33
34 respondWithSuccess: (result, responseId, callback) =>
35 response =
36 metadata:
37 responseId: responseId
38 code: result.code
39 data: result.body
40 debug 'responding with success', response
41 @jobManager.createResponse 'response', response, callback
42
43module.exports = QueueWorker