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.abstract.manager import AbstractManager
from mipac.actions.admins.admin import AdminActions from mipac.actions.admins.admin import AdminActions
from mipac.http import HTTPClient from mipac.http import HTTPClient
from mipac.manager.admins.accounts import AdminAccountManager
from mipac.manager.admins.ad import AdminAdManager, ClientAdminAdManager from mipac.manager.admins.ad import AdminAdManager, ClientAdminAdManager
from mipac.manager.admins.announcement import ( from mipac.manager.admins.announcement import (
AdminAnnouncementManager, AdminAnnouncementManager,
@ -33,6 +34,7 @@ class AdminManager(AbstractManager):
self.role: AdminRolesManager = AdminRolesManager(session=session, client=client) self.role: AdminRolesManager = AdminRolesManager(session=session, client=client)
self.invite: AdminInviteManager = AdminInviteManager(session=session, client=client) self.invite: AdminInviteManager = AdminInviteManager(session=session, client=client)
self.drive: AdminDriveManager = AdminDriveManager(session=session, client=client) self.drive: AdminDriveManager = AdminDriveManager(session=session, client=client)
self.account: AdminAccountManager = AdminAccountManager(session=session, client=client)
@property @property
def action(self) -> AdminActions: def action(self) -> AdminActions:

Loading…
Cancel
Save