forked from Ermlab/nxt-gitlab
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathIssues.coffee
More file actions
63 lines (52 loc) · 1.8 KB
/
Issues.coffee
File metadata and controls
63 lines (52 loc) · 1.8 KB
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
BaseModel = require '../BaseModel'
class Issues extends BaseModel
all: (params = {}, fn = null) =>
if 'function' is typeof params
fn = params
params = {}
@debug "Issues::all()"
params.page ?= 1
params.per_page ?= 100
do (->
data = []
cb = (retData) =>
if retData.length == params.per_page
@debug "Recurse Issues::all()"
data = data.concat(retData)
params.page++
return @get "issues", params, cb
else
data = data.concat(retData)
fn data if fn
@get "issues", params, cb
).bind(@)
show: (projectId, issueId, fn = null) =>
@debug "Issues::show()"
if projectId.indexOf("/") isnt -1
projectId = encodeURIComponent(projectId)
else
projectId = parseInt(projectId)
if issueId.toString().indexOf("/") isnt -1
issueId = encodeURIComponent(issueId)
else
issueId = parseInt(issueId)
@get "projects/#{projectId}/issues/#{issueId}", (data) => fn data if fn
create: (projectId, params = {}, fn = null) =>
@debug "Issues::create()"
if projectId.toString().indexOf("/") isnt -1
projectId = encodeURIComponent(projectId)
else
projectId = parseInt(projectId)
@post "projects/#{projectId}/issues", params, (data) -> fn data if fn
edit: (projectId, issueId, params = {}, fn = null) =>
@debug "Issues::edit()"
if projectId.toString().indexOf("/") isnt -1
projectId = encodeURIComponent(projectId)
else
projectId = parseInt(projectId)
if issueId.toString().indexOf("/") isnt -1
issueId = encodeURIComponent(issueId)
else
issueId = parseInt(issueId)
@put "projects/#{projectId}/issues/#{issueId}", params, (data) -> fn data if fn
module.exports = (client) -> new Issues client