feat: AdminAccountActionsを追加

feat: /api/admin/accounts/create をサポート
feat: /api/admin/accounts/delete をサポート
pull/134/head
yupix 7 months ago
parent 9d07afb866
commit 60eaad7dbe
No known key found for this signature in database
GPG Key ID: 2FF705F5C56D9C06

@ -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)

@ -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

@ -5,6 +5,7 @@ from typing import TYPE_CHECKING
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,
@ -33,6 +34,7 @@ class AdminManager(AbstractManager):
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:

Loading…
Cancel
Save