Skip to content

Commit

Permalink
feat: AdminAccountActionsを追加
Browse files Browse the repository at this point in the history
feat: /api/admin/accounts/create をサポート
feat: /api/admin/accounts/delete をサポート
  • Loading branch information
yupix committed Feb 21, 2024
1 parent 9d07afb commit 60eaad7
Show file tree
Hide file tree
Showing 3 changed files with 78 additions and 0 deletions.
58 changes: 58 additions & 0 deletions mipac/actions/admins/accounts.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
from __future__ import annotations

from typing import TYPE_CHECKING

from mipac.abstract.action import AbstractAction
from mipac.http import HTTPClient, Route

if TYPE_CHECKING:
from mipac.client import ClientManager


class AdminAccountActions(AbstractAction):
def __init__(self, *, session: HTTPClient, client: ClientManager):
self.__session: HTTPClient = session
self.__client: ClientManager = client

async def create(self, username: str, password: str): # TODO: 多分UserDetailed + tokenってキー
"""ユーザーを作成します
Endpoint: `/api/admin/accounts/create`
Parameters
----------
username : str
ユーザー名
password : str
パスワード
"""

data = {"username": username, "password": password}
res = await self.__session.request(
Route("POST", "/api/admin/accounts/create"),
json=data,
)
return res

async def delete(self, *, user_id: str) -> bool:
"""対象のユーザーを削除します
Endpoint: `/api/admin/accounts/delete`
Parameters
----------
user_id : str
対象のユーザーID
Returns
-------
bool
成功ならTrue
"""
res = await self._session.request(
Route("POST", "/api/admin/accounts/delete"),
json={"userId": user_id},
auth=True,
lower=True,
)
return bool(res)
18 changes: 18 additions & 0 deletions mipac/manager/admins/accounts.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
from __future__ import annotations
from typing import TYPE_CHECKING

from mipac.abstract.manager import AbstractManager
from mipac.http import HTTPClient
from mipac.actions.admins.accounts import AdminAccountActions

if TYPE_CHECKING:
from mipac.manager.client import ClientManager


class AdminAccountManager(AbstractManager):
def __init__(self, *, session: HTTPClient, client: ClientManager):
self.__action: AdminAccountActions = AdminAccountActions(session=session, client=client)

@property
def action(self) -> AdminAccountActions:
return self.__action
2 changes: 2 additions & 0 deletions mipac/manager/admins/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
from mipac.abstract.manager import AbstractManager
from mipac.actions.admins.admin import AdminActions
from mipac.http import HTTPClient
from mipac.manager.admins.accounts import AdminAccountManager
from mipac.manager.admins.ad import AdminAdManager, ClientAdminAdManager
from mipac.manager.admins.announcement import (
AdminAnnouncementManager,
Expand Down Expand Up @@ -33,6 +34,7 @@ def __init__(self, session: HTTPClient, client: ClientManager):
self.role: AdminRolesManager = AdminRolesManager(session=session, client=client)
self.invite: AdminInviteManager = AdminInviteManager(session=session, client=client)
self.drive: AdminDriveManager = AdminDriveManager(session=session, client=client)
self.account: AdminAccountManager = AdminAccountManager(session=session, client=client)

@property
def action(self) -> AdminActions:
Expand Down

0 comments on commit 60eaad7

Please sign in to comment.