Skip to content

Commit 26727a7

Browse files
committed
Move resources from index
1 parent ba72f42 commit 26727a7

File tree

2 files changed

+159
-136
lines changed

2 files changed

+159
-136
lines changed

lib/index.js

Lines changed: 3 additions & 136 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
const Joi = require('@hapi/joi')
44
const Axios = require('axios')
55
const Querystring = require('querystring')
6+
const { Repositories } = require('./resources/repositories')
67
const {
78
RetryBuild,
89
User,
@@ -71,17 +72,6 @@ class Client {
7172
)
7273
}
7374

74-
/**
75-
* Sync repos
76-
* @param {SyncRepos} params Filter parameters
77-
*/
78-
syncRepos (params) {
79-
return this._axios.post(
80-
'/api/user/repos',
81-
Querystring.stringify(params)
82-
)
83-
}
84-
8575
/**
8676
* Update self
8777
* @param {User} self Changes to apply
@@ -95,131 +85,6 @@ class Client {
9585
)
9686
}
9787

98-
/**
99-
* Self repos
100-
* @param {SelfRepos} params Filter parameters
101-
*/
102-
selfRepos (params) {
103-
Joi.assert(params, SelfRepos, 'Specify valid params')
104-
105-
return this._axios.get(
106-
'/api/user/repos', {
107-
params: params
108-
})
109-
}
110-
111-
/**
112-
* Get repos
113-
* @param {integer} page Page number
114-
* @param {integer} limit Page limit
115-
* Ref: https://github.com/harness/drone/blob/v2.11.1/handler/api/repos/all.go
116-
*/
117-
getRepos (page = 1, limit = 10000) {
118-
return this._axios.get(
119-
'/api/repos', {
120-
params: {
121-
page: page,
122-
per_page: limit
123-
}
124-
})
125-
}
126-
127-
/**
128-
* Get repo
129-
* @param {string} owner Owner of the repo
130-
* @param {string} repo Name of the repo
131-
* Ref: https://github.com/harness/drone/blob/v2.11.1/handler/api/repos/find.go
132-
*/
133-
getRepo (owner, repo) {
134-
Joi.assert(owner, Joi.string().required(), 'Must specify owner')
135-
Joi.assert(repo, Joi.string().required(), 'Must specify repo')
136-
137-
return this._axios.get(
138-
`/api/repos/${owner}/${repo}`
139-
)
140-
}
141-
142-
/**
143-
* Enable repo
144-
* @param {string} owner Owner of the repo
145-
* @param {string} repo Name of the repo
146-
* Ref: https://github.com/harness/drone/blob/v2.11.1/handler/api/repos/enable.go
147-
*/
148-
enableRepo (owner, repo) {
149-
Joi.assert(owner, Joi.string().required(), 'Must specify owner')
150-
Joi.assert(repo, Joi.string().required(), 'Must specify repo')
151-
152-
return this._axios.post(
153-
`/api/repos/${owner}/${repo}`
154-
)
155-
}
156-
157-
/**
158-
* Disable repo
159-
* @param {string} owner Owner of the repo
160-
* @param {string} repo Name of the repo
161-
* Ref: https://github.com/harness/drone/blob/v2.11.1/handler/api/repos/disable.go
162-
*/
163-
disableRepo (owner, repo, remove = false) {
164-
Joi.assert(owner, Joi.string().required(), 'Must specify owner')
165-
Joi.assert(repo, Joi.string().required(), 'Must specify repo')
166-
Joi.assert(remove, Joi.boolean().required(), 'Must specify remove')
167-
168-
return this._axios.delete(
169-
`/api/repos/${owner}/${repo}`, {
170-
params: {
171-
remove: remove
172-
}
173-
})
174-
}
175-
176-
/**
177-
* Chown repo
178-
* @param {string} owner Owner of the repo
179-
* @param {string} repo Name of the repo
180-
*/
181-
chownRepo (owner, repo) {
182-
Joi.assert(owner, Joi.string().required(), 'Must specify owner')
183-
Joi.assert(repo, Joi.string().required(), 'Must specify repo')
184-
185-
return this._axios.post(
186-
`/api/repos/${owner}/${repo}/chown`
187-
)
188-
}
189-
190-
/**
191-
* Repair repo
192-
* @param {string} owner Owner of the repo
193-
* @param {string} repo Name of the repo
194-
* Ref: https://github.com/harness/drone/blob/v2.11.1/handler/api/repos/repair.go
195-
*/
196-
repairRepo (owner, repo) {
197-
Joi.assert(owner, Joi.string().required(), 'Must specify owner')
198-
Joi.assert(repo, Joi.string().required(), 'Must specify repo')
199-
200-
return this._axios.post(
201-
`/api/repos/${owner}/${repo}/repair`
202-
)
203-
}
204-
205-
/**
206-
* Update repo
207-
* @param {string} owner Owner of the repo
208-
* @param {string} repo Name of the repo
209-
* @param {RepoSettings} settings Settings to update
210-
* Ref: https://github.com/harness/drone/blob/v2.11.1/handler/api/repos/update.go
211-
*/
212-
updateRepo (owner, repo, settings) {
213-
Joi.assert(owner, Joi.string().required(), 'Must specify owner')
214-
Joi.assert(repo, Joi.string().required(), 'Must specify repo')
215-
Joi.assert(settings, RepoSettings, 'Must specify settings')
216-
217-
return this._axios.patch(
218-
`/api/repos/${owner}/${repo}`,
219-
settings
220-
)
221-
}
222-
22388
/**
22489
* Incomplete builds
22590
*/
@@ -933,6 +798,8 @@ class Client {
933798
}
934799
}
935800

