summaryrefslogtreecommitdiff
path: root/kodereviewer/data.py
diff options
context:
space:
mode:
Diffstat (limited to 'kodereviewer/data.py')
-rw-r--r--kodereviewer/data.py51
1 files changed, 50 insertions, 1 deletions
diff --git a/kodereviewer/data.py b/kodereviewer/data.py
index 82aad94..0d1bef6 100644
--- a/kodereviewer/data.py
+++ b/kodereviewer/data.py
@@ -49,6 +49,44 @@ class Comment(QObject):
self.user = User(data['user'])
+class ChangedFileStatus(Enum):
+ ADDED = 'added'
+ MODIFIED = 'modified'
+ DELETED = 'deleted'
+
+
+class ChangedFile(QObject):
+ """ {
+ "sha": "bbcd538c8e72b8c175046e27cc8f907076331401",
+ "filename": "file1.txt",
+ "status": "added",
+ "additions": 103,
+ "deletions": 21,
+ "changes": 124,
+ "blob_url": "https://github.com/octocat/Hello-World/blob/6dcb09b5b57875f334f61aebed695e2e4193db5e/file1.txt",
+ "raw_url": "https://github.com/octocat/Hello-World/raw/6dcb09b5b57875f334f61aebed695e2e4193db5e/file1.txt",
+ "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/file1.txt?ref=6dcb09b5b57875f334f61aebed695e2e4193db5e",
+ "patch": "@@ -132,7 +132,7 @@ module Test @@ -1000,7 +1000,7 @@ module Test"
+ }"""
+
+ sha: str
+ filename: str
+ status: ChangedFileStatus
+ additions: int
+ deletions: int
+ changes: int
+ patch: str
+
+ def __init__(self, data: dict[str, Any]):
+ self.sha = data['sha']
+ self.filename = data['filename']
+ self.status = data['status']
+ self.additions = int(data['additions'])
+ self.deletions = int(data['deletions'])
+ self.changes = int(data['changes'])
+ self.patch = data.get('patch', '')
+
+
class State(Enum):
OPEN = 'open'
CLOSED = 'closed'
@@ -71,10 +109,12 @@ class PullRequest(QObject):
_labels: list[Label]
_comments: list[Comment]
+ _files: list[ChangedFile]
_initial_data: dict[str, Any]
commentsLoaded = Signal()
+ filesLoaded = Signal()
def __init__(self, data: dict[str, Any], *args, **kwargs):
super().__init__(*args, **kwargs)
@@ -96,6 +136,7 @@ class PullRequest(QObject):
# At first this is empty until it's updated with a request
self._comments = []
+ self._files = []
self._initial_data = data
@@ -145,12 +186,20 @@ class PullRequest(QObject):
def labels(self) -> list[Label]:
return self._labels
+ @Property(list, constant=True)
+ def files(self) -> list[ChangedFile]:
+ return self._files
+
def load_comments(self, response: QByteArray) -> None:
- print("loading comments")
data = json.loads(response.toStdString())
self._comments = [Comment(comment) for comment in data]
self.commentsLoaded.emit()
+ def load_files(self, response: QByteArray) -> None:
+ data = json.loads(response.toStdString())
+ self._files = [ChangedFile(file) for file in data]
+ self.filesLoaded.emit()
+
def copy(self):
"""Create a copy of a PullRequest with it's initial parameters."""
return PullRequest(deepcopy(self._initial_data))