Skip to content

wrapper.pyに get_all_my_organizations を追加 #54

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 7 commits into from
Sep 3, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion annofabapi/__version__.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
__version__ = '0.15.1'
__version__ = '0.15.2'
15 changes: 3 additions & 12 deletions annofabapi/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -269,10 +269,7 @@ def refresh_token(self) -> Optional[Tuple[Dict[str, Any], requests.Response]]:
# Public Method : 労務関係API (将来的に大きく変更される可能性があります)
# 労務管理がりようできる組織は限られています。利用する場合は、AnnoFabにお問い合わせください。
#########################################
def get_labor_control(
self,
query_params: Optional[Dict[str, Any]] = None
) -> Tuple[Any, requests.Response]:
def get_labor_control(self, query_params: Optional[Dict[str, Any]] = None) -> Tuple[Any, requests.Response]:
"""労務管理関連データを一括で取得します。


Expand All @@ -291,10 +288,7 @@ def get_labor_control(
}
return self._request_wrapper(http_method, url_path, **keyword_params)

def put_labor_control(
self,
request_body: Dict[str, Any]
) -> Tuple[Any, requests.Response]:
def put_labor_control(self, request_body: Dict[str, Any]) -> Tuple[Any, requests.Response]:
"""労務管理関連データを更新します。


Expand All @@ -313,10 +307,7 @@ def put_labor_control(
}
return self._request_wrapper(http_method, url_path, **keyword_params)

def delete_labor_control(
self,
data_id: str
) -> Tuple[Any, requests.Response]:
def delete_labor_control(self, data_id: str) -> Tuple[Any, requests.Response]:
"""労務管理関連データを削除します。


Expand Down
87 changes: 87 additions & 0 deletions annofabapi/dataclass/my.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
# flake8: noqa: W291
# pylint: disable=too-many-lines,trailing-whitespace
"""
annofabapiのmodelをDataClassで定義したクラス

Note:
このファイルはopenapi-generatorで自動生成される。詳細は generate/README.mdを参照.
oneOf, allOfなどは正しく表現できない可能性がある。
"""

import warnings # pylint: disable=unused-import
from dataclasses import dataclass
from typing import Any, Dict, List, NewType, Optional, Tuple, Union # pylint: disable=unused-import

from dataclasses_json import dataclass_json

from annofabapi.dataclass.organization import OrganizationSummary
from annofabapi.models import AccountAuthority, OrganizationMemberRole, OrganizationMemberStatus, PricePlan


@dataclass_json
@dataclass
class MyOrganization:
"""

"""
organization_id: Optional[str]
""""""

name: Optional[str]
""""""

email: Optional[str]
""""""

price_plan: Optional[PricePlan]
""""""

summary: Optional[OrganizationSummary]
""""""

created_datetime: Optional[str]
""""""

updated_datetime: Optional[str]
""""""

my_role: Optional[OrganizationMemberRole]
""""""

my_status: Optional[OrganizationMemberStatus]
""""""
@dataclass_json
@dataclass
class MyAccount:
"""

"""
account_id: str
""""""

user_id: str
""""""

username: str
""""""

email: str
""""""

lang: str
""""""

keylayout: str
""""""

authority: AccountAuthority
""""""

updated_datetime: Optional[str]
""""""

reset_requested_email: Optional[str]
""""""

errors: List[str]
""""""
18 changes: 15 additions & 3 deletions annofabapi/wrapper.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@
import annofabapi.utils
from annofabapi import AnnofabApi
from annofabapi.exceptions import AnnofabApiException
from annofabapi.models import (AnnotationSpecs, InputData, Inspection, JobInfo, OrganizationMember, Project,
ProjectMember, SupplementaryData, Task)
from annofabapi.models import (AnnotationSpecs, InputData, Inspection, JobInfo, MyOrganization, OrganizationMember,
Project, ProjectMember, SupplementaryData, Task)

logger = logging.getLogger(__name__)

Expand Down Expand Up @@ -75,7 +75,7 @@ def _get_all_objects(func_get_list: Callable, limit: int, **kwargs_for_func_get_
get_XXX関数で取得した情報の一覧

"""
arg_query_params = kwargs_for_func_get_list['query_params']
arg_query_params = kwargs_for_func_get_list.get('query_params')
copied_query_params = copy.deepcopy(arg_query_params) if arg_query_params is not None else {}

