diff options
author | Matias Linares <matias.linares@comprandoengrupo.net> | 2024-09-20 20:46:28 -0300 |
---|---|---|
committer | Matias Linares <matias.linares@comprandoengrupo.net> | 2024-09-20 20:46:28 -0300 |
commit | 504d29accac51c537d5dcd42b129deb6f7463457 (patch) | |
tree | b8e0837c359ecd10db1855a6cfa6146c91a219c7 /kodereviewer/data.py | |
download | kodereviewer-504d29accac51c537d5dcd42b129deb6f7463457.tar.gz |
Initial commit
Diffstat (limited to 'kodereviewer/data.py')
-rw-r--r-- | kodereviewer/data.py | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/kodereviewer/data.py b/kodereviewer/data.py new file mode 100644 index 0000000..7d3b73a --- /dev/null +++ b/kodereviewer/data.py @@ -0,0 +1,70 @@ +from datetime import datetime +from enum import Enum +from typing import Any, Optional + +from PySide6.QtCore import QObject, QSettings, Signal, Slot, Property, qDebug +from PySide6.QtNetwork import QHttpHeaders, QNetworkAccessManager, QNetworkReply, QNetworkRequestFactory +from PySide6.QtQml import QmlElement + + +class User(QObject): + username: str + avatar_url: str + + def __init__(self, data: dict[str, Any]): + super().__init__() + self.username = data['login'] + self.avatar_url = data['avatar_url'] + + +class Label(QObject): + name: str + color: str + description: str + + def __init__(self, data: dict[str, Any]): + super().__init__() + self.name = data['name'] + self.color = data['color'] + self.description = data['description'] + + + +class State(Enum): + OPEN = 'open' + CLOSED = 'closed' + DRAFT = 'draft' + + +class PullRequest(QObject): + + number: int + title: str + state: State + url: str + body: str | None + created_at: datetime + updated_at: datetime + + user: User + assignee: User | None + labels: list[str] + + + def __init__(self, data: dict[str, Any]): + super().__init__() + self.number = data['number'] + self.state = data['state'] + self.title = data['title'] + self.url = data['html_url'] + self.body = data['body'] + self.created_at = datetime.fromisoformat(data['created_at']) + self.updated_at = datetime.fromisoformat(data['updated_at']) + + self.user = User(data['user']) + self.assignee = None + if data['assignee'] is not None: + self.assignee = User(data['assignee']) + + labels = [Label(label) for label in data['labels']] + |