Skip to content

Commit cda364d

Browse files
committed
feat(async): wrap remaining object post functions in awaitable_postprocess
1 parent b2d06fa commit cda364d

File tree

1 file changed

+10
-22
lines changed

1 file changed

+10
-22
lines changed

gitlab/v4/objects.py

Lines changed: 10 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -314,18 +314,12 @@ class User(SaveMixin, ObjectDeleteMixin, RESTObject):
314314
("status", "UserStatusManager"),
315315
)
316316

317-
def _change_state(self, dest, server_data):
318-
if asyncio.iscoroutine(server_data):
319-
return self._achange_state(dest, server_data)
320-
317+
@awaitable_postprocess
318+
def _change_state(self, server_data, dest):
321319
if server_data:
322320
self._attrs["state"] = dest
323321
return server_data
324322

325-
async def _achange_state(self, dest, server_data):
326-
server_data = await server_data
327-
return self._change_state(dest, server_data)
328-
329323
@cli.register_custom_action("User")
330324
@exc.on_http_error(exc.GitlabBlockError)
331325
def block(self, **kwargs):
@@ -343,7 +337,7 @@ def block(self, **kwargs):
343337
"""
344338
path = "/users/%s/block" % self.id
345339
server_data = self.manager.gitlab.http_post(path, **kwargs)
346-
return self._change_state("blocked", server_data)
340+
return self._change_state(server_data, "blocked")
347341

348342
@cli.register_custom_action("User")
349343
@exc.on_http_error(exc.GitlabUnblockError)
@@ -362,7 +356,7 @@ def unblock(self, **kwargs):
362356
"""
363357
path = "/users/%s/unblock" % self.id
364358
server_data = self.manager.gitlab.http_post(path, **kwargs)
365-
return self._change_state("active", server_data)
359+
return self._change_state( server_data, "active")
366360

367361
@cli.register_custom_action("User")
368362
@exc.on_http_error(exc.GitlabDeactivateError)
@@ -381,7 +375,7 @@ def deactivate(self, **kwargs):
381375
"""
382376
path = "/users/%s/deactivate" % self.id
383377
server_data = self.manager.gitlab.http_post(path, **kwargs)
384-
return self._change_state("deactivated", server_data)
378+
return self._change_state(server_data, "deactivated")
385379

386380
@cli.register_custom_action("User")
387381
@exc.on_http_error(exc.GitlabActivateError)
@@ -400,7 +394,7 @@ def activate(self, **kwargs):
400394
"""
401395
path = "/users/%s/activate" % self.id
402396
server_data = self.manager.gitlab.http_post(path, **kwargs)
403-
return self._change_state("active", server_data)
397+
return self._change_state(server_data, "active")
404398

405399

406400
class UserManager(CRUDMixin, RESTManager):
@@ -1700,14 +1694,8 @@ class ProjectBoardManager(CRUDMixin, RESTManager):
17001694
class ProjectBranch(ObjectDeleteMixin, RESTObject):
17011695
_id_attr = "name"
17021696

1703-
async def _achange_protected(self, dest, server_data):
1704-
server_data = await server_data
1705-
return self._change_protected(dest, server_data)
1706-
1707-
def _change_protected(self, dest, server_data):
1708-
if asyncio.iscoroutine(server_data):
1709-
return self._achange_protected(dest, server_data)
1710-
1697+
@awaitable_postprocess
1698+
def _change_protected(self, server_data, dest):
17111699
self._attrs["protected"] = dest
17121700
return server_data
17131701

@@ -1736,7 +1724,7 @@ def protect(self, developers_can_push=False, developers_can_merge=False, **kwarg
17361724
"developers_can_merge": developers_can_merge,
17371725
}
17381726
server_data = self.manager.gitlab.http_put(path, post_data=post_data, **kwargs)
1739-
return self._change_protected(True, server_data)
1727+
return self._change_protected( server_data, True)
17401728

17411729
@cli.register_custom_action("ProjectBranch")
17421730
@exc.on_http_error(exc.GitlabProtectError)
@@ -1753,7 +1741,7 @@ def unprotect(self, **kwargs):
17531741
id = self.get_id().replace("/", "%2F")
17541742
path = "%s/%s/unprotect" % (self.manager.path, id)
17551743
server_data = self.manager.gitlab.http_put(path, **kwargs)
1756-
return self._change_protected(False, server_data)
1744+
return self._change_protected( server_data, False)
17571745

17581746

17591747
class ProjectBranchManager(NoUpdateMixin, RESTManager):

0 commit comments

Comments
 (0)