801+
Object.setPrototypeOf(Client.prototype, Repositories.prototype)
802+
936803
module.exports = {
937804
Client,
938805
RetryBuild,

lib/resources/repositories.js

Lines changed: 156 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,156 @@
1+
const Joi = require('@hapi/joi')
2+
const Querystring = require('querystring')
3+
const {
4+
RepoSettings,
5+
SelfRepos
6+
} = require('../validations')
7+
8+
class Repositories {
9+
/**
10+
* @constructor
11+
* @param {AxiosInstance} webClient webclient
12+
*/
13+
constructor (webClient) {
14+
this._axios = webClient
15+
}
16+
17+
/**
18+
* Sync repos
19+
* @param {SyncRepos} params Filter parameters
20+
*/
21+
syncRepos (params) {
22+
return this._axios.post(
23+
'/api/user/repos',
24+
Querystring.stringify(params)
25+
)
26+
}
27+
28+
/**
29+
* Self repos
30+
* @param {SelfRepos} params Filter parameters
31+
*/
32+
selfRepos (params) {
33+
Joi.assert(params, SelfRepos, 'Specify valid params')
34+
35+
return this._axios.get(
36+
'/api/user/repos', {
37+
params: params
38+
})
39+
}
40+
41+
/**
42+
* Get repos
43+
* @param {integer} page Page number
44+
* @param {integer} limit Page limit
45+
* Ref: https://github.com/harness/drone/blob/v2.11.1/handler/api/repos/all.go
46+
*/
47+
getRepos (page = 1, limit = 10000) {
48+
return this._axios.get(
49+
'/api/repos', {
50+
params: {
51+
page: page,
52+
per_page: limit
53+
}
54+
})
55+
}
56+
57+
/**
58+
* Get repo
59+
* @param {string} owner Owner of the repo
60+
* @param {string} repo Name of the repo
61+
* Ref: https://github.com/harness/drone/blob/v2.11.1/handler/api/repos/find.go
62+
*/
63+
getRepo (owner, repo) {
64+
Joi.assert(owner, Joi.string().required(), 'Must specify owner')
65+
Joi.assert(repo, Joi.string().required(), 'Must specify repo')
66+
67+
return this._axios.get(
68+
`/api/repos/${owner}/${repo}`
69+
)
70+
}
71+
72+
/**
73+
* Enable repo
74+
* @param {string} owner Owner of the repo
75+
* @param {string} repo Name of the repo
76+
* Ref: https://github.com/harness/drone/blob/v2.11.1/handler/api/repos/enable.go
77+
*/
78+
enableRepo (owner, repo) {
79+
Joi.assert(owner, Joi.string().required(), 'Must specify owner')
80+
Joi.assert(repo, Joi.string().required(), 'Must specify repo')
81+
82+
return this._axios.post(
83+
`/api/repos/${owner}/${repo}`
84+
)
85+
}
86+
87+
/**
88+
* Disable repo
89+
* @param {string} owner Owner of the repo
90+
* @param {string} repo Name of the repo
91+
* Ref: https://github.com/harness/drone/blob/v2.11.1/handler/api/repos/disable.go
92+
*/
93+
disableRepo (owner, repo, remove = false) {
94+
Joi.assert(owner, Joi.string().required(), 'Must specify owner')
95+
Joi.assert(repo, Joi.string().required(), 'Must specify repo')
96+
Joi.assert(remove, Joi.boolean().required(), 'Must specify remove')
97+
98+
return this._axios.delete(
99+
`/api/repos/${owner}/${repo}`, {
100+
params: {
101+
remove: remove
102+
}
103+
})
104+
}
105+
106+
/**
107+
* Chown repo
108+
* @param {string} owner Owner of the repo
109+
* @param {string} repo Name of the repo
110+
*/
111+
chownRepo (owner, repo) {
112+
Joi.assert(owner, Joi.string().required(), 'Must specify owner')
113+
Joi.assert(repo, Joi.string().required(), 'Must specify repo')
114+
115+
return this._axios.post(
116+
`/api/repos/${owner}/${repo}/chown`
117+
)
118+
}
119+
120+
/**
121+
* Repair repo
122+
* @param {string} owner Owner of the repo
123+
* @param {string} repo Name of the repo
124+
* Ref: https://github.com/harness/drone/blob/v2.11.1/handler/api/repos/repair.go
125+
*/
126+
repairRepo (owner, repo) {
127+
Joi.assert(owner, Joi.string().required(), 'Must specify owner')
128+
Joi.assert(repo, Joi.string().required(), 'Must specify repo')
129+
130+
return this._axios.post(
131+
`/api/repos/${owner}/${repo}/repair`
132+
)
133+
}
134+
135+
/**
136+
* Update repo
137+
* @param {string} owner Owner of the repo
138+
* @param {string} repo Name of the repo
139+
* @param {RepoSettings} settings Settings to update
140+
* Ref: https://github.com/harness/drone/blob/v2.11.1/handler/api/repos/update.go
141+
*/
142+
updateRepo (owner, repo, settings) {
143+
Joi.assert(owner, Joi.string().required(), 'Must specify owner')
144+
Joi.assert(repo, Joi.string().required(), 'Must specify repo')
145+
Joi.assert(settings, RepoSettings, 'Must specify settings')
146+
147+
return this._axios.patch(
148+
`/api/repos/${owner}/${repo}`,
149+
settings
150+
)
151+
}
152+
}
153+
154+
module.exports = {
155+
Repositories
156+
}

0 commit comments

Comments
 (0)