This repository was archived by the owner on Dec 26, 2019. It is now read-only.
forked from moul/node-gitlab
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathUsers.coffee
More file actions
56 lines (45 loc) · 1.4 KB
/
Users.coffee
File metadata and controls
56 lines (45 loc) · 1.4 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
BaseModel = require '../BaseModel'
class Users extends BaseModel
init: =>
@keys = @load 'UserKeys'
all: (params = {}, fn = null) =>
if 'function' is typeof params
fn = params
params = {}
@debug "Users::all()"
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 Users::all()"
data = data.concat(retData)
params.page++
return @get "users", params, cb
else
data = data.concat(retData)
return fn data if fn
@get "users", params, cb
current: (fn = null) =>
@debug "Users::current()"
@get "user", (data) -> fn data if fn
show: (userId, fn = null) =>
@debug "Users::show()"
@get "users/#{parseInt userId}", (data) => fn data if fn
create: (params = {}, fn = null) =>
@debug "Users::create()", params
@post "users", params, (data) -> fn data if fn
session: (email, password, fn = null) =>
@debug "Users::session()"
params =
email: email
password: password
@post "session", params, (data) -> fn data if fn
search: (emailOrUsername, fn = null) =>
@debug "Users::search(#{emailOrUsername})"
params =
search: emailOrUsername
@get "users", params, (data) -> fn data if fn
module.exports = (client) -> new Users client