Skip to content

Commit

Permalink
refactor: split client.py into multiple modules
Browse files Browse the repository at this point in the history
those changes influenced some tests which where changed as well
  • Loading branch information
201st-Luka committed Aug 22, 2023
1 parent 26a4899 commit c7bb8d0
Show file tree
Hide file tree
Showing 24 changed files with 662 additions and 622 deletions.
2 changes: 1 addition & 1 deletion pyclasher/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
from .utils import *

# client.py
from .client import RequestMethods, Status, Auth, Developer, Login, RequestQueue, Consumer, PyClasherClient
from .client import Client

# exceptions.py
from .exceptions import (Missing, MISSING, PyClasherException, ApiCode, RequestNotDone, NoneToken, InvalidLoginData,
Expand Down
16 changes: 8 additions & 8 deletions pyclasher/api/models/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,29 +23,29 @@
from .clan_war_league_group import ClanWarLeagueRound, ClanWarLeagueRoundList, ClanWarLeagueClanMember, \
ClanWarLeagueClanMemberList, ClanWarLeagueClan, ClanWarLeagueClanList, ClanWarLeagueGroup
from .clan_war_log import ClanWarLogEntry, ClanWarLog
from .war_clan import ClanWarAttack, ClanWarAttackList, ClanWarMember, ClanWarMemberList, WarClan
from .enums import ApiCodes, ClanType, WarFrequency, Locations, Leagues, CapitalLeagues, \
BuilderBaseLeagues, WarLeagues, Labels, Languages, ClanWarState, ClanWarLeagueGroupState, \
ClanWarResult, WarPreference, PlayerHouseElementType, Village, TokenStatus, ClanRole
# gold pass season
from .gold_pass_season import GoldPassSeason
# labels
from .labels import Label, LabelList
from .language import Language
# league models
from .leagues import League, BuilderBaseLeague, CapitalLeague, WarLeague, LeagueList, \
BuilderBaseLeagueList, CapitalLeagueList, WarLeagueList, LeagueSeason, LeagueSeasonList
# locations
from .location import Location, LocationList
# login
from .login import *
from .misc import *
# player models
from .player import PlayerClan, LegendLeagueTournamentSeasonResult, PlayerLegendStatistics, \
PlayerItemLevel, PlayerItemLevelList, PlayerAchievementProgress, PlayerAchievementProgressList, Player
from .player_builder_base_ranking_list import PlayerBuilderBaseRanking, PlayerBuilderBaseRankingList
from .player_house import PlayerHouseElement, PlayerHouseElementList, PlayerHouse
from .player_ranking_clan import PlayerRankingClan
from .player_ranking_list import PlayerRanking, PlayerRankingList

# misc
from .season import Season
from .language import Language
from .misc import *
from .enums import ApiCodes, ClanType, WarFrequency, Locations, Leagues, CapitalLeagues, \
BuilderBaseLeagues, WarLeagues, Labels, Languages, ClanWarState, ClanWarLeagueGroupState, \
ClanWarResult, WarPreference, PlayerHouseElementType, Village, TokenStatus, ClanRole

from .war_clan import ClanWarAttack, ClanWarAttackList, ClanWarMember, ClanWarMemberList, WarClan
2 changes: 1 addition & 1 deletion pyclasher/api/models/clan.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
from .clan_member_list import ClanMemberList
from .enums import WarFrequency, ClanType
from .labels import LabelList
from .language import Language
from .leagues import WarLeague, CapitalLeague
from .location import Location
from .language import Language


class ClanDistrictData(BaseModel):
Expand Down
2 changes: 1 addition & 1 deletion pyclasher/api/models/clan.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ from .base_models import BaseClan
from .clan_member_list import ClanMemberList
from .enums import WarFrequency, ClanType
from .labels import LabelList
from .language import Language
from .leagues import WarLeague, CapitalLeague
from .location import Location
from .language import Language
from ...exceptions import Missing


Expand Down
2 changes: 1 addition & 1 deletion pyclasher/api/models/gold_pass_season.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from .base_models import Time
from .abc import BaseModel
from .base_models import Time


class GoldPassSeason(BaseModel):
Expand Down
2 changes: 1 addition & 1 deletion pyclasher/api/models/gold_pass_season.pyi
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from .base_models import Time
from .abc import BaseModel
from .base_models import Time


class GoldPassSeason(BaseModel):
Expand Down
1 change: 1 addition & 0 deletions pyclasher/api/models/login/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from .login_models import Auth, Developer, LoginModel, Status
110 changes: 110 additions & 0 deletions pyclasher/api/models/login/login_models.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
from ..abc import BaseModel


class Status(BaseModel):
"""
class representing the status of the ClashOfClans API login
"""

@property
def code(self):
return self._get_data('code')

@property
def message(self):
return self._get_data('message')

@property
def detail(self):
return self._get_data('detail')


class Auth(BaseModel):
def __init__(self, data):
super().__init__(data)
self._main_attribute = self.uid
return

@property
def uid(self):
return self._get_data('uid')

@property
def token(self):
return self._get_data('token')

@property
def ua(self):
return self._get_data('ua')

@property
def ip(self):
return self._get_data('ip')


class Developer(BaseModel):
@property
def id(self):
return self._get_data('id')

@property
def name(self):
return self._get_data('name')

@property
def game(self):
return self._get_data('game')

@property
def email(self):
return self._get_data('email')

@property
def tier(self):
return self._get_data('tier')

@property
def allowed_scopes(self):
return self._get_data('allowedScopes')

@property
def max_cidrs(self):
return self._get_data('maxCidrs')

@property
def prev_login_ts(self):
return self._get_data('prevLoginTs')

@property
def prev_login_ip(self):
return self._get_data('prevLoginIp')

@property
def prev_login_ua(self):
return self._get_data('prevLoginUa')


class LoginModel(BaseModel):
@property
def status(self):
return Status(self._get_data('status'))

@property
def session_expires_in_seconds(self):
return self._get_data('sessionExpiresInSeconds')

@property
def auth(self):
return Auth(self._get_data('auth'))

@property
def developer(self):
return Developer(self._get_data('developer'))

@property
def temporary_api_token(self):
return self._get_data('temporaryAPIToken')

@property
def swagger_url(self):
return self._get_data('swaggerUrl')
Loading

0 comments on commit c7bb8d0

Please sign in to comment.