summaryrefslogtreecommitdiff
path: root/gitlab/v4/objects/discussions.py
diff options
context:
space:
mode:
authorNejc Habjan <hab.nejc@gmail.com>2021-02-07 00:29:59 +0100
committerNejc Habjan <hab.nejc@gmail.com>2021-02-07 16:05:05 +0100
commita5a48ad08577be70c6ca511d3b4803624e5c2043 (patch)
treec1b80daad6dbb6ea3b1a3498d70016ef77abf6b3 /gitlab/v4/objects/discussions.py
parent9d6c1882d567116e16484f3e0a1036da4967c537 (diff)
downloadgitlab-a5a48ad08577be70c6ca511d3b4803624e5c2043.tar.gz
refactor(v4): split objects and managers per API resource
Diffstat (limited to 'gitlab/v4/objects/discussions.py')
-rw-r--r--gitlab/v4/objects/discussions.py55
1 files changed, 55 insertions, 0 deletions
diff --git a/gitlab/v4/objects/discussions.py b/gitlab/v4/objects/discussions.py
new file mode 100644
index 0000000..a45864b
--- /dev/null
+++ b/gitlab/v4/objects/discussions.py
@@ -0,0 +1,55 @@
+from gitlab.base import * # noqa
+from gitlab.mixins import * # noqa
+from .notes import (
+ ProjectCommitDiscussionNoteManager,
+ ProjectIssueDiscussionNoteManager,
+ ProjectMergeRequestDiscussionNoteManager,
+ ProjectSnippetDiscussionNoteManager,
+)
+
+
+class ProjectCommitDiscussion(RESTObject):
+ _managers = (("notes", "ProjectCommitDiscussionNoteManager"),)
+
+
+class ProjectCommitDiscussionManager(RetrieveMixin, CreateMixin, RESTManager):
+ _path = "/projects/%(project_id)s/repository/commits/%(commit_id)s/" "discussions"
+ _obj_cls = ProjectCommitDiscussion
+ _from_parent_attrs = {"project_id": "project_id", "commit_id": "id"}
+ _create_attrs = (("body",), ("created_at",))
+
+
+class ProjectIssueDiscussion(RESTObject):
+ _managers = (("notes", "ProjectIssueDiscussionNoteManager"),)
+
+
+class ProjectIssueDiscussionManager(RetrieveMixin, CreateMixin, RESTManager):
+ _path = "/projects/%(project_id)s/issues/%(issue_iid)s/discussions"
+ _obj_cls = ProjectIssueDiscussion
+ _from_parent_attrs = {"project_id": "project_id", "issue_iid": "iid"}
+ _create_attrs = (("body",), ("created_at",))
+
+
+class ProjectMergeRequestDiscussion(SaveMixin, RESTObject):
+ _managers = (("notes", "ProjectMergeRequestDiscussionNoteManager"),)
+
+
+class ProjectMergeRequestDiscussionManager(
+ RetrieveMixin, CreateMixin, UpdateMixin, RESTManager
+):
+ _path = "/projects/%(project_id)s/merge_requests/%(mr_iid)s/discussions"
+ _obj_cls = ProjectMergeRequestDiscussion
+ _from_parent_attrs = {"project_id": "project_id", "mr_iid": "iid"}
+ _create_attrs = (("body",), ("created_at", "position"))
+ _update_attrs = (("resolved",), tuple())
+
+
+class ProjectSnippetDiscussion(RESTObject):
+ _managers = (("notes", "ProjectSnippetDiscussionNoteManager"),)
+
+
+class ProjectSnippetDiscussionManager(RetrieveMixin, CreateMixin, RESTManager):
+ _path = "/projects/%(project_id)s/snippets/%(snippet_id)s/discussions"
+ _obj_cls = ProjectSnippetDiscussion
+ _from_parent_attrs = {"project_id": "project_id", "snippet_id": "id"}
+ _create_attrs = (("body",), ("created_at",))