-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathjira_api.coffee
76 lines (72 loc) · 2.05 KB
/
jira_api.coffee
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
CONFIG = require './config'
request = require 'request'
module.exports =
login: (username, password, cb)->
request_options =
url: CONFIG.authentication_url
method: 'POST'
body:
username: username
password: password
json: true
jar: false
request request_options, (err, response, body)=>
if cb?
if err?
cb err, null
else if response?.statusCode not in [200, 201]
cb code: response.statusCode, msg: body, null
else
cb null, body
this.cookies
if response.headers['set-cookie']
this.cookies = response.headers['set-cookie']
get_issue_details: (key, cb)->
request_options =
url: CONFIG.content_url+"/issue/"+key
method: 'GET'
headers:
Cookie: this.cookies.join ";"
json: true
jar: false
request request_options, (err, response, body)=>
if cb?
if err?
cb err, null
else if response?.statusCode not in [200,201]
cb code: response.statusCode, msg: body, null
else
cb null, body
get_issue_list: (jql, cb)->
request_options =
url: CONFIG.content_url+"/search?jql="+jql
method: 'GET'
headers:
Cookie: this.cookies.join ";"
json: true
jar: false
request request_options, (err, response, body)=>
if cb?
if err?
cb err, null
else if response?.statusCode not in [200,201]
cb code: response.statusCode, msg: body, null
else
cb null, body
logout: (cb)->
request_options =
url: CONFIG.authentication_url
method: 'DELETE'
headers:
Cookie: this.cookies.join ";"
json: true
jar: false
request request_options, (err, response, body)=>
if cb?
if err?
cb err, null
else if response?.statusCode not in[204]
cb code: response.statusCode, msg: body, null
else
this.cookies = null
cb null, body