UNPKG

1.99 kBtext/coffeescriptView Raw
1url = require 'url'
2request = require 'request'
3debug = require('debug')('deploy-state-util:service')
4
5class DeployStateService
6 constructor: ({ config }) ->
7 @deployStateUri = url.format {
8 hostname: config['deploy-state'].hostname,
9 protocol: 'https',
10 slashes: true,
11 }
12 @auth = {
13 username: config['deploy-state'].username,
14 password: config['deploy-state'].password,
15 }
16
17 setState: ({ repo, owner, tag, state, passing, type }, callback) =>
18 value = 'failed'
19 value = 'passed' if passing
20 options =
21 baseUrl: @deployStateUri
22 uri: "/deployments/#{owner}/#{repo}/#{tag}/#{type}/#{state}/#{value}"
23 auth: @auth,
24
25 debug 'set state options', options
26 request.put options, (error, response) =>
27 debug 'set state', { error }
28 return callback error if error?
29 if response.statusCode > 499
30 return callback new Error 'Fatal error from deploy state service'
31 callback null
32
33 getStatus: ({ owner, repo, tag }, callback) =>
34 options =
35 baseUrl: @deployStateUri
36 uri: "/deployments/#{owner}/#{repo}/#{tag}"
37 auth: @auth,
38 json: true
39 debug 'get status options', options
40 request.get options, (error, response, body) =>
41 debug 'got status', { body, error }
42 return callback error if error?
43 if response.statusCode > 499
44 return callback new Error 'Fatal error from deploy state service'
45 if response.statusCode == 404
46 return callback null
47 callback null, body
48
49 getList: ({ owner, repo }, callback) =>
50 options =
51 baseUrl: @deployStateUri
52 uri: "/deployments/#{owner}/#{repo}"
53 auth: @auth,
54 json: true
55 debug 'get list options', options
56 request.get options, (error, response, body) =>
57 return callback error if error?
58 if response.statusCode > 499
59 return callback new Error 'Fatal error from deploy state service'
60 callback null, body
61
62module.exports = DeployStateService