all_objects: List[Dict[str, Any]] = []
Expand Down Expand Up @@ -387,6 +387,18 @@ def search_updated_inspections(arg_inspection: Inspection) -> bool:
content = self.api.batch_update_inspections(project_id, task_id, input_data_id, req_inspection)[0]
return content

#########################################
# Public Method : AfMyApi
#########################################
def get_all_my_organizations(self) -> List[MyOrganization]:
"""
所属しているすべての組織一覧を取得する

Returns:
すべての所属一覧
"""
return self._get_all_objects(self.api.get_my_organizations, limit=200)

#########################################
# Public Method : AfOrganizationApi
#########################################
Expand Down
4 changes: 4 additions & 0 deletions docs/dataclass.rst
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,10 @@ annofabapi.dataclass.job module
.. automodule:: annofabapi.dataclass.job
:members:

annofabapi.dataclass.my module
------------------------------
.. automodule:: annofabapi.dataclass.my
:members:

annofabapi.dataclass.organization module
----------------------------------------
Expand Down
5 changes: 5 additions & 0 deletions generate/generate.sh
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,11 @@ declare -a model_files=(${MODELS_DIR}/job_info.py)
cat partial-header/dataclass/common.py partial-header/dataclass/job.py \
${model_files[@]} > ../annofabapi/dataclass/job.py

# My
declare -a model_files=(${MODELS_DIR}/my_organization.py ${MODELS_DIR}/my_account.py)
cat partial-header/dataclass/common.py partial-header/dataclass/my.py \
${model_files[@]} > ../annofabapi/dataclass/my.py

# Organization
declare -a model_files=(${MODELS_DIR}/organization_activity.py ${MODELS_DIR}/organization_summary.py ${MODELS_DIR}/organization.py)
cat partial-header/dataclass/common.py partial-header/dataclass/organization.py \
Expand Down
2 changes: 2 additions & 0 deletions generate/partial-header/dataclass/my.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
from annofabapi.models import OrganizationMemberRole, OrganizationMemberStatus, PricePlan, AccountAuthority
from annofabapi.dataclass.organization import OrganizationSummary
13 changes: 13 additions & 0 deletions tests/data/dataclass/my-account.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"account_id": "12345678-abcd-1234-abcd-1234abcd5678",
"user_id": "test_user_id",
"username": "test_user_name",
"email": "[email protected]",
"reset_requested_email": null,
"lang": "ja-JP",
"keylayout": "ja-JP",
"authority": "user",
"errors": [],
"updated_datetime": "2019-08-13T22:18:31.594+09:00",
"is_external_account": false
}
13 changes: 13 additions & 0 deletions tests/data/dataclass/my-organization.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"organization_id": "32345678-abcd-1234-abcd-1234abcd5678",
"name": "test-organization",
"email": "[email protected]",
"price_plan": "free",
"summary": {
"last_tasks_updated_datetime": "2019-09-03T18:05:01.508+09:00"
},
"created_datetime": "2018-05-09T07:47:47.913+09:00",
"updated_datetime": "2018-05-09T07:47:47.913+09:00",
"my_role": "owner",
"my_status": "active"
}
6 changes: 3 additions & 3 deletions tests/test_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,9 +65,9 @@ def test_my():
my_project_members, _ = api.get_my_project_members()
assert len(my_project_members) > 0

print(f"get_my_organizations")
my_organizations, _ = api.get_my_organizations()
assert len(my_organizations['list']) > 0
print(f"get_my_organizations in wrapper.get_all_my_organizations")
my_organizations = wrapper.get_all_my_organizations()
assert len(my_organizations) > 0

print(f"get_my_projects")
my_projects, _ = api.get_my_projects()
Expand Down
Loading