From ff5533b647548193a51cdfd2b975f5594f1f8a0e Mon Sep 17 00:00:00 2001 From: "shimoda.m" Date: Tue, 21 Jan 2025 05:23:54 +0000 Subject: [PATCH] =?UTF-8?q?Merged=20PR=201010:=202025/1/27=20=E6=9C=AC?= =?UTF-8?q?=E7=95=AA=E3=83=AA=E3=83=AA=E3=83=BC=E3=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + dictation_client/.eslintrc.js | 1 + dictation_client/src/api/api.ts | 1211 +++++++--- dictation_client/src/app/store.ts | 4 + dictation_client/src/assets/images/search.svg | 7 + .../src/components/auth/constants.ts | 1 + .../src/features/account/operations.ts | 2 +- .../src/features/dictation/dictationSlice.ts | 12 + .../src/features/dictation/operations.ts | 199 +- .../src/features/dictation/selectors.ts | 6 + .../src/features/dictation/state.ts | 2 + .../license/licenseOrderHistory/constants.ts | 5 + .../license/licenseOrderHistory/operations.ts | 15 +- .../license/licenseSummary/operations.ts | 5 +- .../license/licenseTrialIssue/constants.ts | 2 + .../license/licenseTrialIssue/index.ts | 5 + .../licenseTrialIssueSlice.ts | 60 + .../license/licenseTrialIssue/operations.ts | 84 + .../license/licenseTrialIssue/selectors.ts | 10 + .../license/licenseTrialIssue/state.ts | 9 + .../partnerLicense/partnerLicenseSlice.ts | 25 + .../license/partnerLicense/selectors.ts | 7 + .../features/license/partnerLicense/state.ts | 3 + .../features/license/searchPartner/index.ts | 4 + .../license/searchPartner/operations.ts | 96 + .../searchPartner/searchPartnerSlice.ts | 80 + .../license/searchPartner/selectors.ts | 14 + .../features/license/searchPartner/state.ts | 18 + .../src/features/user/operations.ts | 72 +- .../src/pages/DictationPage/index.tsx | 544 +++-- .../pages/LicensePage/licenseOrderHistory.tsx | 26 +- .../src/pages/LicensePage/licenseSummary.tsx | 48 +- .../src/pages/LicensePage/partnerLicense.tsx | 240 +- .../LicensePage/searchPartnerAccountPopup.tsx | 354 +++ .../LicensePage/trialLicenseIssuePopup.tsx | 123 + .../UserListPage/allocateLicensePopup.tsx | 7 +- .../src/pages/UserListPage/index.tsx | 110 + .../src/pages/UserListPage/popup.tsx | 4 +- .../src/pages/UserListPage/updatePopup.tsx | 4 +- dictation_client/src/styles/app.module.scss | 108 +- .../src/styles/app.module.scss.d.ts | 8 + dictation_client/src/translation/de.json | 6 +- dictation_client/src/translation/en.json | 6 +- dictation_client/src/translation/es.json | 6 +- dictation_client/src/translation/fr.json | 6 +- .../067-add_license_type_license_orders.sql | 5 + .../db/migrations/068-create_task_filters.sql | 16 + .../069-insert_initial_task_filters.sql | 9 + dictation_server/package.json | 5 +- dictation_server/src/api/odms/openapi.json | 453 +++- dictation_server/src/app.module.ts | 2 + .../src/common/repository/utils/utils.ts | 8 + dictation_server/src/common/test/modules.ts | 2 + dictation_server/src/common/test/overrides.ts | 9 + dictation_server/src/common/test/utility.ts | 51 + dictation_server/src/constants/index.ts | 6 + .../features/accounts/accounts.controller.ts | 185 ++ .../accounts/accounts.service.spec.ts | 2032 ++++++++++++++++- .../src/features/accounts/accounts.service.ts | 179 +- .../accounts/test/accounts.service.mock.ts | 1 + .../src/features/accounts/test/utility.ts | 10 + .../src/features/accounts/types/types.ts | 46 +- .../features/licenses/licenses.controller.ts | 86 + .../licenses/licenses.service.spec.ts | 394 +++- .../src/features/licenses/licenses.service.ts | 109 +- .../src/features/licenses/test/utility.ts | 44 +- .../src/features/licenses/types/types.ts | 10 + .../src/features/tasks/tasks.controller.ts | 10 +- .../src/features/tasks/tasks.service.spec.ts | 1995 +++++++++++++++- .../src/features/tasks/tasks.service.ts | 13 +- .../src/features/tasks/test/utility.ts | 11 +- .../src/features/tasks/types/types.ts | 17 + .../features/users/test/users.service.mock.ts | 48 + .../src/features/users/types/types.ts | 44 + .../src/features/users/users.controller.ts | 259 ++- .../src/features/users/users.module.ts | 2 + .../src/features/users/users.service.spec.ts | 819 ++++++- .../src/features/users/users.service.ts | 237 +- .../src/gateways/sendgrid/sendgrid.service.ts | 120 + .../accounts/accounts.repository.service.ts | 315 ++- .../licenses/entity/license.entity.ts | 3 + .../licenses/licenses.repository.service.ts | 64 +- .../entity/task_filters.entity.ts | 16 + .../task_filter.repository.module.ts | 11 + .../task_filter.repository.service.ts | 129 ++ .../tasks/tasks.repository.service.ts | 183 +- .../users/users.repository.service.ts | 39 + dictation_server/src/templates/constants.ts | 3 + .../src/templates/template_U_125.html | 108 + .../src/templates/template_U_125.txt | 59 + .../src/templates/template_U_126.html | 92 + .../src/templates/template_U_126.txt | 47 + environment_building_tools/README.md | 88 + environment_building_tools/buildclient.sh | 77 + .../environment-build-local.sh | 91 + environment_building_tools/killserver.sh | 32 + environment_building_tools/runserver.sh | 97 + 97 files changed, 11638 insertions(+), 613 deletions(-) create mode 100644 .gitignore create mode 100644 dictation_client/src/assets/images/search.svg create mode 100644 dictation_client/src/features/license/licenseTrialIssue/constants.ts create mode 100644 dictation_client/src/features/license/licenseTrialIssue/index.ts create mode 100644 dictation_client/src/features/license/licenseTrialIssue/licenseTrialIssueSlice.ts create mode 100644 dictation_client/src/features/license/licenseTrialIssue/operations.ts create mode 100644 dictation_client/src/features/license/licenseTrialIssue/selectors.ts create mode 100644 dictation_client/src/features/license/licenseTrialIssue/state.ts create mode 100644 dictation_client/src/features/license/searchPartner/index.ts create mode 100644 dictation_client/src/features/license/searchPartner/operations.ts create mode 100644 dictation_client/src/features/license/searchPartner/searchPartnerSlice.ts create mode 100644 dictation_client/src/features/license/searchPartner/selectors.ts create mode 100644 dictation_client/src/features/license/searchPartner/state.ts create mode 100644 dictation_client/src/pages/LicensePage/searchPartnerAccountPopup.tsx create mode 100644 dictation_client/src/pages/LicensePage/trialLicenseIssuePopup.tsx create mode 100644 dictation_server/db/migrations/067-add_license_type_license_orders.sql create mode 100644 dictation_server/db/migrations/068-create_task_filters.sql create mode 100644 dictation_server/db/migrations/069-insert_initial_task_filters.sql create mode 100644 dictation_server/src/common/repository/utils/utils.ts create mode 100644 dictation_server/src/repositories/task_filters/entity/task_filters.entity.ts create mode 100644 dictation_server/src/repositories/task_filters/task_filter.repository.module.ts create mode 100644 dictation_server/src/repositories/task_filters/task_filter.repository.service.ts create mode 100644 dictation_server/src/templates/template_U_125.html create mode 100644 dictation_server/src/templates/template_U_125.txt create mode 100644 dictation_server/src/templates/template_U_126.html create mode 100644 dictation_server/src/templates/template_U_126.txt create mode 100755 environment_building_tools/README.md create mode 100755 environment_building_tools/buildclient.sh create mode 100755 environment_building_tools/environment-build-local.sh create mode 100755 environment_building_tools/killserver.sh create mode 100755 environment_building_tools/runserver.sh diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ee064e0 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +environment_building_tools/logfile.log diff --git a/dictation_client/.eslintrc.js b/dictation_client/.eslintrc.js index 88b4f1b..6dd445a 100644 --- a/dictation_client/.eslintrc.js +++ b/dictation_client/.eslintrc.js @@ -27,6 +27,7 @@ module.exports = { rules: { "react/jsx-uses-react": "off", "react/react-in-jsx-scope": "off", + "react/require-default-props": "off", "react/function-component-definition": [ "error", { diff --git a/dictation_client/src/api/api.ts b/dictation_client/src/api/api.ts index 55c4c3a..8ed68ae 100644 --- a/dictation_client/src/api/api.ts +++ b/dictation_client/src/api/api.ts @@ -398,6 +398,19 @@ export interface CancelOrderRequest { */ 'poNumber': string; } +/** + * + * @export + * @interface ConfirmForceRequest + */ +export interface ConfirmForceRequest { + /** + * + * @type {number} + * @memberof ConfirmForceRequest + */ + 'userId': number; +} /** * * @export @@ -1004,6 +1017,19 @@ export interface GetOrderHistoriesResponse { */ 'orderHistories': Array; } +/** + * + * @export + * @interface GetPartnerHierarchyResponse + */ +export interface GetPartnerHierarchyResponse { + /** + * + * @type {Array} + * @memberof GetPartnerHierarchyResponse + */ + 'accountHierarchy': Array; +} /** * * @export @@ -1173,6 +1199,25 @@ export interface GetSortCriteriaResponse { */ 'paramName': string; } +/** + * + * @export + * @interface GetTaskFiltersResponse + */ +export interface GetTaskFiltersResponse { + /** + * タスクの検索キーワードを取得する:AuthorID + * @type {string} + * @memberof GetTaskFiltersResponse + */ + 'authorId'?: string; + /** + * タスクの検索キーワードを取得する:fileName + * @type {string} + * @memberof GetTaskFiltersResponse + */ + 'fileName'?: string; +} /** * * @export @@ -1365,6 +1410,19 @@ export interface IssueLicenseRequest { */ 'poNumber': string; } +/** + * + * @export + * @interface IssueTrialLicenseRequest + */ +export interface IssueTrialLicenseRequest { + /** + * + * @type {number} + * @memberof IssueTrialLicenseRequest + */ + 'issuedAccount': number; +} /** * * @export @@ -1401,6 +1459,12 @@ export interface LicenseOrder { * @memberof LicenseOrder */ 'status': string; + /** + * ライセンス種別 + * @type {string} + * @memberof LicenseOrder + */ + 'type': string; } /** * @@ -1581,6 +1645,31 @@ export interface Partner { */ 'dealerManagement': boolean; } +/** + * + * @export + * @interface PartnerHierarchy + */ +export interface PartnerHierarchy { + /** + * 会社名 + * @type {string} + * @memberof PartnerHierarchy + */ + 'name': string; + /** + * 階層 + * @type {number} + * @memberof PartnerHierarchy + */ + 'tier': number; + /** + * アカウントID + * @type {number} + * @memberof PartnerHierarchy + */ + 'accountId': number; +} /** * * @export @@ -1623,6 +1712,12 @@ export interface PartnerLicenseInfo { * @memberof PartnerLicenseInfo */ 'shortage': number; + /** + * 有効期限内の割り当て済み総ライセンス数 + * @type {number} + * @memberof PartnerLicenseInfo + */ + 'allocatedLicense': number; /** * 未発行状態あるいは発行キャンセルされた注文の総ライセンス数(=IssueRequestingのStatusの注文の総ライセンス数) * @type {number} @@ -1769,6 +1864,25 @@ export interface PostSortCriteriaRequest { */ 'paramName': string; } +/** + * + * @export + * @interface PostTaskFiltersRequest + */ +export interface PostTaskFiltersRequest { + /** + * タスクの検索キーワードを更新する:AuthorID + * @type {string} + * @memberof PostTaskFiltersRequest + */ + 'filterConditionAuthorId': string; + /** + * タスクの検索キーワードを更新する:fileName + * @type {string} + * @memberof PostTaskFiltersRequest + */ + 'filterConditionFileName': string; +} /** * * @export @@ -1868,6 +1982,62 @@ export interface RegisterRequest { */ 'handler': string; } +/** + * + * @export + * @interface SearchPartner + */ +export interface SearchPartner { + /** + * 会社名 + * @type {string} + * @memberof SearchPartner + */ + 'name': string; + /** + * 階層 + * @type {number} + * @memberof SearchPartner + */ + 'tier': number; + /** + * アカウントID + * @type {number} + * @memberof SearchPartner + */ + 'accountId': number; + /** + * 国 + * @type {string} + * @memberof SearchPartner + */ + 'country': string; + /** + * プライマリ管理者 + * @type {string} + * @memberof SearchPartner + */ + 'primaryAdmin': string; + /** + * プライマリ管理者メールアドレス + * @type {string} + * @memberof SearchPartner + */ + 'email': string; +} +/** + * + * @export + * @interface SearchPartnersResponse + */ +export interface SearchPartnersResponse { + /** + * + * @type {Array} + * @memberof SearchPartnersResponse + */ + 'searchResult': Array; +} /** * * @export @@ -2719,7 +2889,7 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -2728,12 +2898,12 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat await setBearerAuthToObject(localVarHeaderParameter, configuration) - + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; localVarRequestOptions.data = serializeDataIfNeeded(postActiveWorktypeRequest, localVarRequestOptions, configuration) return { @@ -2759,7 +2929,7 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -2768,12 +2938,12 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat await setBearerAuthToObject(localVarHeaderParameter, configuration) - + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; localVarRequestOptions.data = serializeDataIfNeeded(cancelIssueRequest, localVarRequestOptions, configuration) return { @@ -2799,17 +2969,17 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; - + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; localVarRequestOptions.data = serializeDataIfNeeded(createAccountRequest, localVarRequestOptions, configuration) return { @@ -2835,7 +3005,7 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -2844,12 +3014,12 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat await setBearerAuthToObject(localVarHeaderParameter, configuration) - + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; localVarRequestOptions.data = serializeDataIfNeeded(createPartnerAccountRequest, localVarRequestOptions, configuration) return { @@ -2875,7 +3045,7 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -2884,12 +3054,12 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat await setBearerAuthToObject(localVarHeaderParameter, configuration) - + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; localVarRequestOptions.data = serializeDataIfNeeded(createTypistGroupRequest, localVarRequestOptions, configuration) return { @@ -2915,7 +3085,7 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -2924,12 +3094,12 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat await setBearerAuthToObject(localVarHeaderParameter, configuration) - + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; localVarRequestOptions.data = serializeDataIfNeeded(createWorktypesRequest, localVarRequestOptions, configuration) return { @@ -2955,7 +3125,7 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -2964,12 +3134,12 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat await setBearerAuthToObject(localVarHeaderParameter, configuration) - + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; localVarRequestOptions.data = serializeDataIfNeeded(deleteAccountRequest, localVarRequestOptions, configuration) return { @@ -2995,7 +3165,7 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -3004,12 +3174,12 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat await setBearerAuthToObject(localVarHeaderParameter, configuration) - + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; localVarRequestOptions.data = serializeDataIfNeeded(deletePartnerAccountRequest, localVarRequestOptions, configuration) return { @@ -3036,7 +3206,7 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -3045,10 +3215,10 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat await setBearerAuthToObject(localVarHeaderParameter, configuration) - + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; return { url: toPathString(localVarUrlObj), @@ -3074,7 +3244,7 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -3083,10 +3253,10 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat await setBearerAuthToObject(localVarHeaderParameter, configuration) - + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; return { url: toPathString(localVarUrlObj), @@ -3111,17 +3281,17 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; - + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; localVarRequestOptions.data = serializeDataIfNeeded(getAccountInfoMinimalAccessRequest, localVarRequestOptions, configuration) return { @@ -3144,7 +3314,7 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -3153,10 +3323,10 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat await setBearerAuthToObject(localVarHeaderParameter, configuration) - + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; return { url: toPathString(localVarUrlObj), @@ -3181,7 +3351,7 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -3190,12 +3360,12 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat await setBearerAuthToObject(localVarHeaderParameter, configuration) - + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; localVarRequestOptions.data = serializeDataIfNeeded(getCompanyNameRequest, localVarRequestOptions, configuration) return { @@ -3218,15 +3388,15 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; - + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; return { url: toPathString(localVarUrlObj), @@ -3251,7 +3421,7 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -3260,12 +3430,12 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat await setBearerAuthToObject(localVarHeaderParameter, configuration) - + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; localVarRequestOptions.data = serializeDataIfNeeded(getLicenseSummaryRequest, localVarRequestOptions, configuration) return { @@ -3288,7 +3458,7 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -3297,10 +3467,10 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat await setBearerAuthToObject(localVarHeaderParameter, configuration) - + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; return { url: toPathString(localVarUrlObj), @@ -3326,7 +3496,7 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -3335,10 +3505,10 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat await setBearerAuthToObject(localVarHeaderParameter, configuration) - + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; return { url: toPathString(localVarUrlObj), @@ -3363,7 +3533,7 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -3372,12 +3542,12 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat await setBearerAuthToObject(localVarHeaderParameter, configuration) - + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; localVarRequestOptions.data = serializeDataIfNeeded(getOrderHistoriesRequest, localVarRequestOptions, configuration) return { @@ -3385,6 +3555,47 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat options: localVarRequestOptions, }; }, + /** + * + * @summary + * @param {number} accountId アカウントID + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getPartnerHierarchy: async (accountId: number, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'accountId' is not null or undefined + assertParamExists('getPartnerHierarchy', 'accountId', accountId) + const localVarPath = `/accounts/partners/hierarchy`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options }; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearer required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + if (accountId !== undefined) { + localVarQueryParameter['accountId'] = accountId; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, /** * * @summary @@ -3403,7 +3614,7 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -3412,12 +3623,12 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat await setBearerAuthToObject(localVarHeaderParameter, configuration) - + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; localVarRequestOptions.data = serializeDataIfNeeded(getPartnerLicensesRequest, localVarRequestOptions, configuration) return { @@ -3443,7 +3654,7 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -3452,12 +3663,12 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat await setBearerAuthToObject(localVarHeaderParameter, configuration) - + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; localVarRequestOptions.data = serializeDataIfNeeded(getPartnerUsersRequest, localVarRequestOptions, configuration) return { @@ -3486,7 +3697,7 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -3503,10 +3714,10 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat } - + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; return { url: toPathString(localVarUrlObj), @@ -3532,7 +3743,7 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -3541,10 +3752,10 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat await setBearerAuthToObject(localVarHeaderParameter, configuration) - + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; return { url: toPathString(localVarUrlObj), @@ -3566,7 +3777,7 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -3575,10 +3786,10 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat await setBearerAuthToObject(localVarHeaderParameter, configuration) - + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; return { url: toPathString(localVarUrlObj), @@ -3600,7 +3811,7 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -3609,10 +3820,10 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat await setBearerAuthToObject(localVarHeaderParameter, configuration) - + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; return { url: toPathString(localVarUrlObj), @@ -3634,7 +3845,7 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -3643,10 +3854,10 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat await setBearerAuthToObject(localVarHeaderParameter, configuration) - + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; return { url: toPathString(localVarUrlObj), @@ -3671,7 +3882,7 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -3680,12 +3891,12 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat await setBearerAuthToObject(localVarHeaderParameter, configuration) - + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; localVarRequestOptions.data = serializeDataIfNeeded(issueLicenseRequest, localVarRequestOptions, configuration) return { @@ -3693,6 +3904,50 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat options: localVarRequestOptions, }; }, + /** + * + * @summary + * @param {string} [companyName] パートナー名 + * @param {number} [accountId] アカウントID + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + searchPartners: async (companyName?: string, accountId?: number, options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/accounts/partners/search`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options }; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearer required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + if (companyName !== undefined) { + localVarQueryParameter['companyName'] = companyName; + } + + if (accountId !== undefined) { + localVarQueryParameter['accountId'] = accountId; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, /** * * @summary @@ -3711,7 +3966,7 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -3720,12 +3975,12 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat await setBearerAuthToObject(localVarHeaderParameter, configuration) - + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; localVarRequestOptions.data = serializeDataIfNeeded(switchParentRequest, localVarRequestOptions, configuration) return { @@ -3751,7 +4006,7 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -3760,12 +4015,12 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat await setBearerAuthToObject(localVarHeaderParameter, configuration) - + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; localVarRequestOptions.data = serializeDataIfNeeded(updateAccountInfoRequest, localVarRequestOptions, configuration) return { @@ -3791,7 +4046,7 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -3800,12 +4055,12 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat await setBearerAuthToObject(localVarHeaderParameter, configuration) - + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; localVarRequestOptions.data = serializeDataIfNeeded(updateFileDeleteSettingRequest, localVarRequestOptions, configuration) return { @@ -3835,7 +4090,7 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -3844,12 +4099,12 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat await setBearerAuthToObject(localVarHeaderParameter, configuration) - + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; localVarRequestOptions.data = serializeDataIfNeeded(updateOptionItemsRequest, localVarRequestOptions, configuration) return { @@ -3875,7 +4130,7 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -3884,12 +4139,12 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat await setBearerAuthToObject(localVarHeaderParameter, configuration) - + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; localVarRequestOptions.data = serializeDataIfNeeded(updatePartnerInfoRequest, localVarRequestOptions, configuration) return { @@ -3915,7 +4170,7 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -3924,12 +4179,12 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat await setBearerAuthToObject(localVarHeaderParameter, configuration) - + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; localVarRequestOptions.data = serializeDataIfNeeded(updateRestrictionStatusRequest, localVarRequestOptions, configuration) return { @@ -3959,7 +4214,7 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -3968,12 +4223,12 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat await setBearerAuthToObject(localVarHeaderParameter, configuration) - + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; localVarRequestOptions.data = serializeDataIfNeeded(updateTypistGroupRequest, localVarRequestOptions, configuration) return { @@ -4003,7 +4258,7 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -4012,12 +4267,12 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat await setBearerAuthToObject(localVarHeaderParameter, configuration) - + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; localVarRequestOptions.data = serializeDataIfNeeded(updateWorktypesRequest, localVarRequestOptions, configuration) return { @@ -4032,7 +4287,7 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat * AccountsApi - functional programming interface * @export */ -export const AccountsApiFp = function(configuration?: Configuration) { +export const AccountsApiFp = function (configuration?: Configuration) { const localVarAxiosParamCreator = AccountsApiAxiosParamCreator(configuration) return { /** @@ -4266,6 +4521,19 @@ export const AccountsApiFp = function(configuration?: Configuration) { const operationBasePath = operationServerMap['AccountsApi.getOrderHistories']?.[index]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, operationBasePath || basePath); }, + /** + * + * @summary + * @param {number} accountId アカウントID + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getPartnerHierarchy(accountId: number, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getPartnerHierarchy(accountId, options); + const index = configuration?.serverIndex ?? 0; + const operationBasePath = operationServerMap['AccountsApi.getPartnerHierarchy']?.[index]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, operationBasePath || basePath); + }, /** * * @summary @@ -4368,6 +4636,20 @@ export const AccountsApiFp = function(configuration?: Configuration) { const operationBasePath = operationServerMap['AccountsApi.issueLicense']?.[index]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, operationBasePath || basePath); }, + /** + * + * @summary + * @param {string} [companyName] パートナー名 + * @param {number} [accountId] アカウントID + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async searchPartners(companyName?: string, accountId?: number, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.searchPartners(companyName, accountId, options); + const index = configuration?.serverIndex ?? 0; + const operationBasePath = operationServerMap['AccountsApi.searchPartners']?.[index]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, operationBasePath || basePath); + }, /** * * @summary @@ -4662,6 +4944,16 @@ export const AccountsApiFactory = function (configuration?: Configuration, baseP getOrderHistories(getOrderHistoriesRequest: GetOrderHistoriesRequest, options?: any): AxiosPromise { return localVarFp.getOrderHistories(getOrderHistoriesRequest, options).then((request) => request(axios, basePath)); }, + /** + * + * @summary + * @param {number} accountId アカウントID + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getPartnerHierarchy(accountId: number, options?: any): AxiosPromise { + return localVarFp.getPartnerHierarchy(accountId, options).then((request) => request(axios, basePath)); + }, /** * * @summary @@ -4740,6 +5032,17 @@ export const AccountsApiFactory = function (configuration?: Configuration, baseP issueLicense(issueLicenseRequest: IssueLicenseRequest, options?: any): AxiosPromise { return localVarFp.issueLicense(issueLicenseRequest, options).then((request) => request(axios, basePath)); }, + /** + * + * @summary + * @param {string} [companyName] パートナー名 + * @param {number} [accountId] アカウントID + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + searchPartners(companyName?: string, accountId?: number, options?: any): AxiosPromise { + return localVarFp.searchPartners(companyName, accountId, options).then((request) => request(axios, basePath)); + }, /** * * @summary @@ -5046,6 +5349,18 @@ export class AccountsApi extends BaseAPI { return AccountsApiFp(this.configuration).getOrderHistories(getOrderHistoriesRequest, options).then((request) => request(this.axios, this.basePath)); } + /** + * + * @summary + * @param {number} accountId アカウントID + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof AccountsApi + */ + public getPartnerHierarchy(accountId: number, options?: AxiosRequestConfig) { + return AccountsApiFp(this.configuration).getPartnerHierarchy(accountId, options).then((request) => request(this.axios, this.basePath)); + } + /** * * @summary @@ -5140,6 +5455,19 @@ export class AccountsApi extends BaseAPI { return AccountsApiFp(this.configuration).issueLicense(issueLicenseRequest, options).then((request) => request(this.axios, this.basePath)); } + /** + * + * @summary + * @param {string} [companyName] パートナー名 + * @param {number} [accountId] アカウントID + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof AccountsApi + */ + public searchPartners(companyName?: string, accountId?: number, options?: AxiosRequestConfig) { + return AccountsApiFp(this.configuration).searchPartners(companyName, accountId, options).then((request) => request(this.axios, this.basePath)); + } + /** * * @summary @@ -5263,7 +5591,7 @@ export const AuthApiAxiosParamCreator = function (configuration?: Configuration) baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -5272,10 +5600,10 @@ export const AuthApiAxiosParamCreator = function (configuration?: Configuration) await setBearerAuthToObject(localVarHeaderParameter, configuration) - + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; return { url: toPathString(localVarUrlObj), @@ -5297,7 +5625,7 @@ export const AuthApiAxiosParamCreator = function (configuration?: Configuration) baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -5306,10 +5634,10 @@ export const AuthApiAxiosParamCreator = function (configuration?: Configuration) await setBearerAuthToObject(localVarHeaderParameter, configuration) - + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; return { url: toPathString(localVarUrlObj), @@ -5334,7 +5662,7 @@ export const AuthApiAxiosParamCreator = function (configuration?: Configuration) baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -5343,12 +5671,12 @@ export const AuthApiAxiosParamCreator = function (configuration?: Configuration) await setBearerAuthToObject(localVarHeaderParameter, configuration) - + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; localVarRequestOptions.data = serializeDataIfNeeded(delegationTokenRequest, localVarRequestOptions, configuration) return { @@ -5374,17 +5702,17 @@ export const AuthApiAxiosParamCreator = function (configuration?: Configuration) baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; - + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; localVarRequestOptions.data = serializeDataIfNeeded(tokenRequest, localVarRequestOptions, configuration) return { @@ -5399,7 +5727,7 @@ export const AuthApiAxiosParamCreator = function (configuration?: Configuration) * AuthApi - functional programming interface * @export */ -export const AuthApiFp = function(configuration?: Configuration) { +export const AuthApiFp = function (configuration?: Configuration) { const localVarAxiosParamCreator = AuthApiAxiosParamCreator(configuration) return { /** @@ -5580,15 +5908,15 @@ export const DefaultApiAxiosParamCreator = function (configuration?: Configurati baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; - + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; return { url: toPathString(localVarUrlObj), @@ -5602,7 +5930,7 @@ export const DefaultApiAxiosParamCreator = function (configuration?: Configurati * DefaultApi - functional programming interface * @export */ -export const DefaultApiFp = function(configuration?: Configuration) { +export const DefaultApiFp = function (configuration?: Configuration) { const localVarAxiosParamCreator = DefaultApiAxiosParamCreator(configuration) return { /** @@ -5684,7 +6012,7 @@ export const FilesApiAxiosParamCreator = function (configuration?: Configuration baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -5697,10 +6025,10 @@ export const FilesApiAxiosParamCreator = function (configuration?: Configuration } - + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; return { url: toPathString(localVarUrlObj), @@ -5725,7 +6053,7 @@ export const FilesApiAxiosParamCreator = function (configuration?: Configuration baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -5738,10 +6066,10 @@ export const FilesApiAxiosParamCreator = function (configuration?: Configuration } - + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; return { url: toPathString(localVarUrlObj), @@ -5766,7 +6094,7 @@ export const FilesApiAxiosParamCreator = function (configuration?: Configuration baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -5775,12 +6103,12 @@ export const FilesApiAxiosParamCreator = function (configuration?: Configuration await setBearerAuthToObject(localVarHeaderParameter, configuration) - + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; localVarRequestOptions.data = serializeDataIfNeeded(fileRenameRequest, localVarRequestOptions, configuration) return { @@ -5806,7 +6134,7 @@ export const FilesApiAxiosParamCreator = function (configuration?: Configuration baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -5815,12 +6143,12 @@ export const FilesApiAxiosParamCreator = function (configuration?: Configuration await setBearerAuthToObject(localVarHeaderParameter, configuration) - + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; localVarRequestOptions.data = serializeDataIfNeeded(audioUploadFinishedRequest, localVarRequestOptions, configuration) return { @@ -5843,7 +6171,7 @@ export const FilesApiAxiosParamCreator = function (configuration?: Configuration baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -5852,10 +6180,10 @@ export const FilesApiAxiosParamCreator = function (configuration?: Configuration await setBearerAuthToObject(localVarHeaderParameter, configuration) - + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; return { url: toPathString(localVarUrlObj), @@ -5880,7 +6208,7 @@ export const FilesApiAxiosParamCreator = function (configuration?: Configuration baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -5889,12 +6217,12 @@ export const FilesApiAxiosParamCreator = function (configuration?: Configuration await setBearerAuthToObject(localVarHeaderParameter, configuration) - + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; localVarRequestOptions.data = serializeDataIfNeeded(templateUploadFinishedRequest, localVarRequestOptions, configuration) return { @@ -5917,7 +6245,7 @@ export const FilesApiAxiosParamCreator = function (configuration?: Configuration baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -5926,10 +6254,10 @@ export const FilesApiAxiosParamCreator = function (configuration?: Configuration await setBearerAuthToObject(localVarHeaderParameter, configuration) - + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; return { url: toPathString(localVarUrlObj), @@ -5943,7 +6271,7 @@ export const FilesApiAxiosParamCreator = function (configuration?: Configuration * FilesApi - functional programming interface * @export */ -export const FilesApiFp = function(configuration?: Configuration) { +export const FilesApiFp = function (configuration?: Configuration) { const localVarAxiosParamCreator = FilesApiAxiosParamCreator(configuration) return { /** @@ -6232,7 +6560,7 @@ export const LicensesApiAxiosParamCreator = function (configuration?: Configurat baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -6241,12 +6569,12 @@ export const LicensesApiAxiosParamCreator = function (configuration?: Configurat await setBearerAuthToObject(localVarHeaderParameter, configuration) - + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; localVarRequestOptions.data = serializeDataIfNeeded(activateCardLicensesRequest, localVarRequestOptions, configuration) return { @@ -6272,7 +6600,7 @@ export const LicensesApiAxiosParamCreator = function (configuration?: Configurat baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -6281,12 +6609,12 @@ export const LicensesApiAxiosParamCreator = function (configuration?: Configurat await setBearerAuthToObject(localVarHeaderParameter, configuration) - + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; localVarRequestOptions.data = serializeDataIfNeeded(cancelOrderRequest, localVarRequestOptions, configuration) return { @@ -6312,7 +6640,7 @@ export const LicensesApiAxiosParamCreator = function (configuration?: Configurat baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -6321,12 +6649,12 @@ export const LicensesApiAxiosParamCreator = function (configuration?: Configurat await setBearerAuthToObject(localVarHeaderParameter, configuration) - + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; localVarRequestOptions.data = serializeDataIfNeeded(createOrdersRequest, localVarRequestOptions, configuration) return { @@ -6349,7 +6677,7 @@ export const LicensesApiAxiosParamCreator = function (configuration?: Configurat baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -6358,10 +6686,10 @@ export const LicensesApiAxiosParamCreator = function (configuration?: Configurat await setBearerAuthToObject(localVarHeaderParameter, configuration) - + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; return { url: toPathString(localVarUrlObj), @@ -6386,7 +6714,7 @@ export const LicensesApiAxiosParamCreator = function (configuration?: Configurat baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -6395,14 +6723,54 @@ export const LicensesApiAxiosParamCreator = function (configuration?: Configurat await setBearerAuthToObject(localVarHeaderParameter, configuration) - + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; localVarRequestOptions.data = serializeDataIfNeeded(issueCardLicensesRequest, localVarRequestOptions, configuration) + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * 第五階層アカウントにトライアルライセンスを発行します。 + * @summary + * @param {IssueTrialLicenseRequest} issueTrialLicenseRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + issueTrialLicenses: async (issueTrialLicenseRequest: IssueTrialLicenseRequest, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'issueTrialLicenseRequest' is not null or undefined + assertParamExists('issueTrialLicenses', 'issueTrialLicenseRequest', issueTrialLicenseRequest) + const localVarPath = `/licenses/trial`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearer required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; + localVarRequestOptions.data = serializeDataIfNeeded(issueTrialLicenseRequest, localVarRequestOptions, configuration) + return { url: toPathString(localVarUrlObj), options: localVarRequestOptions, @@ -6415,7 +6783,7 @@ export const LicensesApiAxiosParamCreator = function (configuration?: Configurat * LicensesApi - functional programming interface * @export */ -export const LicensesApiFp = function(configuration?: Configuration) { +export const LicensesApiFp = function (configuration?: Configuration) { const localVarAxiosParamCreator = LicensesApiAxiosParamCreator(configuration) return { /** @@ -6482,6 +6850,19 @@ export const LicensesApiFp = function(configuration?: Configuration) { const operationBasePath = operationServerMap['LicensesApi.issueCardLicenses']?.[index]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, operationBasePath || basePath); }, + /** + * 第五階層アカウントにトライアルライセンスを発行します。 + * @summary + * @param {IssueTrialLicenseRequest} issueTrialLicenseRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async issueTrialLicenses(issueTrialLicenseRequest: IssueTrialLicenseRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.issueTrialLicenses(issueTrialLicenseRequest, options); + const index = configuration?.serverIndex ?? 0; + const operationBasePath = operationServerMap['LicensesApi.issueTrialLicenses']?.[index]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, operationBasePath || basePath); + }, } }; @@ -6541,6 +6922,16 @@ export const LicensesApiFactory = function (configuration?: Configuration, baseP issueCardLicenses(issueCardLicensesRequest: IssueCardLicensesRequest, options?: any): AxiosPromise { return localVarFp.issueCardLicenses(issueCardLicensesRequest, options).then((request) => request(axios, basePath)); }, + /** + * 第五階層アカウントにトライアルライセンスを発行します。 + * @summary + * @param {IssueTrialLicenseRequest} issueTrialLicenseRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + issueTrialLicenses(issueTrialLicenseRequest: IssueTrialLicenseRequest, options?: any): AxiosPromise { + return localVarFp.issueTrialLicenses(issueTrialLicenseRequest, options).then((request) => request(axios, basePath)); + }, }; }; @@ -6609,6 +7000,18 @@ export class LicensesApi extends BaseAPI { public issueCardLicenses(issueCardLicensesRequest: IssueCardLicensesRequest, options?: AxiosRequestConfig) { return LicensesApiFp(this.configuration).issueCardLicenses(issueCardLicensesRequest, options).then((request) => request(this.axios, this.basePath)); } + + /** + * 第五階層アカウントにトライアルライセンスを発行します。 + * @summary + * @param {IssueTrialLicenseRequest} issueTrialLicenseRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof LicensesApi + */ + public issueTrialLicenses(issueTrialLicenseRequest: IssueTrialLicenseRequest, options?: AxiosRequestConfig) { + return LicensesApiFp(this.configuration).issueTrialLicenses(issueTrialLicenseRequest, options).then((request) => request(this.axios, this.basePath)); + } } @@ -6637,7 +7040,7 @@ export const NotificationApiAxiosParamCreator = function (configuration?: Config baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -6646,12 +7049,12 @@ export const NotificationApiAxiosParamCreator = function (configuration?: Config await setBearerAuthToObject(localVarHeaderParameter, configuration) - + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; localVarRequestOptions.data = serializeDataIfNeeded(registerRequest, localVarRequestOptions, configuration) return { @@ -6666,7 +7069,7 @@ export const NotificationApiAxiosParamCreator = function (configuration?: Config * NotificationApi - functional programming interface * @export */ -export const NotificationApiFp = function(configuration?: Configuration) { +export const NotificationApiFp = function (configuration?: Configuration) { const localVarAxiosParamCreator = NotificationApiAxiosParamCreator(configuration) return { /** @@ -6752,7 +7155,7 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -6761,10 +7164,10 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration await setBearerAuthToObject(localVarHeaderParameter, configuration) - + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; return { url: toPathString(localVarUrlObj), @@ -6790,7 +7193,7 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -6799,10 +7202,10 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration await setBearerAuthToObject(localVarHeaderParameter, configuration) - + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; return { url: toPathString(localVarUrlObj), @@ -6831,7 +7234,7 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -6840,12 +7243,12 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration await setBearerAuthToObject(localVarHeaderParameter, configuration) - + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; localVarRequestOptions.data = serializeDataIfNeeded(postCheckoutPermissionRequest, localVarRequestOptions, configuration) return { @@ -6872,7 +7275,7 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -6881,10 +7284,10 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration await setBearerAuthToObject(localVarHeaderParameter, configuration) - + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; return { url: toPathString(localVarUrlObj), @@ -6910,7 +7313,7 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -6919,10 +7322,10 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration await setBearerAuthToObject(localVarHeaderParameter, configuration) - + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; return { url: toPathString(localVarUrlObj), @@ -6948,7 +7351,7 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -6957,10 +7360,10 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration await setBearerAuthToObject(localVarHeaderParameter, configuration) - + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; return { url: toPathString(localVarUrlObj), @@ -6985,7 +7388,7 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -6998,10 +7401,10 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration } - + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; return { url: toPathString(localVarUrlObj), @@ -7016,10 +7419,12 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration * @param {string} [status] 取得対象とするタスクのステータス。カンマ(,)区切りで複数指定可能。設定されない場合はすべてのステータスを取得対象とする。許容するステータスの値は次の通り: Uploaded / Pending / InProgress / Finished / Backup * @param {string} [direction] ASC/DESC * @param {string} [paramName] JOB_NUMBER/STATUS/ENCRYPTION/AUTHOR_ID/WORK_TYPE/FILE_NAME/FILE_LENGTH/FILE_SIZE/RECORDING_STARTED_DATE/RECORDING_FINISHED_DATE/UPLOAD_DATE/TRANSCRIPTION_STARTED_DATE/TRANSCRIPTION_FINISHED_DATE + * @param {string} [authorId] タスクの検索キーワード:AuthorID + * @param {string} [fileName] タスクの検索キーワード:fileName * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getTasks: async (limit?: number, offset?: number, status?: string, direction?: string, paramName?: string, options: AxiosRequestConfig = {}): Promise => { + getTasks: async (limit?: number, offset?: number, status?: string, direction?: string, paramName?: string, authorId?: string, fileName?: string, options: AxiosRequestConfig = {}): Promise => { const localVarPath = `/tasks`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); @@ -7028,7 +7433,7 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -7056,11 +7461,19 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration localVarQueryParameter['paramName'] = paramName; } + if (authorId !== undefined) { + localVarQueryParameter['authorId'] = authorId; + } + + if (fileName !== undefined) { + localVarQueryParameter['fileName'] = fileName; + } + + - setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; return { url: toPathString(localVarUrlObj), @@ -7086,7 +7499,7 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -7095,10 +7508,10 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration await setBearerAuthToObject(localVarHeaderParameter, configuration) - + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; return { url: toPathString(localVarUrlObj), @@ -7124,7 +7537,7 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -7133,10 +7546,10 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration await setBearerAuthToObject(localVarHeaderParameter, configuration) - + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; return { url: toPathString(localVarUrlObj), @@ -7150,7 +7563,7 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration * TasksApi - functional programming interface * @export */ -export const TasksApiFp = function(configuration?: Configuration) { +export const TasksApiFp = function (configuration?: Configuration) { const localVarAxiosParamCreator = TasksApiAxiosParamCreator(configuration) return { /** @@ -7253,11 +7666,13 @@ export const TasksApiFp = function(configuration?: Configuration) { * @param {string} [status] 取得対象とするタスクのステータス。カンマ(,)区切りで複数指定可能。設定されない場合はすべてのステータスを取得対象とする。許容するステータスの値は次の通り: Uploaded / Pending / InProgress / Finished / Backup * @param {string} [direction] ASC/DESC * @param {string} [paramName] JOB_NUMBER/STATUS/ENCRYPTION/AUTHOR_ID/WORK_TYPE/FILE_NAME/FILE_LENGTH/FILE_SIZE/RECORDING_STARTED_DATE/RECORDING_FINISHED_DATE/UPLOAD_DATE/TRANSCRIPTION_STARTED_DATE/TRANSCRIPTION_FINISHED_DATE + * @param {string} [authorId] タスクの検索キーワード:AuthorID + * @param {string} [fileName] タスクの検索キーワード:fileName * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getTasks(limit?: number, offset?: number, status?: string, direction?: string, paramName?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getTasks(limit, offset, status, direction, paramName, options); + async getTasks(limit?: number, offset?: number, status?: string, direction?: string, paramName?: string, authorId?: string, fileName?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getTasks(limit, offset, status, direction, paramName, authorId, fileName, options); const index = configuration?.serverIndex ?? 0; const operationBasePath = operationServerMap['TasksApi.getTasks']?.[index]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, operationBasePath || basePath); @@ -7377,11 +7792,13 @@ export const TasksApiFactory = function (configuration?: Configuration, basePath * @param {string} [status] 取得対象とするタスクのステータス。カンマ(,)区切りで複数指定可能。設定されない場合はすべてのステータスを取得対象とする。許容するステータスの値は次の通り: Uploaded / Pending / InProgress / Finished / Backup * @param {string} [direction] ASC/DESC * @param {string} [paramName] JOB_NUMBER/STATUS/ENCRYPTION/AUTHOR_ID/WORK_TYPE/FILE_NAME/FILE_LENGTH/FILE_SIZE/RECORDING_STARTED_DATE/RECORDING_FINISHED_DATE/UPLOAD_DATE/TRANSCRIPTION_STARTED_DATE/TRANSCRIPTION_FINISHED_DATE + * @param {string} [authorId] タスクの検索キーワード:AuthorID + * @param {string} [fileName] タスクの検索キーワード:fileName * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getTasks(limit?: number, offset?: number, status?: string, direction?: string, paramName?: string, options?: any): AxiosPromise { - return localVarFp.getTasks(limit, offset, status, direction, paramName, options).then((request) => request(axios, basePath)); + getTasks(limit?: number, offset?: number, status?: string, direction?: string, paramName?: string, authorId?: string, fileName?: string, options?: any): AxiosPromise { + return localVarFp.getTasks(limit, offset, status, direction, paramName, authorId, fileName, options).then((request) => request(axios, basePath)); }, /** * 完了した文字起こしタスクを再開します(ステータスをPendingにします) @@ -7506,12 +7923,14 @@ export class TasksApi extends BaseAPI { * @param {string} [status] 取得対象とするタスクのステータス。カンマ(,)区切りで複数指定可能。設定されない場合はすべてのステータスを取得対象とする。許容するステータスの値は次の通り: Uploaded / Pending / InProgress / Finished / Backup * @param {string} [direction] ASC/DESC * @param {string} [paramName] JOB_NUMBER/STATUS/ENCRYPTION/AUTHOR_ID/WORK_TYPE/FILE_NAME/FILE_LENGTH/FILE_SIZE/RECORDING_STARTED_DATE/RECORDING_FINISHED_DATE/UPLOAD_DATE/TRANSCRIPTION_STARTED_DATE/TRANSCRIPTION_FINISHED_DATE + * @param {string} [authorId] タスクの検索キーワード:AuthorID + * @param {string} [fileName] タスクの検索キーワード:fileName * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof TasksApi */ - public getTasks(limit?: number, offset?: number, status?: string, direction?: string, paramName?: string, options?: AxiosRequestConfig) { - return TasksApiFp(this.configuration).getTasks(limit, offset, status, direction, paramName, options).then((request) => request(this.axios, this.basePath)); + public getTasks(limit?: number, offset?: number, status?: string, direction?: string, paramName?: string, authorId?: string, fileName?: string, options?: AxiosRequestConfig) { + return TasksApiFp(this.configuration).getTasks(limit, offset, status, direction, paramName, authorId, fileName, options).then((request) => request(this.axios, this.basePath)); } /** @@ -7566,7 +7985,7 @@ export const TemplatesApiAxiosParamCreator = function (configuration?: Configura baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -7575,10 +7994,10 @@ export const TemplatesApiAxiosParamCreator = function (configuration?: Configura await setBearerAuthToObject(localVarHeaderParameter, configuration) - + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; return { url: toPathString(localVarUrlObj), @@ -7600,7 +8019,7 @@ export const TemplatesApiAxiosParamCreator = function (configuration?: Configura baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -7609,10 +8028,10 @@ export const TemplatesApiAxiosParamCreator = function (configuration?: Configura await setBearerAuthToObject(localVarHeaderParameter, configuration) - + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; return { url: toPathString(localVarUrlObj), @@ -7626,7 +8045,7 @@ export const TemplatesApiAxiosParamCreator = function (configuration?: Configura * TemplatesApi - functional programming interface * @export */ -export const TemplatesApiFp = function(configuration?: Configuration) { +export const TemplatesApiFp = function (configuration?: Configuration) { const localVarAxiosParamCreator = TemplatesApiAxiosParamCreator(configuration) return { /** @@ -7740,15 +8159,15 @@ export const TermsApiAxiosParamCreator = function (configuration?: Configuration baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; - + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; return { url: toPathString(localVarUrlObj), @@ -7762,7 +8181,7 @@ export const TermsApiAxiosParamCreator = function (configuration?: Configuration * TermsApi - functional programming interface * @export */ -export const TermsApiFp = function(configuration?: Configuration) { +export const TermsApiFp = function (configuration?: Configuration) { const localVarAxiosParamCreator = TermsApiAxiosParamCreator(configuration) return { /** @@ -7844,7 +8263,7 @@ export const UsersApiAxiosParamCreator = function (configuration?: Configuration baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -7853,12 +8272,12 @@ export const UsersApiAxiosParamCreator = function (configuration?: Configuration await setBearerAuthToObject(localVarHeaderParameter, configuration) - + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; localVarRequestOptions.data = serializeDataIfNeeded(allocateLicenseRequest, localVarRequestOptions, configuration) return { @@ -7884,17 +8303,17 @@ export const UsersApiAxiosParamCreator = function (configuration?: Configuration baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; - + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; localVarRequestOptions.data = serializeDataIfNeeded(confirmRequest, localVarRequestOptions, configuration) return { @@ -7920,17 +8339,17 @@ export const UsersApiAxiosParamCreator = function (configuration?: Configuration baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; - + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; localVarRequestOptions.data = serializeDataIfNeeded(confirmRequest, localVarRequestOptions, configuration) return { @@ -7938,6 +8357,46 @@ export const UsersApiAxiosParamCreator = function (configuration?: Configuration options: localVarRequestOptions, }; }, + /** + * ユーザーを強制的にメール認証済にする + * @summary + * @param {ConfirmForceRequest} confirmForceRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + confirmUserForce: async (confirmForceRequest: ConfirmForceRequest, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'confirmForceRequest' is not null or undefined + assertParamExists('confirmUserForce', 'confirmForceRequest', confirmForceRequest) + const localVarPath = `/users/confirm/force`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearer required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; + localVarRequestOptions.data = serializeDataIfNeeded(confirmForceRequest, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, /** * ライセンス割り当てを解除します * @summary @@ -7956,7 +8415,7 @@ export const UsersApiAxiosParamCreator = function (configuration?: Configuration baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -7965,12 +8424,12 @@ export const UsersApiAxiosParamCreator = function (configuration?: Configuration await setBearerAuthToObject(localVarHeaderParameter, configuration) - + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; localVarRequestOptions.data = serializeDataIfNeeded(deallocateLicenseRequest, localVarRequestOptions, configuration) return { @@ -7996,7 +8455,7 @@ export const UsersApiAxiosParamCreator = function (configuration?: Configuration baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -8005,12 +8464,12 @@ export const UsersApiAxiosParamCreator = function (configuration?: Configuration await setBearerAuthToObject(localVarHeaderParameter, configuration) - + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; localVarRequestOptions.data = serializeDataIfNeeded(postDeleteUserRequest, localVarRequestOptions, configuration) return { @@ -8033,7 +8492,7 @@ export const UsersApiAxiosParamCreator = function (configuration?: Configuration baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -8042,10 +8501,10 @@ export const UsersApiAxiosParamCreator = function (configuration?: Configuration await setBearerAuthToObject(localVarHeaderParameter, configuration) - + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; return { url: toPathString(localVarUrlObj), @@ -8067,7 +8526,7 @@ export const UsersApiAxiosParamCreator = function (configuration?: Configuration baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -8076,10 +8535,10 @@ export const UsersApiAxiosParamCreator = function (configuration?: Configuration await setBearerAuthToObject(localVarHeaderParameter, configuration) - + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; return { url: toPathString(localVarUrlObj), @@ -8101,7 +8560,7 @@ export const UsersApiAxiosParamCreator = function (configuration?: Configuration baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -8110,10 +8569,44 @@ export const UsersApiAxiosParamCreator = function (configuration?: Configuration await setBearerAuthToObject(localVarHeaderParameter, configuration) - + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * ログインしているユーザーのタスクの検索条件を取得します + * @summary + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getTaskFilter: async (options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/users/task-filters`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options }; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearer required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; return { url: toPathString(localVarUrlObj), @@ -8123,10 +8616,12 @@ export const UsersApiAxiosParamCreator = function (configuration?: Configuration /** * * @summary + * @param {string} [userName] + * @param {string} [email] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getUsers: async (options: AxiosRequestConfig = {}): Promise => { + getUsers: async (userName?: string, email?: string, options: AxiosRequestConfig = {}): Promise => { const localVarPath = `/users`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); @@ -8135,7 +8630,7 @@ export const UsersApiAxiosParamCreator = function (configuration?: Configuration baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -8143,11 +8638,19 @@ export const UsersApiAxiosParamCreator = function (configuration?: Configuration // http bearer authentication required await setBearerAuthToObject(localVarHeaderParameter, configuration) + if (userName !== undefined) { + localVarQueryParameter['userName'] = userName; + } + + if (email !== undefined) { + localVarQueryParameter['email'] = email; + } + + - setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; return { url: toPathString(localVarUrlObj), @@ -8172,7 +8675,7 @@ export const UsersApiAxiosParamCreator = function (configuration?: Configuration baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -8181,12 +8684,12 @@ export const UsersApiAxiosParamCreator = function (configuration?: Configuration await setBearerAuthToObject(localVarHeaderParameter, configuration) - + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; localVarRequestOptions.data = serializeDataIfNeeded(postMultipleImportsRequest, localVarRequestOptions, configuration) return { @@ -8212,7 +8715,7 @@ export const UsersApiAxiosParamCreator = function (configuration?: Configuration baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -8221,12 +8724,12 @@ export const UsersApiAxiosParamCreator = function (configuration?: Configuration await setBearerAuthToObject(localVarHeaderParameter, configuration) - + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; localVarRequestOptions.data = serializeDataIfNeeded(postMultipleImportsCompleteRequest, localVarRequestOptions, configuration) return { @@ -8252,7 +8755,7 @@ export const UsersApiAxiosParamCreator = function (configuration?: Configuration baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -8261,12 +8764,12 @@ export const UsersApiAxiosParamCreator = function (configuration?: Configuration await setBearerAuthToObject(localVarHeaderParameter, configuration) - + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; localVarRequestOptions.data = serializeDataIfNeeded(signupRequest, localVarRequestOptions, configuration) return { @@ -8292,17 +8795,17 @@ export const UsersApiAxiosParamCreator = function (configuration?: Configuration baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; - + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; localVarRequestOptions.data = serializeDataIfNeeded(updateAcceptedVersionRequest, localVarRequestOptions, configuration) return { @@ -8328,7 +8831,7 @@ export const UsersApiAxiosParamCreator = function (configuration?: Configuration baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -8337,12 +8840,12 @@ export const UsersApiAxiosParamCreator = function (configuration?: Configuration await setBearerAuthToObject(localVarHeaderParameter, configuration) - + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; localVarRequestOptions.data = serializeDataIfNeeded(postSortCriteriaRequest, localVarRequestOptions, configuration) return { @@ -8350,6 +8853,46 @@ export const UsersApiAxiosParamCreator = function (configuration?: Configuration options: localVarRequestOptions, }; }, + /** + * ログインしているユーザーの検索条件を更新します + * @summary + * @param {PostTaskFiltersRequest} postTaskFiltersRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + updateTaskFilter: async (postTaskFiltersRequest: PostTaskFiltersRequest, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'postTaskFiltersRequest' is not null or undefined + assertParamExists('updateTaskFilter', 'postTaskFiltersRequest', postTaskFiltersRequest) + const localVarPath = `/users/task-filters`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearer required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; + localVarRequestOptions.data = serializeDataIfNeeded(postTaskFiltersRequest, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, /** * ユーザーの情報を更新します * @summary @@ -8368,7 +8911,7 @@ export const UsersApiAxiosParamCreator = function (configuration?: Configuration baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -8377,12 +8920,12 @@ export const UsersApiAxiosParamCreator = function (configuration?: Configuration await setBearerAuthToObject(localVarHeaderParameter, configuration) - + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; localVarRequestOptions.data = serializeDataIfNeeded(postUpdateUserRequest, localVarRequestOptions, configuration) return { @@ -8397,7 +8940,7 @@ export const UsersApiAxiosParamCreator = function (configuration?: Configuration * UsersApi - functional programming interface * @export */ -export const UsersApiFp = function(configuration?: Configuration) { +export const UsersApiFp = function (configuration?: Configuration) { const localVarAxiosParamCreator = UsersApiAxiosParamCreator(configuration) return { /** @@ -8439,6 +8982,19 @@ export const UsersApiFp = function(configuration?: Configuration) { const operationBasePath = operationServerMap['UsersApi.confirmUserAndInitPassword']?.[index]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, operationBasePath || basePath); }, + /** + * ユーザーを強制的にメール認証済にする + * @summary + * @param {ConfirmForceRequest} confirmForceRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async confirmUserForce(confirmForceRequest: ConfirmForceRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.confirmUserForce(confirmForceRequest, options); + const index = configuration?.serverIndex ?? 0; + const operationBasePath = operationServerMap['UsersApi.confirmUserForce']?.[index]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, operationBasePath || basePath); + }, /** * ライセンス割り当てを解除します * @summary @@ -8502,13 +9058,27 @@ export const UsersApiFp = function(configuration?: Configuration) { return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, operationBasePath || basePath); }, /** - * + * ログインしているユーザーのタスクの検索条件を取得します * @summary * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getUsers(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getUsers(options); + async getTaskFilter(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getTaskFilter(options); + const index = configuration?.serverIndex ?? 0; + const operationBasePath = operationServerMap['UsersApi.getTaskFilter']?.[index]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, operationBasePath || basePath); + }, + /** + * + * @summary + * @param {string} [userName] + * @param {string} [email] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getUsers(userName?: string, email?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getUsers(userName, email, options); const index = configuration?.serverIndex ?? 0; const operationBasePath = operationServerMap['UsersApi.getUsers']?.[index]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, operationBasePath || basePath); @@ -8578,6 +9148,19 @@ export const UsersApiFp = function(configuration?: Configuration) { const operationBasePath = operationServerMap['UsersApi.updateSortCriteria']?.[index]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, operationBasePath || basePath); }, + /** + * ログインしているユーザーの検索条件を更新します + * @summary + * @param {PostTaskFiltersRequest} postTaskFiltersRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async updateTaskFilter(postTaskFiltersRequest: PostTaskFiltersRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.updateTaskFilter(postTaskFiltersRequest, options); + const index = configuration?.serverIndex ?? 0; + const operationBasePath = operationServerMap['UsersApi.updateTaskFilter']?.[index]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, operationBasePath || basePath); + }, /** * ユーザーの情報を更新します * @summary @@ -8631,6 +9214,16 @@ export const UsersApiFactory = function (configuration?: Configuration, basePath confirmUserAndInitPassword(confirmRequest: ConfirmRequest, options?: any): AxiosPromise { return localVarFp.confirmUserAndInitPassword(confirmRequest, options).then((request) => request(axios, basePath)); }, + /** + * ユーザーを強制的にメール認証済にする + * @summary + * @param {ConfirmForceRequest} confirmForceRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + confirmUserForce(confirmForceRequest: ConfirmForceRequest, options?: any): AxiosPromise { + return localVarFp.confirmUserForce(confirmForceRequest, options).then((request) => request(axios, basePath)); + }, /** * ライセンス割り当てを解除します * @summary @@ -8679,13 +9272,24 @@ export const UsersApiFactory = function (configuration?: Configuration, basePath return localVarFp.getSortCriteria(options).then((request) => request(axios, basePath)); }, /** - * + * ログインしているユーザーのタスクの検索条件を取得します * @summary * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getUsers(options?: any): AxiosPromise { - return localVarFp.getUsers(options).then((request) => request(axios, basePath)); + getTaskFilter(options?: any): AxiosPromise { + return localVarFp.getTaskFilter(options).then((request) => request(axios, basePath)); + }, + /** + * + * @summary + * @param {string} [userName] + * @param {string} [email] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getUsers(userName?: string, email?: string, options?: any): AxiosPromise { + return localVarFp.getUsers(userName, email, options).then((request) => request(axios, basePath)); }, /** * ユーザーを一括登録します @@ -8737,6 +9341,16 @@ export const UsersApiFactory = function (configuration?: Configuration, basePath updateSortCriteria(postSortCriteriaRequest: PostSortCriteriaRequest, options?: any): AxiosPromise { return localVarFp.updateSortCriteria(postSortCriteriaRequest, options).then((request) => request(axios, basePath)); }, + /** + * ログインしているユーザーの検索条件を更新します + * @summary + * @param {PostTaskFiltersRequest} postTaskFiltersRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + updateTaskFilter(postTaskFiltersRequest: PostTaskFiltersRequest, options?: any): AxiosPromise { + return localVarFp.updateTaskFilter(postTaskFiltersRequest, options).then((request) => request(axios, basePath)); + }, /** * ユーザーの情報を更新します * @summary @@ -8793,6 +9407,18 @@ export class UsersApi extends BaseAPI { return UsersApiFp(this.configuration).confirmUserAndInitPassword(confirmRequest, options).then((request) => request(this.axios, this.basePath)); } + /** + * ユーザーを強制的にメール認証済にする + * @summary + * @param {ConfirmForceRequest} confirmForceRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof UsersApi + */ + public confirmUserForce(confirmForceRequest: ConfirmForceRequest, options?: AxiosRequestConfig) { + return UsersApiFp(this.configuration).confirmUserForce(confirmForceRequest, options).then((request) => request(this.axios, this.basePath)); + } + /** * ライセンス割り当てを解除します * @summary @@ -8851,14 +9477,27 @@ export class UsersApi extends BaseAPI { } /** - * + * ログインしているユーザーのタスクの検索条件を取得します * @summary * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof UsersApi */ - public getUsers(options?: AxiosRequestConfig) { - return UsersApiFp(this.configuration).getUsers(options).then((request) => request(this.axios, this.basePath)); + public getTaskFilter(options?: AxiosRequestConfig) { + return UsersApiFp(this.configuration).getTaskFilter(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @summary + * @param {string} [userName] + * @param {string} [email] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof UsersApi + */ + public getUsers(userName?: string, email?: string, options?: AxiosRequestConfig) { + return UsersApiFp(this.configuration).getUsers(userName, email, options).then((request) => request(this.axios, this.basePath)); } /** @@ -8921,6 +9560,18 @@ export class UsersApi extends BaseAPI { return UsersApiFp(this.configuration).updateSortCriteria(postSortCriteriaRequest, options).then((request) => request(this.axios, this.basePath)); } + /** + * ログインしているユーザーの検索条件を更新します + * @summary + * @param {PostTaskFiltersRequest} postTaskFiltersRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof UsersApi + */ + public updateTaskFilter(postTaskFiltersRequest: PostTaskFiltersRequest, options?: AxiosRequestConfig) { + return UsersApiFp(this.configuration).updateTaskFilter(postTaskFiltersRequest, options).then((request) => request(this.axios, this.basePath)); + } + /** * ユーザーの情報を更新します * @summary @@ -8960,7 +9611,7 @@ export const WorkflowsApiAxiosParamCreator = function (configuration?: Configura baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -8969,12 +9620,12 @@ export const WorkflowsApiAxiosParamCreator = function (configuration?: Configura await setBearerAuthToObject(localVarHeaderParameter, configuration) - + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; localVarRequestOptions.data = serializeDataIfNeeded(createWorkflowsRequest, localVarRequestOptions, configuration) return { @@ -9001,7 +9652,7 @@ export const WorkflowsApiAxiosParamCreator = function (configuration?: Configura baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -9010,10 +9661,10 @@ export const WorkflowsApiAxiosParamCreator = function (configuration?: Configura await setBearerAuthToObject(localVarHeaderParameter, configuration) - + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; return { url: toPathString(localVarUrlObj), @@ -9035,7 +9686,7 @@ export const WorkflowsApiAxiosParamCreator = function (configuration?: Configura baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -9044,10 +9695,10 @@ export const WorkflowsApiAxiosParamCreator = function (configuration?: Configura await setBearerAuthToObject(localVarHeaderParameter, configuration) - + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; return { url: toPathString(localVarUrlObj), @@ -9076,7 +9727,7 @@ export const WorkflowsApiAxiosParamCreator = function (configuration?: Configura baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -9085,12 +9736,12 @@ export const WorkflowsApiAxiosParamCreator = function (configuration?: Configura await setBearerAuthToObject(localVarHeaderParameter, configuration) - + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; localVarRequestOptions.data = serializeDataIfNeeded(updateWorkflowRequest, localVarRequestOptions, configuration) return { @@ -9105,7 +9756,7 @@ export const WorkflowsApiAxiosParamCreator = function (configuration?: Configura * WorkflowsApi - functional programming interface * @export */ -export const WorkflowsApiFp = function(configuration?: Configuration) { +export const WorkflowsApiFp = function (configuration?: Configuration) { const localVarAxiosParamCreator = WorkflowsApiAxiosParamCreator(configuration) return { /** diff --git a/dictation_client/src/app/store.ts b/dictation_client/src/app/store.ts index 2b56103..7fa19cb 100644 --- a/dictation_client/src/app/store.ts +++ b/dictation_client/src/app/store.ts @@ -10,6 +10,8 @@ import licenseCardIssue from "features/license/licenseCardIssue/licenseCardIssue import licenseCardActivate from "features/license/licenseCardActivate/licenseCardActivateSlice"; import licenseSummary from "features/license/licenseSummary/licenseSummarySlice"; import partnerLicense from "features/license/partnerLicense/partnerLicenseSlice"; +import licenseTrialIssue from "features/license/licenseTrialIssue/licenseTrialIssueSlice"; +import searchPartners from "features/license/searchPartner/searchPartnerSlice"; import dictation from "features/dictation/dictationSlice"; import partner from "features/partner/partnerSlice"; import licenseOrderHistory from "features/license/licenseOrderHistory/licenseOrderHistorySlice"; @@ -35,6 +37,8 @@ export const store = configureStore({ licenseSummary, licenseOrderHistory, partnerLicense, + licenseTrialIssue, + searchPartners, dictation, partner, typistGroup, diff --git a/dictation_client/src/assets/images/search.svg b/dictation_client/src/assets/images/search.svg new file mode 100644 index 0000000..7552e46 --- /dev/null +++ b/dictation_client/src/assets/images/search.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/dictation_client/src/components/auth/constants.ts b/dictation_client/src/components/auth/constants.ts index dd8ec52..9828086 100644 --- a/dictation_client/src/components/auth/constants.ts +++ b/dictation_client/src/components/auth/constants.ts @@ -47,6 +47,7 @@ export const KEYS_TO_PRESERVE = [ "accessToken", "refreshToken", "displayInfo", + "filterCriteria", "sortCriteria", ]; diff --git a/dictation_client/src/features/account/operations.ts b/dictation_client/src/features/account/operations.ts index c7ccaad..1e1382e 100644 --- a/dictation_client/src/features/account/operations.ts +++ b/dictation_client/src/features/account/operations.ts @@ -39,7 +39,7 @@ export const getAccountRelationsAsync = createAsyncThunk< headers: { authorization: `Bearer ${accessToken}` }, }); const dealers = await accountsApi.getDealers(); - const users = await usersApi.getUsers({ + const users = await usersApi.getUsers(undefined, undefined, { headers: { authorization: `Bearer ${accessToken}` }, }); return { diff --git a/dictation_client/src/features/dictation/dictationSlice.ts b/dictation_client/src/features/dictation/dictationSlice.ts index e8361af..a1a07b5 100644 --- a/dictation_client/src/features/dictation/dictationSlice.ts +++ b/dictation_client/src/features/dictation/dictationSlice.ts @@ -43,6 +43,8 @@ const initialState: DictationState = { direction: DIRECTION.ASC, paramName: SORTABLE_COLUMN.JobNumber, selectedTask: undefined, + authorId: "", + fileName: "", assignee: { selected: [], pool: [], @@ -78,6 +80,14 @@ export const dictationSlice = createSlice({ const { paramName } = action.payload; state.apps.paramName = paramName; }, + changeAuthorId: (state, action: PayloadAction<{ authorId: string }>) => { + const { authorId } = action.payload; + state.apps.authorId = authorId; + }, + changeFileName: (state, action: PayloadAction<{ fileName: string }>) => { + const { fileName } = action.payload; + state.apps.fileName = fileName; + }, changeSelectedTask: (state, action: PayloadAction<{ task: Task }>) => { const { task } = action.payload; state.apps.selectedTask = task; @@ -246,6 +256,8 @@ export const { changeDisplayInfo, changeDirection, changeParamName, + changeAuthorId, + changeFileName, changeSelectedTask, changeAssignee, changeBackupTaskChecked, diff --git a/dictation_client/src/features/dictation/operations.ts b/dictation_client/src/features/dictation/operations.ts index e9c0e63..3b321cd 100644 --- a/dictation_client/src/features/dictation/operations.ts +++ b/dictation_client/src/features/dictation/operations.ts @@ -35,6 +35,8 @@ export const listTasksAsync = createAsyncThunk< filter?: string; direction: DirectionType; paramName: SortableColumnType; + authorId?: string; + fileName?: string; }, { // rejectした時の返却値の型 @@ -43,7 +45,8 @@ export const listTasksAsync = createAsyncThunk< }; } >("dictations/listTasksAsync", async (args, thunkApi) => { - const { limit, offset, filter, direction, paramName } = args; + const { limit, offset, filter, direction, paramName, authorId, fileName } = + args; // apiのConfigurationを取得する const { getState } = thunkApi; @@ -60,6 +63,8 @@ export const listTasksAsync = createAsyncThunk< filter, direction, paramName, + authorId, + fileName, { headers: { authorization: `Bearer ${accessToken}` }, } @@ -80,6 +85,136 @@ export const listTasksAsync = createAsyncThunk< } }); +export const getTaskFiltersAsync = createAsyncThunk< + { + authorId?: string; + fileName?: string; + }, + void, + { + // rejectした時の返却値の型 + rejectValue: { + error: ErrorObject; + }; + } +>("dictations/getTaskFiltersAsync", async (args, thunkApi) => { + // apiのConfigurationを取得する + const { getState } = thunkApi; + const state = getState() as RootState; + const { configuration } = state.auth; + const accessToken = getAccessToken(state.auth); + const config = new Configuration(configuration); + const usersApi = new UsersApi(config); + + try { + const usertaskfilter = await usersApi.getTaskFilter({ + headers: { authorization: `Bearer ${accessToken}` }, + }); + const { authorId, fileName } = usertaskfilter.data; + return { authorId, fileName }; + } catch (e) { + // e ⇒ errorObjectに変換" + const error = createErrorObject(e); + thunkApi.dispatch( + openSnackbar({ + level: "error", + message: getTranslationID("common.message.internalServerError"), + }) + ); + return thunkApi.rejectWithValue({ error }); + } +}); + +export const updateTaskFiltersAsync = createAsyncThunk< + { + /** empty */ + }, + { + filterConditionAuthorId: string; + filterConditionFileName: string; + }, + { + // rejectした時の返却値の型 + rejectValue: { + error: ErrorObject; + }; + } +>("dictations/updateTaskFiltersAsync", async (args, thunkApi) => { + const { filterConditionAuthorId, filterConditionFileName } = args; + + // apiのConfigurationを取得する + const { getState } = thunkApi; + const state = getState() as RootState; + const { configuration } = state.auth; + const accessToken = getAccessToken(state.auth); + const config = new Configuration(configuration); + const usersApi = new UsersApi(config); + try { + return await usersApi.updateTaskFilter( + { filterConditionAuthorId, filterConditionFileName }, + { + headers: { authorization: `Bearer ${accessToken}` }, + } + ); + } catch (e) { + // e ⇒ errorObjectに変換" + const error = createErrorObject(e); + thunkApi.dispatch( + openSnackbar({ + level: "error", + message: getTranslationID("common.message.internalServerError"), + }) + ); + return thunkApi.rejectWithValue({ error }); + } +}); + +export const updateSortColumnAsync = createAsyncThunk< + { + /** empty */ + }, + { + direction: DirectionType; + paramName: SortableColumnType; + }, + { + // rejectした時の返却値の型 + rejectValue: { + error: ErrorObject; + }; + } +>("dictations/updateSortColumnAsync", async (args, thunkApi) => { + const { direction, paramName } = args; + + // apiのConfigurationを取得する + const { getState } = thunkApi; + const state = getState() as RootState; + const { configuration } = state.auth; + const accessToken = getAccessToken(state.auth); + const config = new Configuration(configuration); + + const usersApi = new UsersApi(config); + + try { + return await usersApi.updateSortCriteria( + { direction, paramName }, + { + headers: { authorization: `Bearer ${accessToken}` }, + } + ); + } catch (e) { + // e ⇒ errorObjectに変換" + const error = createErrorObject(e); + thunkApi.dispatch( + openSnackbar({ + level: "error", + message: getTranslationID("common.message.internalServerError"), + }) + ); + return thunkApi.rejectWithValue({ error }); + } +}); + export const getSortColumnAsync = createAsyncThunk< { direction: DirectionType; @@ -280,6 +415,8 @@ export const playbackAsync = createAsyncThunk< direction: DirectionType; paramName: SortableColumnType; audioFileId: number; + filterConditionAuthorId: string; + filterConditionFileName: string; }, { // rejectした時の返却値の型 @@ -288,7 +425,13 @@ export const playbackAsync = createAsyncThunk< }; } >("dictations/playbackAsync", async (args, thunkApi) => { - const { audioFileId, direction, paramName } = args; + const { + audioFileId, + direction, + paramName, + filterConditionAuthorId, + filterConditionFileName, + } = args; // apiのConfigurationを取得する const { getState } = thunkApi; @@ -305,6 +448,12 @@ export const playbackAsync = createAsyncThunk< headers: { authorization: `Bearer ${accessToken}` }, } ); + await usersApi.updateTaskFilter( + { filterConditionAuthorId, filterConditionFileName }, + { + headers: { authorization: `Bearer ${accessToken}` }, + } + ); await tasksApi.checkout(audioFileId, { headers: { authorization: `Bearer ${accessToken}` }, }); @@ -387,6 +536,8 @@ export const cancelAsync = createAsyncThunk< paramName: SortableColumnType; audioFileId: number; isTypist: boolean; + filterConditionAuthorId: string; + filterConditionFileName: string; }, { // rejectした時の返却値の型 @@ -395,7 +546,14 @@ export const cancelAsync = createAsyncThunk< }; } >("dictations/cancelAsync", async (args, thunkApi) => { - const { audioFileId, direction, paramName, isTypist } = args; + const { + audioFileId, + direction, + paramName, + isTypist, + filterConditionAuthorId, + filterConditionFileName, + } = args; // apiのConfigurationを取得する const { getState } = thunkApi; @@ -406,15 +564,25 @@ export const cancelAsync = createAsyncThunk< const tasksApi = new TasksApi(config); const usersApi = new UsersApi(config); try { - // ユーザーがタイピストである場合に、ソート条件を保存する + // ユーザーがタイピストである場合に、ソート条件と検索条件を保存する if (isTypist) { await usersApi.updateSortCriteria( - { direction, paramName }, + { + direction, + paramName, + }, + { + headers: { authorization: `Bearer ${accessToken}` }, + } + ); + await usersApi.updateTaskFilter( + { filterConditionAuthorId, filterConditionFileName }, { headers: { authorization: `Bearer ${accessToken}` }, } ); } + await tasksApi.cancel(audioFileId, { headers: { authorization: `Bearer ${accessToken}` }, }); @@ -459,6 +627,8 @@ export const reopenAsync = createAsyncThunk< paramName: SortableColumnType; audioFileId: number; isTypist: boolean; + filterConditionAuthorId: string; + filterConditionFileName: string; }, { // rejectした時の返却値の型 @@ -467,7 +637,14 @@ export const reopenAsync = createAsyncThunk< }; } >("dictations/reopenAsync", async (args, thunkApi) => { - const { audioFileId, direction, paramName, isTypist } = args; + const { + audioFileId, + direction, + paramName, + isTypist, + filterConditionAuthorId, + filterConditionFileName, + } = args; // apiのConfigurationを取得する const { getState } = thunkApi; @@ -478,7 +655,7 @@ export const reopenAsync = createAsyncThunk< const tasksApi = new TasksApi(config); const usersApi = new UsersApi(config); try { - // ユーザーがタイピストである場合に、ソート条件を保存する + // ユーザーがタイピストである場合に、ソート条件と検索条件を保存する if (isTypist) { await usersApi.updateSortCriteria( { direction, paramName }, @@ -486,6 +663,12 @@ export const reopenAsync = createAsyncThunk< headers: { authorization: `Bearer ${accessToken}` }, } ); + await usersApi.updateTaskFilter( + { filterConditionAuthorId, filterConditionFileName }, + { + headers: { authorization: `Bearer ${accessToken}` }, + } + ); } await tasksApi.reopen(audioFileId, { headers: { authorization: `Bearer ${accessToken}` }, @@ -552,6 +735,8 @@ export const listBackupPopupTasksAsync = createAsyncThunk< BACKUP_POPUP_LIST_STATUS.join(","), // ステータスはFinished,Backupのみ DIRECTION.DESC, SORTABLE_COLUMN.Status, + undefined, // backupポップアップ表示時には検索条件は未指定 + undefined, // backupポップアップ表示時には検索条件は未指定 { headers: { authorization: `Bearer ${accessToken}` }, } diff --git a/dictation_client/src/features/dictation/selectors.ts b/dictation_client/src/features/dictation/selectors.ts index 41af21b..a2ef79b 100644 --- a/dictation_client/src/features/dictation/selectors.ts +++ b/dictation_client/src/features/dictation/selectors.ts @@ -72,6 +72,12 @@ export const selectDirection = (state: RootState) => export const selectParamName = (state: RootState) => state.dictation.apps.paramName; +export const selectAuthorId = (state: RootState) => + state.dictation.apps.authorId; + +export const selectFilename = (state: RootState) => + state.dictation.apps.fileName; + export const selectSelectedTask = (state: RootState) => state.dictation.apps.selectedTask; diff --git a/dictation_client/src/features/dictation/state.ts b/dictation_client/src/features/dictation/state.ts index 2f3e288..3135b89 100644 --- a/dictation_client/src/features/dictation/state.ts +++ b/dictation_client/src/features/dictation/state.ts @@ -25,6 +25,8 @@ export interface Apps { displayInfo: DisplayInfoType; direction: DirectionType; paramName: SortableColumnType; + authorId: string; + fileName: string; selectedTask?: Task; selectedFileTask?: Task; assignee: { diff --git a/dictation_client/src/features/license/licenseOrderHistory/constants.ts b/dictation_client/src/features/license/licenseOrderHistory/constants.ts index c0b9ec4..4f14148 100644 --- a/dictation_client/src/features/license/licenseOrderHistory/constants.ts +++ b/dictation_client/src/features/license/licenseOrderHistory/constants.ts @@ -7,3 +7,8 @@ export const STATUS = { // eslint-disable-next-line @typescript-eslint/naming-convention ORDER_CANCELED: "Order Canceled", } as const; + +export const LICENSE_TYPE = { + NORMAL: "NORMAL", + TRIAL: "TRIAL", +} as const; diff --git a/dictation_client/src/features/license/licenseOrderHistory/operations.ts b/dictation_client/src/features/license/licenseOrderHistory/operations.ts index 98b4a06..478a9d8 100644 --- a/dictation_client/src/features/license/licenseOrderHistory/operations.ts +++ b/dictation_client/src/features/license/licenseOrderHistory/operations.ts @@ -3,7 +3,12 @@ import type { RootState } from "app/store"; import { getTranslationID } from "translation"; import { openSnackbar } from "features/ui/uiSlice"; import { getAccessToken } from "features/auth"; -import { AccountsApi, LicensesApi } from "../../../api/api"; +import { + AccountsApi, + LicensesApi, + SearchPartner, + PartnerLicenseInfo, +} from "../../../api/api"; import { Configuration } from "../../../api/configuration"; import { ErrorObject, createErrorObject } from "../../../common/errors"; import { OrderHistoryView } from "./types"; @@ -15,6 +20,7 @@ export const getLicenseOrderHistoriesAsync = createAsyncThunk< // パラメータ limit: number; offset: number; + selectedRow?: PartnerLicenseInfo | SearchPartner; }, { // rejectした時の返却値の型 @@ -23,7 +29,7 @@ export const getLicenseOrderHistoriesAsync = createAsyncThunk< }; } >("licenses/licenseOrderHisotyAsync", async (args, thunkApi) => { - const { limit, offset } = args; + const { limit, offset, selectedRow } = args; // apiのConfigurationを取得する const { getState } = thunkApi; const state = getState() as RootState; @@ -33,7 +39,6 @@ export const getLicenseOrderHistoriesAsync = createAsyncThunk< const accountsApi = new AccountsApi(config); try { - const { selectedRow } = state.partnerLicense.apps; let accountId = 0; let companyName = ""; // 他の画面から指定されていない場合はログインアカウントのidを取得する @@ -46,7 +51,9 @@ export const getLicenseOrderHistoriesAsync = createAsyncThunk< companyName = getMyAccountResponse.data.account.companyName; } else { accountId = selectedRow.accountId; - companyName = selectedRow.companyName; + // パートナーライセンスとパートナー検索で型が異なるため、型ガードで推論させる + if ("companyName" in selectedRow) companyName = selectedRow.companyName; + if ("name" in selectedRow) companyName = selectedRow.name; } const res = await accountsApi.getOrderHistories( diff --git a/dictation_client/src/features/license/licenseSummary/operations.ts b/dictation_client/src/features/license/licenseSummary/operations.ts index f36966f..525f653 100644 --- a/dictation_client/src/features/license/licenseSummary/operations.ts +++ b/dictation_client/src/features/license/licenseSummary/operations.ts @@ -7,6 +7,7 @@ import { AccountsApi, GetCompanyNameResponse, GetLicenseSummaryResponse, + SearchPartner, PartnerLicenseInfo, UpdateRestrictionStatusRequest, } from "../../../api/api"; @@ -17,7 +18,7 @@ export const getLicenseSummaryAsync = createAsyncThunk< // 正常時の戻り値の型 GetLicenseSummaryResponse, // 引数 - { selectedRow?: PartnerLicenseInfo }, + { selectedRow?: PartnerLicenseInfo | SearchPartner }, { // rejectした時の返却値の型 rejectValue: { @@ -73,7 +74,7 @@ export const getCompanyNameAsync = createAsyncThunk< // 正常時の戻り値の型 GetCompanyNameResponse, // 引数 - { selectedRow?: PartnerLicenseInfo }, + { selectedRow?: PartnerLicenseInfo | SearchPartner }, { // rejectした時の返却値の型 rejectValue: { diff --git a/dictation_client/src/features/license/licenseTrialIssue/constants.ts b/dictation_client/src/features/license/licenseTrialIssue/constants.ts new file mode 100644 index 0000000..7768f1e --- /dev/null +++ b/dictation_client/src/features/license/licenseTrialIssue/constants.ts @@ -0,0 +1,2 @@ +export const ISSUED_TRIAL_LICENSE_QUANTITY = 10; +export const TRIAL_LICENSE_EXPIRATION_DAY = 30; diff --git a/dictation_client/src/features/license/licenseTrialIssue/index.ts b/dictation_client/src/features/license/licenseTrialIssue/index.ts new file mode 100644 index 0000000..aa4e566 --- /dev/null +++ b/dictation_client/src/features/license/licenseTrialIssue/index.ts @@ -0,0 +1,5 @@ +export * from "./state"; +export * from "./operations"; +export * from "./selectors"; +export * from "./licenseTrialIssueSlice"; +export * from "./constants"; diff --git a/dictation_client/src/features/license/licenseTrialIssue/licenseTrialIssueSlice.ts b/dictation_client/src/features/license/licenseTrialIssue/licenseTrialIssueSlice.ts new file mode 100644 index 0000000..4c0b844 --- /dev/null +++ b/dictation_client/src/features/license/licenseTrialIssue/licenseTrialIssueSlice.ts @@ -0,0 +1,60 @@ +import { createSlice } from "@reduxjs/toolkit"; +import { convertLocalToUTCDate } from "common/convertLocalToUTCDate"; +import { LicenseTrialIssueState } from "./state"; +import { issueTrialLicenseAsync } from "./operations"; +import { + TRIAL_LICENSE_EXPIRATION_DAY, + ISSUED_TRIAL_LICENSE_QUANTITY, +} from "./constants"; + +const initialState: LicenseTrialIssueState = { + apps: { + isLoading: false, + expirationDate: "", + quantity: ISSUED_TRIAL_LICENSE_QUANTITY, + }, +}; +export const licenseTrialIssueSlice = createSlice({ + name: "licenseTrialIssue", + initialState, + reducers: { + cleanupApps: (state) => { + state.apps = initialState.apps; + }, + setExpirationDate: (state) => { + // 有効期限を設定 + const currentDate = new Date(); + const expiryDate = new Date(); + expiryDate.setDate(currentDate.getDate() + TRIAL_LICENSE_EXPIRATION_DAY); + // タイムゾーンオフセットを考慮して、ローカルタイムでの日付を取得 + const expirationDateLocal = convertLocalToUTCDate(expiryDate); + const expirationDateWithoutTime = new Date( + expirationDateLocal.getFullYear(), + expirationDateLocal.getMonth(), + expirationDateLocal.getDate() + ); + const expirationYear = expirationDateWithoutTime.getFullYear(); + const expirationMonth = expirationDateWithoutTime.getMonth() + 1; // getMonth() の結果は0から始まるため、1を足して実際の月に合わせる + const expirationDay = expirationDateWithoutTime.getDate(); + const formattedExpirationDate = `${expirationYear}/${expirationMonth}/${expirationDay} (${TRIAL_LICENSE_EXPIRATION_DAY})`; + + state.apps.expirationDate = formattedExpirationDate; + }, + }, + extraReducers: (builder) => { + builder.addCase(issueTrialLicenseAsync.pending, (state) => { + state.apps.isLoading = true; + }); + builder.addCase(issueTrialLicenseAsync.fulfilled, (state) => { + state.apps.isLoading = false; + }); + builder.addCase(issueTrialLicenseAsync.rejected, (state) => { + state.apps.isLoading = false; + }); + }, +}); + +export const { cleanupApps, setExpirationDate } = + licenseTrialIssueSlice.actions; + +export default licenseTrialIssueSlice.reducer; diff --git a/dictation_client/src/features/license/licenseTrialIssue/operations.ts b/dictation_client/src/features/license/licenseTrialIssue/operations.ts new file mode 100644 index 0000000..2bc560e --- /dev/null +++ b/dictation_client/src/features/license/licenseTrialIssue/operations.ts @@ -0,0 +1,84 @@ +import { createAsyncThunk } from "@reduxjs/toolkit"; +import type { RootState } from "app/store"; +import { getTranslationID } from "translation"; +import { openSnackbar } from "features/ui/uiSlice"; +import { getAccessToken } from "features/auth"; +import { + LicensesApi, + SearchPartner, + PartnerLicenseInfo, +} from "../../../api/api"; +import { Configuration } from "../../../api/configuration"; +import { ErrorObject, createErrorObject } from "../../../common/errors"; + +export const issueTrialLicenseAsync = createAsyncThunk< + { + /* Empty Object */ + }, + { + selectedRow?: PartnerLicenseInfo | SearchPartner; + }, + { + // rejectした時の返却値の型 + rejectValue: { + error: ErrorObject; + }; + } +>("licenses/issueTrialLicenseAsync", async (args, thunkApi) => { + const { selectedRow } = args; + // apiのConfigurationを取得する + const { getState } = thunkApi; + const state = getState() as RootState; + const { configuration } = state.auth; + const accessToken = getAccessToken(state.auth); + const config = new Configuration(configuration); + const licensesApi = new LicensesApi(config); + + try { + if (!selectedRow) { + // アカウントが選択されていない場合はエラーとする。 + const errorMessage = getTranslationID( + "trialLicenseIssuePopupPage.message.accountNotSelected" + ); + thunkApi.dispatch( + openSnackbar({ + level: "error", + message: errorMessage, + }) + ); + + return {}; + } + + // トライアルライセンス発行処理を実行 + await licensesApi.issueTrialLicenses( + { + issuedAccount: selectedRow.accountId, + }, + { + headers: { authorization: `Bearer ${accessToken}` }, + } + ); + thunkApi.dispatch( + openSnackbar({ + level: "info", + message: getTranslationID("common.message.success"), + }) + ); + return {}; + } catch (e) { + // e ⇒ errorObjectに変換" + const error = createErrorObject(e); + + const errorMessage = getTranslationID("common.message.internalServerError"); + + thunkApi.dispatch( + openSnackbar({ + level: "error", + message: errorMessage, + }) + ); + + return thunkApi.rejectWithValue({ error }); + } +}); diff --git a/dictation_client/src/features/license/licenseTrialIssue/selectors.ts b/dictation_client/src/features/license/licenseTrialIssue/selectors.ts new file mode 100644 index 0000000..c2c8fca --- /dev/null +++ b/dictation_client/src/features/license/licenseTrialIssue/selectors.ts @@ -0,0 +1,10 @@ +import { RootState } from "app/store"; + +export const selectIsLoading = (state: RootState) => + state.licenseTrialIssue.apps.isLoading; + +export const selectExpirationDate = (state: RootState) => + state.licenseTrialIssue.apps.expirationDate; + +export const selectNumberOfLicenses = (state: RootState) => + state.licenseTrialIssue.apps.quantity; diff --git a/dictation_client/src/features/license/licenseTrialIssue/state.ts b/dictation_client/src/features/license/licenseTrialIssue/state.ts new file mode 100644 index 0000000..6bfeec9 --- /dev/null +++ b/dictation_client/src/features/license/licenseTrialIssue/state.ts @@ -0,0 +1,9 @@ +export interface LicenseTrialIssueState { + apps: Apps; +} + +export interface Apps { + isLoading: boolean; + expirationDate: string; + quantity: number; +} diff --git a/dictation_client/src/features/license/partnerLicense/partnerLicenseSlice.ts b/dictation_client/src/features/license/partnerLicense/partnerLicenseSlice.ts index b3c894b..0eacf52 100644 --- a/dictation_client/src/features/license/partnerLicense/partnerLicenseSlice.ts +++ b/dictation_client/src/features/license/partnerLicense/partnerLicenseSlice.ts @@ -25,6 +25,7 @@ const initialState: PartnerLicensesState = { tier: 0, companyName: "", stockLicense: 0, + allocatedLicense: 0, issuedRequested: 0, shortage: 0, issueRequesting: 0, @@ -39,6 +40,9 @@ const initialState: PartnerLicensesState = { hierarchicalElements: [], isLoading: true, selectedRow: undefined, + isLicenseOrderHistoryOpen: false, + isViewDetailsOpen: false, + isSearchPopupOpen: false, }, }; @@ -88,6 +92,24 @@ export const partnerLicenseSlice = createSlice({ state.apps.limit = limit; state.apps.offset = offset; }, + setIsLicenseOrderHistoryOpen: ( + state, + action: PayloadAction<{ value: boolean }> + ) => { + state.apps.isLicenseOrderHistoryOpen = action.payload.value; + }, + setIsViewDetailsOpen: ( + state, + action: PayloadAction<{ value: boolean }> + ) => { + state.apps.isViewDetailsOpen = action.payload.value; + }, + setIsSearchPopupOpen: ( + state, + action: PayloadAction<{ value: boolean }> + ) => { + state.apps.isSearchPopupOpen = action.payload.value; + }, }, extraReducers: (builder) => { builder.addCase(getMyAccountAsync.pending, (state) => { @@ -131,6 +153,9 @@ export const { clearHierarchicalElement, changeSelectedRow, savePageInfo, + setIsLicenseOrderHistoryOpen, + setIsViewDetailsOpen, + setIsSearchPopupOpen, } = partnerLicenseSlice.actions; export default partnerLicenseSlice.reducer; diff --git a/dictation_client/src/features/license/partnerLicense/selectors.ts b/dictation_client/src/features/license/partnerLicense/selectors.ts index b2fad43..f258abe 100644 --- a/dictation_client/src/features/license/partnerLicense/selectors.ts +++ b/dictation_client/src/features/license/partnerLicense/selectors.ts @@ -30,3 +30,10 @@ export const selectCurrentPage = (state: RootState) => { }; export const selectSelectedRow = (state: RootState) => state.partnerLicense.apps.selectedRow; + +export const selectIsLicenseOrderHistoryOpen = (state: RootState) => + state.partnerLicense.apps.isLicenseOrderHistoryOpen; +export const selectIsViewDetailsOpen = (state: RootState) => + state.partnerLicense.apps.isViewDetailsOpen; +export const selectIsSearchPopupOpen = (state: RootState) => + state.partnerLicense.apps.isSearchPopupOpen; diff --git a/dictation_client/src/features/license/partnerLicense/state.ts b/dictation_client/src/features/license/partnerLicense/state.ts index 110a128..27daa74 100644 --- a/dictation_client/src/features/license/partnerLicense/state.ts +++ b/dictation_client/src/features/license/partnerLicense/state.ts @@ -20,6 +20,9 @@ export interface Apps { hierarchicalElements: HierarchicalElement[]; isLoading: boolean; selectedRow?: PartnerLicenseInfo; + isLicenseOrderHistoryOpen: boolean; + isViewDetailsOpen: boolean; + isSearchPopupOpen: boolean; } export interface HierarchicalElement { diff --git a/dictation_client/src/features/license/searchPartner/index.ts b/dictation_client/src/features/license/searchPartner/index.ts new file mode 100644 index 0000000..9d60b2f --- /dev/null +++ b/dictation_client/src/features/license/searchPartner/index.ts @@ -0,0 +1,4 @@ +export * from "./state"; +export * from "./operations"; +export * from "./selectors"; +export * from "./searchPartnerSlice"; diff --git a/dictation_client/src/features/license/searchPartner/operations.ts b/dictation_client/src/features/license/searchPartner/operations.ts new file mode 100644 index 0000000..5aedc1c --- /dev/null +++ b/dictation_client/src/features/license/searchPartner/operations.ts @@ -0,0 +1,96 @@ +import { createAsyncThunk } from "@reduxjs/toolkit"; +import { getAccessToken } from "features/auth"; +import type { RootState } from "../../../app/store"; +import { getTranslationID } from "../../../translation"; +import { openSnackbar } from "../../ui/uiSlice"; +import { AccountsApi, SearchPartner, PartnerHierarchy } from "../../../api/api"; +import { Configuration } from "../../../api/configuration"; +import { ErrorObject, createErrorObject } from "../../../common/errors"; + +export const searchPartnersAsync = createAsyncThunk< + // 正常時の戻り値の型 + SearchPartner[], + // 引数 + { + companyName?: string; + accountId?: number; + }, + { + // rejectした時の返却値の型 + rejectValue: { + error: ErrorObject; + }; + } +>("licenses/searchPartners", async (args, thunkApi) => { + // apiのConfigurationを取得する + const { companyName, accountId } = args; + const { getState } = thunkApi; + const state = getState() as RootState; + const { configuration } = state.auth; + const accessToken = getAccessToken(state.auth); + const config = new Configuration(configuration); + const accountsApi = new AccountsApi(config); + try { + const searchPartnerResponse = await accountsApi.searchPartners( + companyName, + accountId, + { + headers: { authorization: `Bearer ${accessToken}` }, + } + ); + return searchPartnerResponse.data.searchResult; + } catch (e) { + // e ⇒ errorObjectに変換" + const error = createErrorObject(e); + thunkApi.dispatch( + openSnackbar({ + level: "error", + message: getTranslationID("common.message.internalServerError"), + }) + ); + return thunkApi.rejectWithValue({ error }); + } +}); + +export const getPartnerHierarchy = createAsyncThunk< + // 正常時の戻り値の型 + PartnerHierarchy[], + // 引数 + { + accountId: number; + }, + { + // rejectした時の返却値の型 + rejectValue: { + error: ErrorObject; + }; + } +>("licenses/getPartnerHierarchy", async (args, thunkApi) => { + // apiのConfigurationを取得する + const { accountId } = args; + const { getState } = thunkApi; + const state = getState() as RootState; + const { configuration } = state.auth; + const accessToken = getAccessToken(state.auth); + const config = new Configuration(configuration); + const accountsApi = new AccountsApi(config); + try { + const partnerHierarchyResponse = await accountsApi.getPartnerHierarchy( + accountId, + { + headers: { authorization: `Bearer ${accessToken}` }, + } + ); + return partnerHierarchyResponse.data.accountHierarchy; + } catch (e) { + // e ⇒ errorObjectに変換" + const error = createErrorObject(e); + thunkApi.dispatch( + openSnackbar({ + level: "error", + message: getTranslationID("common.message.internalServerError"), + }) + ); + return thunkApi.rejectWithValue({ error }); + } +}); diff --git a/dictation_client/src/features/license/searchPartner/searchPartnerSlice.ts b/dictation_client/src/features/license/searchPartner/searchPartnerSlice.ts new file mode 100644 index 0000000..ed67678 --- /dev/null +++ b/dictation_client/src/features/license/searchPartner/searchPartnerSlice.ts @@ -0,0 +1,80 @@ +import { PayloadAction, createSlice } from "@reduxjs/toolkit"; +import { SearchPartner } from "../../../api"; +import { SearchPartnerState } from "./state"; +import { searchPartnersAsync, getPartnerHierarchy } from "./operations"; + +const initialState: SearchPartnerState = { + domain: { + searchResult: [], + partnerHierarchy: [], + }, + apps: { + isLoading: false, + selectedRow: undefined, + isLicenseOrderHistoryOpen: false, + isViewDetailsOpen: false, + }, +}; + +export const searchPartnersSlice = createSlice({ + name: "searchPartners", + initialState, + reducers: { + changeSelectedRow: ( + state, + action: PayloadAction<{ value?: SearchPartner }> + ) => { + const { value } = action.payload; + state.apps.selectedRow = value; + }, + setIsLicenseOrderHistoryOpen: ( + state, + action: PayloadAction<{ value: boolean }> + ) => { + state.apps.isLicenseOrderHistoryOpen = action.payload.value; + }, + setIsViewDetailsOpen: ( + state, + action: PayloadAction<{ value: boolean }> + ) => { + state.apps.isViewDetailsOpen = action.payload.value; + }, + cleanupSearchResult: (state) => { + state.domain.searchResult = initialState.domain.searchResult; + }, + cleanupPartnerHierarchy: (state) => { + state.domain.partnerHierarchy = initialState.domain.partnerHierarchy; + }, + }, + extraReducers: (builder) => { + builder.addCase(searchPartnersAsync.pending, (state) => { + state.apps.isLoading = true; + }); + builder.addCase(searchPartnersAsync.fulfilled, (state, action) => { + state.domain.searchResult = action.payload; + state.apps.isLoading = false; + }); + builder.addCase(searchPartnersAsync.rejected, (state) => { + state.apps.isLoading = false; + }); + builder.addCase(getPartnerHierarchy.pending, (state) => { + state.apps.isLoading = true; + }); + builder.addCase(getPartnerHierarchy.fulfilled, (state, action) => { + state.domain.partnerHierarchy = action.payload; + state.apps.isLoading = false; + }); + builder.addCase(getPartnerHierarchy.rejected, (state) => { + state.apps.isLoading = false; + }); + }, +}); +export const { + changeSelectedRow, + setIsLicenseOrderHistoryOpen, + setIsViewDetailsOpen, + cleanupSearchResult, + cleanupPartnerHierarchy, +} = searchPartnersSlice.actions; + +export default searchPartnersSlice.reducer; diff --git a/dictation_client/src/features/license/searchPartner/selectors.ts b/dictation_client/src/features/license/searchPartner/selectors.ts new file mode 100644 index 0000000..1bbc471 --- /dev/null +++ b/dictation_client/src/features/license/searchPartner/selectors.ts @@ -0,0 +1,14 @@ +import { RootState } from "../../../app/store"; + +export const selectSearchResult = (state: RootState) => + state.searchPartners.domain.searchResult; +export const selectPartnerHierarchy = (state: RootState) => + state.searchPartners.domain.partnerHierarchy; +export const selectIsLoading = (state: RootState) => + state.searchPartners.apps.isLoading; +export const selectSelectedRow = (state: RootState) => + state.searchPartners.apps.selectedRow; +export const selectIsLicenseOrderHistoryOpen = (state: RootState) => + state.searchPartners.apps.isLicenseOrderHistoryOpen; +export const selectIsViewDetailsOpen = (state: RootState) => + state.searchPartners.apps.isViewDetailsOpen; diff --git a/dictation_client/src/features/license/searchPartner/state.ts b/dictation_client/src/features/license/searchPartner/state.ts new file mode 100644 index 0000000..fccb49f --- /dev/null +++ b/dictation_client/src/features/license/searchPartner/state.ts @@ -0,0 +1,18 @@ +import { SearchPartner, PartnerHierarchy } from "../../../api/api"; + +export interface SearchPartnerState { + domain: Domain; + apps: Apps; +} + +export interface Domain { + searchResult: SearchPartner[]; + partnerHierarchy: PartnerHierarchy[]; +} + +export interface Apps { + isLoading: boolean; + selectedRow?: SearchPartner; + isLicenseOrderHistoryOpen: boolean; + isViewDetailsOpen: boolean; +} diff --git a/dictation_client/src/features/user/operations.ts b/dictation_client/src/features/user/operations.ts index 6e2cf2c..123f720 100644 --- a/dictation_client/src/features/user/operations.ts +++ b/dictation_client/src/features/user/operations.ts @@ -18,7 +18,7 @@ export const listUsersAsync = createAsyncThunk< // 正常時の戻り値の型 GetUsersResponse, // 引数 - void, + undefined | { userInputUserName?: string; userInputEmail?: string }, { // rejectした時の返却値の型 rejectValue: { @@ -33,9 +33,11 @@ export const listUsersAsync = createAsyncThunk< const accessToken = getAccessToken(state.auth); const config = new Configuration(configuration); const usersApi = new UsersApi(config); + const userInputUserName = args?.userInputUserName; + const userInputEmail = args?.userInputEmail; try { - const res = await usersApi.getUsers({ + const res = await usersApi.getUsers(userInputUserName, userInputEmail, { headers: { authorization: `Bearer ${accessToken}` }, }); @@ -500,6 +502,72 @@ export const deleteUserAsync = createAsyncThunk< } }); +export const confirmUserForceAsync = createAsyncThunk< + // 正常時の戻り値の型 + { + /* Empty Object */ + }, + // 引数 + { + userId: number; + }, + { + // rejectした時の返却値の型 + rejectValue: { + error: ErrorObject; + }; + } +>("users/confirmUserForceAsync", async (args, thunkApi) => { + const { userId } = args; + + // apiのConfigurationを取得する + const { getState } = thunkApi; + const state = getState() as RootState; + const { configuration } = state.auth; + const accessToken = getAccessToken(state.auth); + const config = new Configuration(configuration); + const usersApi = new UsersApi(config); + + try { + await usersApi.confirmUserForce( + { + userId, + }, + { + headers: { authorization: `Bearer ${accessToken}` }, + } + ); + thunkApi.dispatch( + openSnackbar({ + level: "info", + message: getTranslationID("common.message.success"), + }) + ); + return {}; + } catch (e) { + // e ⇒ errorObjectに変換 + const error = createErrorObject(e); + + let errorMessage = getTranslationID("common.message.internalServerError"); + + // ユーザーが既に認証済みのため、強制認証不可 + if (error.code === "E010202") { + errorMessage = getTranslationID( + "userListPage.message.alreadyEmailVerifiedError" + ); + } + + thunkApi.dispatch( + openSnackbar({ + level: "error", + message: errorMessage, + }) + ); + + return thunkApi.rejectWithValue({ error }); + } +}); + export const importUsersAsync = createAsyncThunk< // 正常時の戻り値の型 { diff --git a/dictation_client/src/pages/DictationPage/index.tsx b/dictation_client/src/pages/DictationPage/index.tsx index 9907a63..d9c5c4f 100644 --- a/dictation_client/src/pages/DictationPage/index.tsx +++ b/dictation_client/src/pages/DictationPage/index.tsx @@ -22,6 +22,8 @@ import { selectDirection, changeParamName, changeDirection, + changeAuthorId, + changeFileName, changeSelectedTask, openFilePropertyInfo, SortableColumnType, @@ -37,6 +39,11 @@ import { deleteTaskAsync, isSortableColumnType, isDirectionType, + getTaskFiltersAsync, + selectAuthorId, + selectFilename, + updateTaskFiltersAsync, + updateSortColumnAsync, } from "features/dictation"; import { getTranslationID } from "translation"; import { Task } from "api/api"; @@ -55,6 +62,7 @@ import { DisPlayInfo } from "./displayInfo"; import { ChangeTranscriptionistPopup } from "./changeTranscriptionistPopup"; import { BackupPopup } from "./backupPopup"; import { FilePropertyPopup } from "./filePropertyPopup"; +import searchIcon from "../../assets/images/search.svg"; const DictationPage: React.FC = (): JSX.Element => { const dispatch: AppDispatch = useDispatch(); @@ -101,10 +109,18 @@ const DictationPage: React.FC = (): JSX.Element => { const [filterFinished, setFilterFinished] = useState(true); const [filterBackup, setFilterBackup] = useState(false); + // 検索条件の入力値 + const [filterConditionAuthorId, setFilterConditionAuthorId] = useState(""); + const [filterConditionFileName, setFilterConditionFileName] = useState(""); + // ソート対象カラム const sortableParamName = useSelector(selectParamName); const sortDirection = useSelector(selectDirection); + // task_filtersテーブルの検索条件 + const authorId = useSelector(selectAuthorId); + const fileName = useSelector(selectFilename); + const tasks = useSelector(selectTasks); const total = useSelector(selectTotal); const totalPage = useSelector(selectTotalPage); @@ -128,6 +144,8 @@ const DictationPage: React.FC = (): JSX.Element => { filter, direction: sortDirection, paramName: sortableParamName, + authorId, + fileName, }) ); dispatch(listTypistsAsync()); @@ -141,6 +159,8 @@ const DictationPage: React.FC = (): JSX.Element => { filterBackup, sortDirection, sortableParamName, + authorId, + fileName, ]); const getLastPage = useCallback(() => { @@ -159,6 +179,8 @@ const DictationPage: React.FC = (): JSX.Element => { filter, direction: sortDirection, paramName: sortableParamName, + authorId, + fileName, }) ); dispatch(listTypistsAsync()); @@ -173,6 +195,8 @@ const DictationPage: React.FC = (): JSX.Element => { filterBackup, sortDirection, sortableParamName, + authorId, + fileName, ]); const getPrevPage = useCallback(() => { @@ -191,6 +215,8 @@ const DictationPage: React.FC = (): JSX.Element => { filter, direction: sortDirection, paramName: sortableParamName, + authorId, + fileName, }) ); dispatch(listTypistsAsync()); @@ -205,6 +231,8 @@ const DictationPage: React.FC = (): JSX.Element => { filterBackup, sortDirection, sortableParamName, + authorId, + fileName, ]); const getNextPage = useCallback(() => { @@ -223,6 +251,8 @@ const DictationPage: React.FC = (): JSX.Element => { filter, direction: sortDirection, paramName: sortableParamName, + authorId, + fileName, }) ); dispatch(listTypistsAsync()); @@ -237,6 +267,8 @@ const DictationPage: React.FC = (): JSX.Element => { filterBackup, sortDirection, sortableParamName, + authorId, + fileName, ]); const updateSortColumn = useCallback( @@ -269,6 +301,8 @@ const DictationPage: React.FC = (): JSX.Element => { filter, direction: currentDirection, paramName, + authorId, + fileName, }) ); dispatch(listTypistsAsync()); @@ -283,6 +317,8 @@ const DictationPage: React.FC = (): JSX.Element => { filterPending, filterFinished, filterBackup, + authorId, + fileName, ] ); @@ -332,6 +368,19 @@ const DictationPage: React.FC = (): JSX.Element => { hasFinished, hasBackup ); + + // フィルターの状態をローカルストレージに保存する + localStorage.setItem( + "filterCriteria", + JSON.stringify({ + Uploaded: hasUploaded, + InProgress: hasInProgress, + Pending: hasPending, + Finished: hasFinished, + Backup: hasBackup, + }) + ); + dispatch( listTasksAsync({ limit: LIMIT_TASK_NUM, @@ -339,12 +388,14 @@ const DictationPage: React.FC = (): JSX.Element => { filter, direction: sortDirection, paramName: sortableParamName, + authorId, + fileName, }) ); dispatch(listTypistsAsync()); dispatch(listTypistGroupsAsync()); }, - [dispatch, sortDirection, sortableParamName] + [dispatch, sortDirection, sortableParamName, authorId, fileName] ); const onPlayBack = useCallback( @@ -360,6 +411,8 @@ const DictationPage: React.FC = (): JSX.Element => { audioFileId, direction: sortDirection, paramName: sortableParamName, + filterConditionAuthorId: authorId, + filterConditionFileName: fileName, }) ); if (meta.requestStatus === "fulfilled") { @@ -379,14 +432,15 @@ const DictationPage: React.FC = (): JSX.Element => { filter, direction: sortDirection, paramName: sortableParamName, + authorId, + fileName, }) ); dispatch(listTypistsAsync()); dispatch(listTypistGroupsAsync()); - const url = `${ - import.meta.env.VITE_DESK_TOP_APP_SCHEME - }:playback?audioId=${audioFileId}`; + const url = `${import.meta.env.VITE_DESK_TOP_APP_SCHEME + }:playback?audioId=${audioFileId}`; const a = document.createElement("a"); a.href = url; document.body.appendChild(a); @@ -403,6 +457,8 @@ const DictationPage: React.FC = (): JSX.Element => { filterUploaded, sortDirection, sortableParamName, + authorId, + fileName, t, ] ); @@ -424,6 +480,8 @@ const DictationPage: React.FC = (): JSX.Element => { filter, direction: sortDirection, paramName: sortableParamName, + authorId, + fileName, }) ); } @@ -438,6 +496,8 @@ const DictationPage: React.FC = (): JSX.Element => { filterBackup, sortDirection, sortableParamName, + authorId, + fileName, ] ); @@ -455,6 +515,8 @@ const DictationPage: React.FC = (): JSX.Element => { direction: sortDirection, paramName: sortableParamName, isTypist, + filterConditionAuthorId: authorId, + filterConditionFileName: fileName, }) ); if (meta.requestStatus === "fulfilled") { @@ -472,6 +534,8 @@ const DictationPage: React.FC = (): JSX.Element => { filter, direction: sortDirection, paramName: sortableParamName, + authorId, + fileName, }) ); dispatch(listTypistsAsync()); @@ -488,6 +552,8 @@ const DictationPage: React.FC = (): JSX.Element => { isTypist, sortDirection, sortableParamName, + authorId, + fileName, t, ] ); @@ -507,8 +573,11 @@ const DictationPage: React.FC = (): JSX.Element => { direction: sortDirection, paramName: sortableParamName, isTypist, + filterConditionAuthorId: authorId, + filterConditionFileName: fileName, }) ); + if (meta.requestStatus === "fulfilled") { const filter = getFilter( filterUploaded, @@ -524,6 +593,8 @@ const DictationPage: React.FC = (): JSX.Element => { filter, direction: sortDirection, paramName: sortableParamName, + authorId, + fileName, }) ); dispatch(listTypistsAsync()); @@ -540,6 +611,8 @@ const DictationPage: React.FC = (): JSX.Element => { isTypist, sortDirection, sortableParamName, + authorId, + fileName, t, ] ); @@ -569,6 +642,8 @@ const DictationPage: React.FC = (): JSX.Element => { filter, direction: sortDirection, paramName: sortableParamName, + authorId, + fileName, }) ); } @@ -583,9 +658,28 @@ const DictationPage: React.FC = (): JSX.Element => { filterBackup, sortDirection, sortableParamName, + authorId, + fileName, ] ); + const onChangeFilterConditionFileName = useCallback( + (e: React.ChangeEvent) => { + setFilterConditionFileName(e.target.value.trimStart()); + }, + [setFilterConditionFileName] + ); + + const onChangeFilterConditionAuthorId = useCallback( + (e: React.ChangeEvent) => { + // 先頭に%が入力されるとWAFのルールでブロックされてしまう。 + // Authorの登録時に「_」以外の記号は許可されていないため、「_」と半角英数字以外の文字は除去。 + const correctAuthorId = e.target.value.replace(/[^a-zA-Z0-9_]/g, ""); + setFilterConditionAuthorId(correctAuthorId); + }, + [setFilterConditionAuthorId] + ); + const sortIconClass = ( currentParam: SortableColumnType, currentDirection: DirectionType, @@ -628,6 +722,8 @@ const DictationPage: React.FC = (): JSX.Element => { filter, direction: sortDirection, paramName: sortableParamName, + authorId, + fileName, }) ); dispatch(listTypistsAsync()); @@ -643,10 +739,68 @@ const DictationPage: React.FC = (): JSX.Element => { filterUploaded, sortDirection, sortableParamName, + authorId, + fileName, t, ] ); + const requestSearch = useCallback( + async (e: React.FormEvent) => { + e.preventDefault(); + const { meta: taskFilterMeta } = await dispatch( + updateTaskFiltersAsync({ + filterConditionFileName, + filterConditionAuthorId, + }) + ); + const { meta: sortCriteriaMeta } = await dispatch( + updateSortColumnAsync({ + direction: sortDirection, + paramName: sortableParamName, + }) + ); + if ( + taskFilterMeta.requestStatus === "fulfilled" && + sortCriteriaMeta.requestStatus === "fulfilled" + ) { + const filter = getFilter( + filterUploaded, + filterInProgress, + filterPending, + filterFinished, + filterBackup + ); + dispatch(changeAuthorId({ authorId: filterConditionAuthorId })); + dispatch(changeFileName({ fileName: filterConditionFileName })); + // 検索した条件でタスク一覧を取得する + dispatch( + listTasksAsync({ + limit: LIMIT_TASK_NUM, + offset: 0, + filter, + direction: sortDirection, + paramName: sortableParamName, + authorId: filterConditionAuthorId, + fileName: filterConditionFileName, + }) + ); + } + }, + [ + dispatch, + filterBackup, + filterFinished, + filterInProgress, + filterPending, + filterUploaded, + sortDirection, + sortableParamName, + filterConditionAuthorId, + filterConditionFileName, + ] + ); + // 初回読み込み処理 useEffect(() => { (async () => { @@ -662,21 +816,73 @@ const DictationPage: React.FC = (): JSX.Element => { dispatch(changeDisplayInfo({ column: displayInfo })); - const filter = getFilter(true, true, true, true, false); + // フィルター状態をローカルストレージから取得する + const filterValue = localStorage.getItem("filterCriteria"); - const { meta, payload } = await dispatch(getSortColumnAsync()); + let filter: string | undefined; + if (filterValue) { + const parsedFilter = JSON.parse(filterValue); + setFilterUploaded(parsedFilter.Uploaded); + setFilterInProgress(parsedFilter.InProgress); + setFilterPending(parsedFilter.Pending); + setFilterFinished(parsedFilter.Finished); + setFilterBackup(parsedFilter.Backup); + + filter = getFilter( + parsedFilter.Uploaded, + parsedFilter.InProgress, + parsedFilter.Pending, + parsedFilter.Finished, + parsedFilter.Backup + ); + } else { + filter = getFilter(true, true, true, true, false); + localStorage.setItem( + "filterCriteria", + JSON.stringify({ + Uploaded: true, + InProgress: true, + Pending: true, + Finished: true, + Backup: false, + }) + ); + } + // タスクフィルター条件 + const { meta: taskFilterMeta, payload: taskfilterPayload } = + await dispatch(getTaskFiltersAsync()); + let payloadAuthorId: string | undefined; + let payloadFileName: string | undefined; if ( - meta.requestStatus === "fulfilled" && - payload && - !("error" in payload) + taskFilterMeta.requestStatus === "fulfilled" && + taskfilterPayload && + !("error" in taskfilterPayload) + ) { + payloadAuthorId = taskfilterPayload.authorId ?? ""; + payloadFileName = taskfilterPayload.fileName ?? ""; + + dispatch(changeAuthorId({ authorId: payloadAuthorId })); + dispatch(changeFileName({ fileName: payloadFileName })); + // 初回表示時に検索フォームにtask_filtersテーブルの値を設定する。 + setFilterConditionAuthorId(payloadAuthorId); + setFilterConditionFileName(payloadFileName); + } + + // ソート条件 + const { meta: sortCriteriaMeta, payload: sortCriteriaPayload } = + await dispatch(getSortColumnAsync()); + let direction: DirectionType = "ASC"; + let paramName: SortableColumnType = "JOB_NUMBER"; + if ( + sortCriteriaMeta.requestStatus === "fulfilled" && + sortCriteriaPayload && + !("error" in sortCriteriaPayload) ) { // ソート情報をローカルストレージから取得する const sortColumnValue = localStorage.getItem("sortCriteria") ?? ""; - let direction: DirectionType; - let paramName: SortableColumnType; if (sortColumnValue === "") { - direction = payload.direction; - paramName = payload.paramName; + direction = sortCriteriaPayload.direction; + paramName = sortCriteriaPayload.paramName; } else { // ソート情報をDirectionとParamNameに分割する const sortColumn = sortColumnValue?.split(","); @@ -687,15 +893,18 @@ const DictationPage: React.FC = (): JSX.Element => { // 正常なソート情報がローカルストレージに存在する場合はローカルストレージの情報を使用する direction = isDirectionType(localStorageDirection) ? localStorageDirection - : payload.direction; + : sortCriteriaPayload.direction; paramName = isSortableColumnType(localStorageParamName) ? localStorageParamName - : payload.paramName; + : sortCriteriaPayload.paramName; dispatch(changeDirection({ direction })); dispatch(changeParamName({ paramName })); } + } + // タスク一覧を取得する + if (isDirectionType(direction) && isSortableColumnType(paramName)) { dispatch( listTasksAsync({ limit: LIMIT_TASK_NUM, @@ -703,6 +912,8 @@ const DictationPage: React.FC = (): JSX.Element => { filter, direction, paramName, + authorId: payloadAuthorId, + fileName: payloadFileName, }) ); dispatch(listTypistsAsync()); @@ -735,125 +946,171 @@ const DictationPage: React.FC = (): JSX.Element => {
-
    -
  • {t(getTranslationID("dictationPage.label.filter"))}:
  • +
    • - +
        +
      • + {t(getTranslationID("dictationPage.label.filter"))}: +
      • +
      • + +
      • +
      • + +
      • +
      • + +
      • +
      • + +
      • +
      • + +
      • +
    • -
    • -
    • +
      requestSearch(e)} + > { - setFilterInProgress(e.target.checked); - updateFilter( - filterUploaded, - e.target.checked, - filterPending, - filterFinished, - filterBackup - ); - }} + type="text" + placeholder={t( + getTranslationID("dictationPage.label.fileName") + )} + value={filterConditionFileName} + onChange={(e) => onChangeFilterConditionFileName(e)} + className={styles.searchInput} /> - {t(getTranslationID("dictationPage.label.inProgress"))} - -
    • -
    • - -
    • -
    • - -
    • -
    • - + + {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions */} + +
    -
    @@ -1280,7 +1537,7 @@ const DictationPage: React.FC = (): JSX.Element => { { className={ (x.status === STATUS.INPROGRESS || x.status === STATUS.PENDING) && - (isAdmin || isTypist) + (isAdmin || isTypist) ? "" : styles.isDisable } @@ -1322,7 +1579,7 @@ const DictationPage: React.FC = (): JSX.Element => { { // タスクのステータスがInprogressまたはPending以外の場合、削除ボタンを活性化する className={ isDeletableRole && - x.status !== STATUS.INPROGRESS && - x.status !== STATUS.PENDING + x.status !== STATUS.INPROGRESS && + x.status !== STATUS.PENDING ? "" : styles.isDisable } @@ -1540,18 +1797,16 @@ const DictationPage: React.FC = (): JSX.Element => { )}`} {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions */} « {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions */} ‹ @@ -1559,22 +1814,20 @@ const DictationPage: React.FC = (): JSX.Element => { {`${currentPage} of ${totalPage}`} {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions */} {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions */} » @@ -1602,9 +1855,8 @@ const DictationPage: React.FC = (): JSX.Element => { {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions */} {t(getTranslationID("dictationPage.label.fileBackup"))} diff --git a/dictation_client/src/pages/LicensePage/licenseOrderHistory.tsx b/dictation_client/src/pages/LicensePage/licenseOrderHistory.tsx index 6c874d1..a1ba8dc 100644 --- a/dictation_client/src/pages/LicensePage/licenseOrderHistory.tsx +++ b/dictation_client/src/pages/LicensePage/licenseOrderHistory.tsx @@ -12,6 +12,7 @@ import { useDispatch, useSelector } from "react-redux"; import { LIMIT_ORDER_HISORY_NUM, STATUS, + LICENSE_TYPE, getLicenseOrderHistoriesAsync, selectCurrentPage, selectIsLoading, @@ -25,20 +26,21 @@ import { selectCompanyName, cancelIssueAsync, } from "features/license/licenseOrderHistory"; -import { selectSelectedRow } from "features/license/partnerLicense"; import { selectDelegationAccessToken } from "features/auth/selectors"; import { DelegationBar } from "components/delegate"; +import { LicenseOrder, SearchPartner, PartnerLicenseInfo } from "api/api"; import undo from "../../assets/images/undo.svg"; import history from "../../assets/images/history.svg"; import progress_activit from "../../assets/images/progress_activit.svg"; interface LicenseOrderHistoryProps { onReturn: () => void; + selectedRow?: PartnerLicenseInfo | SearchPartner; } export const LicenseOrderHistory: React.FC = ( props ): JSX.Element => { - const { onReturn } = props; + const { onReturn, selectedRow } = props; const dispatch: AppDispatch = useDispatch(); const [t] = useTranslation(); const total = useSelector(selectTotal); @@ -46,7 +48,6 @@ export const LicenseOrderHistory: React.FC = ( const offset = useSelector(selectOffset); const currentPage = useSelector(selectCurrentPage); const isLoading = useSelector(selectIsLoading); - const selectedRow = useSelector(selectSelectedRow); // 代行操作用のトークンを取得する const delegationAccessToken = useSelector(selectDelegationAccessToken); @@ -64,6 +65,7 @@ export const LicenseOrderHistory: React.FC = ( getLicenseOrderHistoriesAsync({ limit: LIMIT_ORDER_HISORY_NUM, offset, + selectedRow, }) ); }; @@ -151,11 +153,15 @@ export const LicenseOrderHistory: React.FC = ( getLicenseOrderHistoriesAsync({ limit: LIMIT_ORDER_HISORY_NUM, offset, + selectedRow, }) ); // eslint-disable-next-line react-hooks/exhaustive-deps }, [dispatch, currentPage]); + const isNotTrialLicense = (license: LicenseOrder) => + license.type !== LICENSE_TYPE.TRIAL; + return (
    = ( getTranslationID("orderHistoriesPage.label.issueDate") )} +
    - + + - + + + @@ -513,9 +612,8 @@ const PartnerLicense: React.FC = (): JSX.Element => { onClick={() => { movePage(0); }} - className={` ${ - !isLoading && currentPage !== 1 ? styles.isActive : "" - }`} + className={` ${!isLoading && currentPage !== 1 ? styles.isActive : "" + }`} > « @@ -524,25 +622,22 @@ const PartnerLicense: React.FC = (): JSX.Element => { onClick={() => { movePage((currentPage - 2) * ACCOUNTS_VIEW_LIMIT); }} - className={`${ - !isLoading && currentPage !== 1 ? styles.isActive : "" - }`} + className={`${!isLoading && currentPage !== 1 ? styles.isActive : "" + }`} > ‹ - {` ${total !== 0 ? currentPage : 0} of ${ - total !== 0 ? totalPage : 0 - } `} + {` ${total !== 0 ? currentPage : 0} of ${total !== 0 ? totalPage : 0 + } `} {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions */} { movePage(currentPage * ACCOUNTS_VIEW_LIMIT); }} - className={`${ - !isLoading && currentPage < totalPage + className={`${!isLoading && currentPage < totalPage ? styles.isActive : "" - }`} + }`} > › @@ -551,11 +646,10 @@ const PartnerLicense: React.FC = (): JSX.Element => { onClick={() => { movePage((totalPage - 1) * ACCOUNTS_VIEW_LIMIT); }} - className={` ${ - !isLoading && currentPage < totalPage + className={` ${!isLoading && currentPage < totalPage ? styles.isActive : "" - }`} + }`} > » @@ -584,4 +678,8 @@ const isVisibleChangeOwner = (partnerTier: number) => (partnerTier.toString() === TIERS.TIER3 || partnerTier.toString() === TIERS.TIER4); +const isVisiblePartnerSearch = () => + // 自身が第一階層〜第四階層の場合のみ表示 + isApproveTier([TIERS.TIER1, TIERS.TIER2, TIERS.TIER3, TIERS.TIER4]); + export default PartnerLicense; diff --git a/dictation_client/src/pages/LicensePage/searchPartnerAccountPopup.tsx b/dictation_client/src/pages/LicensePage/searchPartnerAccountPopup.tsx new file mode 100644 index 0000000..d2513fe --- /dev/null +++ b/dictation_client/src/pages/LicensePage/searchPartnerAccountPopup.tsx @@ -0,0 +1,354 @@ +import { SearchPartner } from "api"; +import React, { + useState, + useEffect, + useRef, + useCallback, + useMemo, +} from "react"; +import { AppDispatch } from "app/store"; +import styles from "styles/app.module.scss"; +import { useTranslation } from "react-i18next"; +import { getTranslationID } from "translation"; +import { useSelector, useDispatch } from "react-redux"; +import { + changeSelectedRow, + cleanupSearchResult, + cleanupPartnerHierarchy, + setIsLicenseOrderHistoryOpen, + setIsViewDetailsOpen, + searchPartnersAsync, + selectIsLoading, + selectSelectedRow, + selectSearchResult, + selectPartnerHierarchy, + selectIsLicenseOrderHistoryOpen, + selectIsViewDetailsOpen, + getPartnerHierarchy, +} from "features/license/searchPartner"; +import { setIsSearchPopupOpen } from "features/license/partnerLicense"; +import { LicenseSummary } from "./licenseSummary"; +import { LicenseOrderHistory } from "./licenseOrderHistory"; +import close from "../../assets/images/close.svg"; +import searchIcon from "../../assets/images/search.svg"; +import progress_activit from "../../assets/images/progress_activit.svg"; + +interface SearchPopupProps { + onClose: () => void; +} + +export const SearchPartnerPopup: React.FC = (props) => { + const dispatch: AppDispatch = useDispatch(); + const { onClose } = props; + const [t] = useTranslation(); + const isLoading = useSelector(selectIsLoading); + const selectedRow = useSelector(selectSelectedRow) as SearchPartner; + const searchResult = useSelector(selectSearchResult); + const partnerHierarchy = useSelector(selectPartnerHierarchy); + const [accountId, setAccountId] = useState(""); + const [companyName, setCompanyName] = useState(""); + const [isBreadcrumbOpen, setIsBreadcrumbOpen] = useState(false); + const isViewDetailsOpen = useSelector(selectIsViewDetailsOpen); + const isLicenseOrderHistoryOpen = useSelector( + selectIsLicenseOrderHistoryOpen + ); + const [popupPosition, setPopupPosition] = useState<{ x: number; y: number }>({ + x: 0, + y: 0, + }); + const breadcrumbRef = useRef(null); + + // フォームの入力チェック + const searchButtonEnabled = useMemo(() => { + // 両方入力がない場合はボタンを活性化しない。 + if (!companyName && !accountId) { + return false; + } + // Company Nameは3文字以上入力がない場合はボタンを活性化しない。 + // サロゲートペアを考慮して、スプレッド構文でリスト化してから文字数をカウントする + // 絵文字が入力された場合は救えないが、そもそも入力されても検索できないので考慮しない。 + if (companyName && [...companyName].length <= 2) { + return false; + } + // Account IDは数字ではないまたは0以下の場合はボタンを活性化しない。 + if ( + accountId && + (Number.isNaN(Number(accountId)) || Number(accountId) <= 0) + ) { + return false; + } + return true; + }, [companyName, accountId]); + + const requestSearch = useCallback( + async (e: React.FormEvent) => { + e.preventDefault(); + if (!searchButtonEnabled) return; + dispatch( + searchPartnersAsync({ + companyName, + accountId: Number(accountId), + }) + ); + }, + [dispatch, companyName, accountId, searchButtonEnabled] + ); + + const handleAccountNameClick = useCallback( + async (clickAccountId: number, event: React.MouseEvent) => { + // ロード中はなにもしない。 + if (isLoading) return; + event.stopPropagation(); + // アカウントの階層を取得 + await dispatch(getPartnerHierarchy({ accountId: clickAccountId })); + setPopupPosition({ x: event.clientX, y: event.clientY }); + setIsBreadcrumbOpen(true); + }, + [dispatch, setPopupPosition, setIsBreadcrumbOpen, isLoading] + ); + + const closeBreadcrumbPopup = () => { + setIsBreadcrumbOpen(false); + }; + + // ポップアップ外のクリックポップアップ非表示するイベント + useEffect(() => { + const handleClickOutside = (event: MouseEvent) => { + if ( + breadcrumbRef.current && + !breadcrumbRef.current.contains(event.target as Node) + ) { + closeBreadcrumbPopup(); + } + }; + if (isBreadcrumbOpen) { + document.addEventListener("mousedown", handleClickOutside); + } else { + document.removeEventListener("mousedown", handleClickOutside); + } + return () => { + document.removeEventListener("mousedown", handleClickOutside); + }; + }, [isBreadcrumbOpen]); + + const tierNames: { [key: number]: string } = { + // eslint-disable-next-line @typescript-eslint/naming-convention + 1: t(getTranslationID("common.label.tier1")), + // eslint-disable-next-line @typescript-eslint/naming-convention + 2: t(getTranslationID("common.label.tier2")), + // eslint-disable-next-line @typescript-eslint/naming-convention + 3: t(getTranslationID("common.label.tier3")), + // eslint-disable-next-line @typescript-eslint/naming-convention + 4: t(getTranslationID("common.label.tier4")), + // eslint-disable-next-line @typescript-eslint/naming-convention + 5: t(getTranslationID("common.label.tier5")), + }; + + const openViewDetails = useCallback( + (value: SearchPartner) => { + dispatch(changeSelectedRow({ value })); + dispatch(setIsViewDetailsOpen({ value: true })); + }, + [dispatch] + ); + + const openOrderHistory = useCallback( + (value?: SearchPartner) => { + dispatch(changeSelectedRow({ value })); + dispatch(setIsLicenseOrderHistoryOpen({ value: true })); + }, + [dispatch] + ); + + const handleModalClose = useCallback(() => { + // ポップアップ閉じたら、検索結果をクリアする + dispatch(cleanupSearchResult()); + dispatch(cleanupPartnerHierarchy()); + onClose(); + dispatch(setIsSearchPopupOpen({ value: false })); + }, [dispatch, onClose]); + + return ( + // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions +
    + {isViewDetailsOpen && ( +
    + dispatch(setIsViewDetailsOpen({ value: false }))} + selectedRow={selectedRow} + /> +
    + )} + {isLicenseOrderHistoryOpen && ( +
    + + dispatch(setIsLicenseOrderHistoryOpen({ value: false })) + } + selectedRow={selectedRow} + /> +
    + )} +
    +
    +
    +

    + {t(getTranslationID("searchPartnerAccountPopupPage.label.title"))} +

    +
    requestSearch(e)} + > + setCompanyName(e.target.value.trimStart())} + className={styles.searchInput} + /> + setAccountId(e.target.value.trimStart())} + className={styles.searchInput} + /> + {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions */} + + + +
    +
    + {t( + getTranslationID("orderHistoriesPage.label.licenseType") + )} + {t( getTranslationID( @@ -229,9 +240,10 @@ export const LicenseOrderHistory: React.FC = ( // eslint-disable-next-line react/jsx-key
    {x.orderDate}{x.issueDate ? x.issueDate : "-"}{x.issueDate ?? "-"}{x.type} {x.numberOfOrder}{x.poNumber}{x.poNumber ?? "-"} {(() => { switch (x.status) { @@ -259,7 +271,7 @@ export const LicenseOrderHistory: React.FC = ( })()} - {!selectedRow && ( + {!selectedRow && isNotTrialLicense(x) && (
      @@ -284,7 +296,7 @@ export const LicenseOrderHistory: React.FC = (
    )} - {selectedRow && ( + {selectedRow && isNotTrialLicense(x) && (
      diff --git a/dictation_client/src/pages/LicensePage/licenseSummary.tsx b/dictation_client/src/pages/LicensePage/licenseSummary.tsx index 641c8a4..45187d0 100644 --- a/dictation_client/src/pages/LicensePage/licenseSummary.tsx +++ b/dictation_client/src/pages/LicensePage/licenseSummary.tsx @@ -14,11 +14,11 @@ import { selectIsLoading, updateRestrictionStatusAsync, } from "features/license/licenseSummary"; -import { selectSelectedRow } from "features/license/partnerLicense"; import { selectDelegationAccessToken } from "features/auth/selectors"; import { DelegationBar } from "components/delegate"; import { TIERS } from "components/auth/constants"; import { isAdminUser, isApproveTier } from "features/auth/utils"; +import { PartnerLicenseInfo, SearchPartner } from "../../api"; import postAdd from "../../assets/images/post_add.svg"; import history from "../../assets/images/history.svg"; import key from "../../assets/images/key.svg"; @@ -27,19 +27,20 @@ import circle from "../../assets/images/circle.svg"; import returnLabel from "../../assets/images/undo.svg"; import { LicenseOrderPopup } from "./licenseOrderPopup"; import { CardLicenseActivatePopup } from "./cardLicenseActivatePopup"; +import { TrialLicenseIssuePopup } from "./trialLicenseIssuePopup"; // eslint-disable-next-line import/no-named-as-default import LicenseOrderHistory from "./licenseOrderHistory"; interface LicenseSummaryProps { onReturn?: () => void; + selectedRow?: PartnerLicenseInfo | SearchPartner; } export const LicenseSummary: React.FC = ( props ): JSX.Element => { - const { onReturn } = props; + const { onReturn, selectedRow } = props; const dispatch: AppDispatch = useDispatch(); const [t] = useTranslation(); - const selectedRow = useSelector(selectSelectedRow); // 代行操作用のトークンを取得する const delegationAccessToken = useSelector(selectDelegationAccessToken); @@ -49,6 +50,8 @@ export const LicenseSummary: React.FC = ( const [islicenseOrderPopupOpen, setIslicenseOrderPopupOpen] = useState(false); const [isCardLicenseActivatePopupOpen, setIsCardLicenseActivatePopupOpen] = useState(false); + const [isTrialLicenseIssuePopupOpen, setIsTrialLicenseIssuePopupOpen] = + useState(false); const onlicenseOrderOpen = useCallback(() => { setIslicenseOrderPopupOpen(true); @@ -58,6 +61,10 @@ export const LicenseSummary: React.FC = ( setIsCardLicenseActivatePopupOpen(true); }, [setIsCardLicenseActivatePopupOpen]); + const onTrialLicenseIssueOpen = useCallback(() => { + setIsTrialLicenseIssuePopupOpen(true); + }, [setIsTrialLicenseIssuePopupOpen]); + // 呼び出し画面制御関係 const [islicenseOrderHistoryOpen, setIsLicenseOrderHistoryOpen] = useState(false); @@ -71,6 +78,7 @@ export const LicenseSummary: React.FC = ( const companyName = useSelector(selectCompanyName); const isTier1 = isApproveTier([TIERS.TIER1]); + const isTier2 = isApproveTier([TIERS.TIER2]); const isAdmin = isAdminUser(); useEffect(() => { @@ -133,11 +141,21 @@ export const LicenseSummary: React.FC = ( }} /> )} + {isTrialLicenseIssuePopupOpen && ( + { + setIsTrialLicenseIssuePopupOpen(false); + dispatch(getLicenseSummaryAsync({ selectedRow })); + }} + selectedRow={selectedRow} + /> + )} {islicenseOrderHistoryOpen && ( { setIsLicenseOrderHistoryOpen(false); }} + selectedRow={selectedRow} /> )} {!islicenseOrderHistoryOpen && ( @@ -228,6 +246,30 @@ export const LicenseSummary: React.FC = ( )} +
    • + {/* 第一階層、第二階層の管理者が第五階層アカウントのライセンス情報を見ている場合は、トライアルライセンス注文ボタンを表示 */} + {selectedRow && + isAdmin && + selectedRow.tier.toString() === TIERS.TIER5 && + (isTier1 || isTier2) && ( + // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions + + + {t( + getTranslationID( + "LicenseSummaryPage.label.issueTrialLicense" + ) + )} + + )} +
    { const dispatch: AppDispatch = useDispatch(); @@ -47,9 +61,21 @@ const PartnerLicense: React.FC = (): JSX.Element => { const [isCardLicenseIssuePopupOpen, setIsCardLicenseIssuePopupOpen] = useState(false); const [islicenseOrderPopupOpen, setIslicenseOrderPopupOpen] = useState(false); - const [islicenseOrderHistoryOpen, setIslicenseOrderHistoryOpen] = - useState(false); - const [isViewDetailsOpen, setIsViewDetailsOpen] = useState(false); + + // パートナーライセンス画面のOrderHistory, ViewDetailsの表示制御 + const isLicenseOrderHistoryOpen = useSelector( + selectIsLicenseOrderHistoryOpen + ); + const isViewDetailsOpen = useSelector(selectIsViewDetailsOpen); + + // パートナー検索ポップアップのOrderHistory, ViewDetailsの表示制御 + const isLicenseOrderHistoryInSearchOpen = useSelector( + selectIsLicenseOrderHistoryInSearchOpen + ); + const isViewDetailsInSearchOpen = useSelector( + selectIsViewDetailsInSearchOpen + ); + const isSearchPopupOpen = useSelector(selectIsSearchPopupOpen); const [isChangeOwnerPopupOpen, setIsChangeOwnerPopupOpen] = useState(false); // 階層表示用 @@ -84,6 +110,7 @@ const PartnerLicense: React.FC = (): JSX.Element => { ); const hierarchicalElements = useSelector(selectHierarchicalElements); const isLoading = useSelector(selectIsLoading); + const selectedRow = useSelector(selectSelectedRow) as PartnerLicenseInfo; // ページネーション制御用 const currentPage = useSelector(selectCurrentPage); @@ -136,18 +163,18 @@ const PartnerLicense: React.FC = (): JSX.Element => { const onClickViewDetails = useCallback( (value?: PartnerLicenseInfo) => { dispatch(changeSelectedRow({ value })); - setIsViewDetailsOpen(true); + dispatch(setIsViewDetailsOpen({ value: true })); }, - [dispatch, setIsViewDetailsOpen] + [dispatch] ); // orderHistoryボタン押下時 const onClickOrderHistory = useCallback( (value?: PartnerLicenseInfo) => { dispatch(changeSelectedRow({ value })); - setIslicenseOrderHistoryOpen(true); + dispatch(setIsLicenseOrderHistoryOpen({ value: true })); }, - [dispatch, setIslicenseOrderHistoryOpen] + [dispatch] ); // changeOwnerボタン押下時 @@ -155,6 +182,10 @@ const PartnerLicense: React.FC = (): JSX.Element => { setIsChangeOwnerPopupOpen(true); }, [setIsChangeOwnerPopupOpen]); + const onOpenSearchPopup = useCallback(() => { + dispatch(setIsSearchPopupOpen({ value: true })); + }, [dispatch]); + // マウント時のみ実行 useEffect(() => { dispatch(getMyAccountAsync()); @@ -176,7 +207,8 @@ const PartnerLicense: React.FC = (): JSX.Element => { }, [myAccountInfo]); // 現在の表示階層に合わせたボタン制御用 - const [buttonLabel, setButtonLabel] = useState(""); + const [showOrderHistoryButton, setShowOrderHistoryButton] = useState(false); + const [showViewDetailsButton, setShowViewDetailsButton] = useState(false); // パンくずリスト用stateに自アカウントを追加 useEffect(() => { @@ -194,15 +226,17 @@ const PartnerLicense: React.FC = (): JSX.Element => { ); } // 表内のボタン表示判定 - if (hierarchicalElements.length === 1 && ownPartnerLicenseInfo.tier !== 4) { - setButtonLabel( - t(getTranslationID("partnerLicense.label.orderHistoryButton")) - ); + if (ownPartnerLicenseInfo.tier !== 4) { + setShowOrderHistoryButton(true); + setShowViewDetailsButton(false); } else if (ownPartnerLicenseInfo.tier === 4) { - setButtonLabel(t(getTranslationID("partnerLicense.label.viewDetails"))); + setShowOrderHistoryButton(true); + setShowViewDetailsButton(true); } else { - setButtonLabel(""); + setShowOrderHistoryButton(false); + setShowViewDetailsButton(false); } + // eslint-disable-next-line react-hooks/exhaustive-deps }, [ownPartnerLicenseInfo]); @@ -221,6 +255,21 @@ const PartnerLicense: React.FC = (): JSX.Element => { // eslint-disable-next-line react-hooks/exhaustive-deps }, [hierarchicalElements, currentPage]); + // パートナーライセンス画面からも検索ポップアップからもOrder History/View Detailsが表示されていない時に表示 + const isVisiblePartnerLicensePage = useMemo( + () => + !isLicenseOrderHistoryInSearchOpen && + !isViewDetailsInSearchOpen && + !isLicenseOrderHistoryOpen && + !isViewDetailsOpen, + [ + isLicenseOrderHistoryInSearchOpen, + isViewDetailsInSearchOpen, + isLicenseOrderHistoryOpen, + isViewDetailsOpen, + ] + ); + return ( <> {/* isPopupOpenがfalseの場合はポップアップのhtmlを生成しないように対応。これによりポップアップは都度生成されて初期化の考慮が減る */} @@ -238,18 +287,20 @@ const PartnerLicense: React.FC = (): JSX.Element => { }} /> )} - {islicenseOrderHistoryOpen && ( + {isLicenseOrderHistoryOpen && ( { - setIslicenseOrderHistoryOpen(false); + dispatch(setIsLicenseOrderHistoryOpen({ value: false })); }} + selectedRow={selectedRow} /> )} {isViewDetailsOpen && ( { - setIsViewDetailsOpen(false); + dispatch(setIsViewDetailsOpen({ value: false })); }} + selectedRow={selectedRow} /> )} {isChangeOwnerPopupOpen && ( @@ -259,7 +310,12 @@ const PartnerLicense: React.FC = (): JSX.Element => { }} /> )} - {!islicenseOrderHistoryOpen && !isViewDetailsOpen && ( + {isVisiblePartnerSearch() && isSearchPopupOpen && ( + dispatch(setIsSearchPopupOpen({ value: true }))} + /> + )} + {isVisiblePartnerLicensePage && (
    @@ -362,6 +418,22 @@ const PartnerLicense: React.FC = (): JSX.Element => { )} +
  • + {isVisiblePartnerSearch() && ( + // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions + + search + {t(getTranslationID("partnerLicense.label.search"))} + + )} +
    • {hierarchicalElements.map((value) => ( @@ -388,6 +460,13 @@ const PartnerLicense: React.FC = (): JSX.Element => {
    {t(getTranslationID("partnerLicense.label.stockLicense"))} + {t( + getTranslationID( + "partnerLicense.label.allocatedLicense" + ) + )} + {t( getTranslationID("partnerLicense.label.issueRequested") @@ -413,12 +492,13 @@ const PartnerLicense: React.FC = (): JSX.Element => { ? ownPartnerLicenseInfo.stockLicense : "-"} + - {ownPartnerLicenseInfo.issuedRequested} 0 && - ownPartnerLicenseInfo.tier !== 1 + ownPartnerLicenseInfo.tier !== 1 ? styles.isAlert : "" } @@ -456,6 +536,7 @@ const PartnerLicense: React.FC = (): JSX.Element => { {tierNames[value.tier]} {value.accountId} {value.stockLicense}{value.tier === 5 ? value.allocatedLicense : "-"} {value.issuedRequested} {
  • {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions */} { - if (ownPartnerLicenseInfo.tier === 4) { - onClickViewDetails(value); - } else { - onClickOrderHistory(value); - } + onClickOrderHistory(value); }} > - {buttonLabel} + {t( + getTranslationID( + "partnerLicense.label.orderHistoryButton" + ) + )}
  • +
  • + {/* Second button (only if tier is 4) */} + {showViewDetailsButton && ( + // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions + { + onClickViewDetails(value); + }} + > + {t( + getTranslationID( + "partnerLicense.label.viewDetails" + ) + )} + + )} +
  • + + + + + + + + + + {searchResult.map((result) => ( + + + + + + + + + + ))} +
    + {t(getTranslationID("partnerPage.label.name"))} + + {t(getTranslationID("partnerPage.label.category"))} + + {t(getTranslationID("partnerPage.label.accountId"))} + + {t(getTranslationID("partnerPage.label.country"))} + + {t(getTranslationID("partnerPage.label.primaryAdmin"))} + + {t(getTranslationID("partnerPage.label.email"))} + + {"" /** Order History、View Details用の空カラム */} +
    + handleAccountNameClick(result.accountId, event) + } + className={styles.hoverBlue} + > + {result.name} + {tierNames[result.tier]}{result.accountId}{result.country}{result.primaryAdmin}{result.email ?? "-"} + +
    + {searchResult.length === 0 && ( +

    + {t(getTranslationID("common.message.listEmpty"))} +

    + )} + {/* ローディングオーバーレイ */} +
    + Loading +
    +
    + {isBreadcrumbOpen && ( +
    +
      + {partnerHierarchy.map((parent) => ( +
    • + {parent.name} +
    • + ))} +
    +
    + )} +
+ + ); +}; diff --git a/dictation_client/src/pages/LicensePage/trialLicenseIssuePopup.tsx b/dictation_client/src/pages/LicensePage/trialLicenseIssuePopup.tsx new file mode 100644 index 0000000..9e4e877 --- /dev/null +++ b/dictation_client/src/pages/LicensePage/trialLicenseIssuePopup.tsx @@ -0,0 +1,123 @@ +import React, { useCallback, useEffect } from "react"; +import { useTranslation } from "react-i18next"; +import { AppDispatch } from "app/store"; +import { useDispatch, useSelector } from "react-redux"; +import { + issueTrialLicenseAsync, + cleanupApps, + selectIsLoading, + selectNumberOfLicenses, + selectExpirationDate, + setExpirationDate, +} from "features/license/licenseTrialIssue"; +import styles from "../../styles/app.module.scss"; +import { getTranslationID } from "../../translation"; +import close from "../../assets/images/close.svg"; +import progress_activit from "../../assets/images/progress_activit.svg"; +import { SearchPartner, PartnerLicenseInfo } from "../../api"; + +interface TrialLicenseIssuePopupProps { + onClose: () => void; + selectedRow?: PartnerLicenseInfo | SearchPartner; +} + +export const TrialLicenseIssuePopup: React.FC = ( + props +) => { + const { onClose, selectedRow } = props; + const { t } = useTranslation(); + const dispatch: AppDispatch = useDispatch(); + const isLoading = useSelector(selectIsLoading); + + const numberOfLicenses = useSelector(selectNumberOfLicenses); + const expirationDate = useSelector(selectExpirationDate); + + useEffect( + () => () => { + // useEffectのreturnとしてcleanupAppsを実行することで、ポップアップのアンマウント時に初期化を行う + dispatch(cleanupApps()); + }, + [dispatch] + ); + + // ポップアップ表示時 + useEffect(() => { + // トライアルライセンスの有効期限を設定。 + dispatch(setExpirationDate()); + }, [dispatch]); + + // ポップアップを閉じる処理 + const closePopup = useCallback(() => { + if (isLoading) { + return; + } + onClose(); + }, [isLoading, onClose]); + + // 発行ボタン押下時 + const onIssueTrialLicense = useCallback(async () => { + // トライアルライセンス発行APIの呼び出し + const { meta } = await dispatch(issueTrialLicenseAsync({ selectedRow })); + if (meta.requestStatus === "fulfilled") { + closePopup(); + } + }, [dispatch, closePopup, selectedRow]); + + // HTML + return ( +
+
+

+ {t(getTranslationID("trialLicenseIssuePopupPage.label.title"))} + +

+
+
+
+ {t(getTranslationID("trialLicenseIssuePopupPage.label.subTitle"))} +
+
+ {t( + getTranslationID( + "trialLicenseIssuePopupPage.label.numberOfLicenses" + ) + )} +
+
{numberOfLicenses}
+
+ {t( + getTranslationID( + "trialLicenseIssuePopupPage.label.expirationDate" + ) + )} +
+
{expirationDate}
+
+ + Loading +
+
+
+
+
+ ); +}; diff --git a/dictation_client/src/pages/UserListPage/allocateLicensePopup.tsx b/dictation_client/src/pages/UserListPage/allocateLicensePopup.tsx index a6baa35..d84fa7c 100644 --- a/dictation_client/src/pages/UserListPage/allocateLicensePopup.tsx +++ b/dictation_client/src/pages/UserListPage/allocateLicensePopup.tsx @@ -28,12 +28,13 @@ import progress_activit from "../../assets/images/progress_activit.svg"; interface AllocateLicensePopupProps { isOpen: boolean; onClose: () => void; + clearUserSearchInputs: () => void; } export const AllocateLicensePopup: React.FC = ( props ) => { - const { isOpen, onClose } = props; + const { isOpen, onClose, clearUserSearchInputs } = props; const dispatch: AppDispatch = useDispatch(); const { t } = useTranslation(); @@ -87,6 +88,7 @@ export const AllocateLicensePopup: React.FC = ( if (meta.requestStatus === "fulfilled") { closePopup(); + clearUserSearchInputs(); dispatch(listUsersAsync()); } }, [dispatch, closePopup, id, selectedlicenseId, hasErrorEmptyLicense]); @@ -219,8 +221,7 @@ export const AllocateLicensePopup: React.FC = ( value={selectedlicenseId ?? ""} >