forked from moul/node-gitlab
-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathProjectMilestones.coffee
More file actions
52 lines (45 loc) · 1.83 KB
/
ProjectMilestones.coffee
File metadata and controls
52 lines (45 loc) · 1.83 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
BaseModel = require '../BaseModel'
Utils = require '../Utils'
class ProjectMilestones extends BaseModel
list = (projectId, fn = null) ->
console.log 'DEPRECATED: milestone.list. Use milestone.all instead'
@all arguments...
all: (projectId, fn = null) =>
@debug "Projects::Milestones::all()"
params = {}
params.page ?= 1
params.per_page ?= 100
data = []
cb = (err, retData) =>
if err
return fn(retData || data) if fn
else if retData.length == params.per_page
@debug "Recurse Projects::Milestones::all()"
data = data.concat(retData)
params.page++
return @get "projects/#{Utils.parseProjectId projectId}/milestones", params, cb
else
data = data.concat(retData)
return fn data if fn
@get "projects/#{Utils.parseProjectId projectId}/milestones", params, cb
show: (projectId, milestoneId, fn = null) =>
@debug "Projects::milestone()"
@get "projects/#{Utils.parseProjectId projectId}/milestones/#{parseInt milestoneId}", (data) => fn data if fn
add: (projectId, title, description, due_date, fn = null) =>
@debug "Projects::addMilestone()"
params =
id: Utils.parseProjectId projectId
title: title
description: description
due_date: due_date
@post "projects/#{Utils.parseProjectId projectId}/milestones", params, (data) => fn data if fn
update: (projectId, milestoneId, title, description, due_date, state_event, fn = null) =>
@debug "Projects::editMilestone()"
params =
id: Utils.parseProjectId projectId
title: title
description: description
due_date: due_date
state_event: state_event
@put "projects/#{Utils.parseProjectId projectId}/milestones/#{parseInt milestoneId}", params, (data) => fn data if fn
module.exports = (client) -> new ProjectMilestones client