@@ -52,9 +52,9 @@ def authenticate(self, email=None, password=None):
52
52
53
53
r = self .rawPost ('/session' , {'email' : email , 'password' : password })
54
54
if r .status_code == 201 :
55
- self .user = User (self , r .json )
55
+ self .user = CurrentUser (self , r .json )
56
56
else :
57
- raise GitlabAuthenticationError ()
57
+ raise GitlabAuthenticationError (r . json [ 'message' ] )
58
58
59
59
self .private_token = self .user .private_token
60
60
@@ -189,6 +189,24 @@ def update(self, objClass, id, objData, **kwargs):
189
189
else :
190
190
raise GitlabUpdateError ('%d: %s' % (r .status_code , r .text ))
191
191
192
+ def getListOrObject (self , cls , id , ** kwargs ):
193
+ if id == None :
194
+ return cls .list (self , ** kwargs )
195
+ else :
196
+ return cls .get (self , id , ** kwargs )
197
+
198
+ def Project (self , id = None ):
199
+ return self .getListOrObject (Project , id )
200
+
201
+ def Group (self , id = None ):
202
+ return self .getListOrObject (Group , id )
203
+
204
+ def Issue (self , id = None ):
205
+ return self .getListOrObject (Issue , id )
206
+
207
+ def User (self , id = None ):
208
+ return self .getListOrObject (User , id )
209
+
192
210
193
211
class GitlabObject (object ):
194
212
url = None
@@ -282,18 +300,22 @@ def __str__(self):
282
300
class User (GitlabObject ):
283
301
url = '/users'
284
302
303
+ class CurrentUserKey (GitlabObject ):
304
+ url = '/user/keys'
305
+ canUpdate = False
306
+
285
307
class CurrentUser (GitlabObject ):
286
308
url = '/user'
287
309
canGetList = False
288
310
canCreate = False
289
311
canUpdate = False
290
312
canDelete = False
291
313
292
- class CurrentUserKey ( GitlabObject ):
293
- url = '/user/keys'
294
- canUpdate = False
295
-
296
- url = '/users'
314
+ def Key ( self , id = None ):
315
+ if id == None :
316
+ return CurrentUserKey . list ( self . gitlab )
317
+ else :
318
+ return CurrentUserKey . get ( self . gitlab , id )
297
319
298
320
class Group (GitlabObject ):
299
321
url = '/groups'
0 commit comments