diff --git a/flask_discord/models/connections.py b/flask_discord/models/connections.py new file mode 100644 index 0000000..78ae8df --- /dev/null +++ b/flask_discord/models/connections.py @@ -0,0 +1,40 @@ +from .user import User + + +class Integration(object): + + def __init__(self, payload): + self._payload = payload + self.id = self._payload.get("id") + self.name = self._payload.get("name") + self.type = self._payload.get("type") + self.enabled = self._payload.get("enabled") + self.syncing = self._payload.get("syncing") + self.role_id = self._payload.get("role_id") + self.expire_behaviour = self._payload.get("expire_behaviour") + self.expire_grace_period = self._payload.get("expire_grace_period") + self.user = User(self._payload.get("user", dict())) + self.account = self._payload.get("account") + self.synced_at = self._payload.get("synced_at") + + +class UserConnection(object): + + def __init__(self, payload): + self._payload = payload + self.id = self._payload.get("id") + self.name = self._payload.get("name") + self.type = self._payload.get("type") + self.revoked = self._payload.get("revoked") + self.integrations = self.__get_integrations() + self.verified = self._payload.get("verified") + self.friend_sync = self._payload.get("friend_sync") + self.show_activity = self._payload.get("show_activity") + self.visibility = self._payload.get("visibility") + + def __get_integrations(self): + return [Integration(payload) for payload in self._payload.get("integrations", list())] + + @property + def is_visible(self): + return bool(self.visibility)