1
0
mirror of https://github.com/openSUSE/osc.git synced 2025-08-20 13:38:53 +02:00
Files
github.com_openSUSE_osc/osc/gitea_api/user.py

54 lines
1.4 KiB
Python

from typing import Optional
from .connection import Connection
from .connection import GiteaHTTPResponse
class User:
def __init__(self, data: dict, *, response: Optional[GiteaHTTPResponse] = None):
self._data = data
self._response = response
@property
def login(self) -> str:
return self._data["login"]
@property
def full_name(self) -> str:
return self._data["full_name"]
@property
def email(self) -> str:
return self._data["email"]
@property
def full_name_email(self) -> str:
if self.full_name:
return f"{self.full_name} <{self.email}>"
return self.email
@property
def login_full_name_email(self) -> str:
return f"{self.login} ({self.full_name_email})"
@classmethod
def get(
cls,
conn: Connection,
username: Optional[str] = None,
) -> "Self":
"""
Retrieve details about a user.
If ``username`` is not specified, data about the current user is returned."
:param conn: Gitea ``Connection`` instance.
:param username: Username of the queried user."
"""
if not username:
url = conn.makeurl("user")
else:
url = conn.makeurl("users", username)
response = conn.request("GET", url)
obj = cls(response.json(), response=response)
return obj