Merged PR 303: PBI1224_dev動作確認指摘対応
## 概要 [Task2325: PBI1224_dev動作確認指摘対応](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2325) 前PBIで指摘のあった箇所を修正しました。 ・IssueDateが空白の場合「-」とするように修正 ・ページ上部の「EFGI Legal」に会社名を入れるように修正 ・上記に伴い、アカウント情報取得API(accounts/me)で会社名を取得できるように修正 ・ページネーションの位置を修正 ・ページネーション部分に表示されている「xxx licenses」を「xxx histories」に修正 ・ページネーション周りの挙動を修正 ## レビューポイント なし ## UIの変更 https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task2325?csf=1&web=1&e=g6hYEy ## 動作確認状況 ローカルで動作確認済み ## 補足 なし
This commit is contained in:
parent
a1a91207e4
commit
b59a5df44c
@ -48,6 +48,12 @@ export interface Account {
|
||||
* @memberof Account
|
||||
*/
|
||||
'accountId': number;
|
||||
/**
|
||||
*
|
||||
* @type {string}
|
||||
* @memberof Account
|
||||
*/
|
||||
'companyName': string;
|
||||
}
|
||||
/**
|
||||
*
|
||||
@ -513,19 +519,19 @@ export interface GetOrderHistoriesRequest {
|
||||
/**
|
||||
*
|
||||
* @export
|
||||
* @interface GetOrderHistoriesResponce
|
||||
* @interface GetOrderHistoriesResponse
|
||||
*/
|
||||
export interface GetOrderHistoriesResponce {
|
||||
export interface GetOrderHistoriesResponse {
|
||||
/**
|
||||
* 合計件数
|
||||
* @type {number}
|
||||
* @memberof GetOrderHistoriesResponce
|
||||
* @memberof GetOrderHistoriesResponse
|
||||
*/
|
||||
'total': number;
|
||||
/**
|
||||
*
|
||||
* @type {Array<LicenseOrder>}
|
||||
* @memberof GetOrderHistoriesResponce
|
||||
* @memberof GetOrderHistoriesResponse
|
||||
*/
|
||||
'orderHistories': Array<LicenseOrder>;
|
||||
}
|
||||
@ -718,6 +724,25 @@ export interface IssueCardLicensesResponse {
|
||||
*/
|
||||
'cardLicenseKeys': Array<string>;
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @export
|
||||
* @interface IssueLicenseRequest
|
||||
*/
|
||||
export interface IssueLicenseRequest {
|
||||
/**
|
||||
* 注文元アカウントID
|
||||
* @type {number}
|
||||
* @memberof IssueLicenseRequest
|
||||
*/
|
||||
'orderedAccountId': number;
|
||||
/**
|
||||
* POナンバー
|
||||
* @type {string}
|
||||
* @memberof IssueLicenseRequest
|
||||
*/
|
||||
'poNumber': string;
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @export
|
||||
@ -1696,6 +1721,46 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat
|
||||
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
||||
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
|
||||
|
||||
return {
|
||||
url: toPathString(localVarUrlObj),
|
||||
options: localVarRequestOptions,
|
||||
};
|
||||
},
|
||||
/**
|
||||
*
|
||||
* @summary
|
||||
* @param {IssueLicenseRequest} issueLicenseRequest
|
||||
* @param {*} [options] Override http request option.
|
||||
* @throws {RequiredError}
|
||||
*/
|
||||
issueLicense: async (issueLicenseRequest: IssueLicenseRequest, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
|
||||
// verify required parameter 'issueLicenseRequest' is not null or undefined
|
||||
assertParamExists('issueLicense', 'issueLicenseRequest', issueLicenseRequest)
|
||||
const localVarPath = `/accounts/licenses/issue`;
|
||||
// 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(issueLicenseRequest, localVarRequestOptions, configuration)
|
||||
|
||||
return {
|
||||
url: toPathString(localVarUrlObj),
|
||||
options: localVarRequestOptions,
|
||||
@ -1761,7 +1826,7 @@ export const AccountsApiFp = function(configuration?: Configuration) {
|
||||
* @param {*} [options] Override http request option.
|
||||
* @throws {RequiredError}
|
||||
*/
|
||||
async getOrderHistories(getOrderHistoriesRequest: GetOrderHistoriesRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<GetOrderHistoriesResponce>> {
|
||||
async getOrderHistories(getOrderHistoriesRequest: GetOrderHistoriesRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<GetOrderHistoriesResponse>> {
|
||||
const localVarAxiosArgs = await localVarAxiosParamCreator.getOrderHistories(getOrderHistoriesRequest, options);
|
||||
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
|
||||
},
|
||||
@ -1796,6 +1861,17 @@ export const AccountsApiFp = function(configuration?: Configuration) {
|
||||
const localVarAxiosArgs = await localVarAxiosParamCreator.getTypists(options);
|
||||
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
|
||||
},
|
||||
/**
|
||||
*
|
||||
* @summary
|
||||
* @param {IssueLicenseRequest} issueLicenseRequest
|
||||
* @param {*} [options] Override http request option.
|
||||
* @throws {RequiredError}
|
||||
*/
|
||||
async issueLicense(issueLicenseRequest: IssueLicenseRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<object>> {
|
||||
const localVarAxiosArgs = await localVarAxiosParamCreator.issueLicense(issueLicenseRequest, options);
|
||||
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
|
||||
},
|
||||
}
|
||||
};
|
||||
|
||||
@ -1852,7 +1928,7 @@ export const AccountsApiFactory = function (configuration?: Configuration, baseP
|
||||
* @param {*} [options] Override http request option.
|
||||
* @throws {RequiredError}
|
||||
*/
|
||||
getOrderHistories(getOrderHistoriesRequest: GetOrderHistoriesRequest, options?: any): AxiosPromise<GetOrderHistoriesResponce> {
|
||||
getOrderHistories(getOrderHistoriesRequest: GetOrderHistoriesRequest, options?: any): AxiosPromise<GetOrderHistoriesResponse> {
|
||||
return localVarFp.getOrderHistories(getOrderHistoriesRequest, options).then((request) => request(axios, basePath));
|
||||
},
|
||||
/**
|
||||
@ -1883,6 +1959,16 @@ export const AccountsApiFactory = function (configuration?: Configuration, baseP
|
||||
getTypists(options?: any): AxiosPromise<GetTypistsResponse> {
|
||||
return localVarFp.getTypists(options).then((request) => request(axios, basePath));
|
||||
},
|
||||
/**
|
||||
*
|
||||
* @summary
|
||||
* @param {IssueLicenseRequest} issueLicenseRequest
|
||||
* @param {*} [options] Override http request option.
|
||||
* @throws {RequiredError}
|
||||
*/
|
||||
issueLicense(issueLicenseRequest: IssueLicenseRequest, options?: any): AxiosPromise<object> {
|
||||
return localVarFp.issueLicense(issueLicenseRequest, options).then((request) => request(axios, basePath));
|
||||
},
|
||||
};
|
||||
};
|
||||
|
||||
@ -1985,6 +2071,18 @@ export class AccountsApi extends BaseAPI {
|
||||
public getTypists(options?: AxiosRequestConfig) {
|
||||
return AccountsApiFp(this.configuration).getTypists(options).then((request) => request(this.axios, this.basePath));
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @summary
|
||||
* @param {IssueLicenseRequest} issueLicenseRequest
|
||||
* @param {*} [options] Override http request option.
|
||||
* @throws {RequiredError}
|
||||
* @memberof AccountsApi
|
||||
*/
|
||||
public issueLicense(issueLicenseRequest: IssueLicenseRequest, options?: AxiosRequestConfig) {
|
||||
return AccountsApiFp(this.configuration).issueLicense(issueLicenseRequest, options).then((request) => request(this.axios, this.basePath));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
import { createSlice } from "@reduxjs/toolkit";
|
||||
import { PayloadAction, createSlice } from "@reduxjs/toolkit";
|
||||
import { LicenseOrderHistoryState } from "./state";
|
||||
import { getLicenseOrderHistoriesAsync } from "./operations";
|
||||
import { LIMIT_ORDER_HISORY_NUM } from "./constants";
|
||||
@ -7,6 +7,7 @@ const initialState: LicenseOrderHistoryState = {
|
||||
domain: {
|
||||
total: 0,
|
||||
orderHistories: [],
|
||||
companyName: "",
|
||||
},
|
||||
apps: {
|
||||
limit: LIMIT_ORDER_HISORY_NUM,
|
||||
@ -23,6 +24,17 @@ export const licenseOrderHistorySlice = createSlice({
|
||||
cleanupApps: (state) => {
|
||||
state.domain = initialState.domain;
|
||||
},
|
||||
savePageInfo: (
|
||||
state,
|
||||
action: PayloadAction<{
|
||||
limit: number;
|
||||
offset: number;
|
||||
}>
|
||||
) => {
|
||||
const { limit, offset } = action.payload;
|
||||
state.apps.limit = limit;
|
||||
state.apps.offset = offset;
|
||||
},
|
||||
},
|
||||
extraReducers: (builder) => {
|
||||
builder.addCase(getLicenseOrderHistoriesAsync.pending, (state) => {
|
||||
@ -31,8 +43,9 @@ export const licenseOrderHistorySlice = createSlice({
|
||||
builder.addCase(
|
||||
getLicenseOrderHistoriesAsync.fulfilled,
|
||||
(state, action) => {
|
||||
state.domain.total = action.payload.total;
|
||||
state.domain.orderHistories = action.payload.orderHistories;
|
||||
state.domain.total = action.payload.histories.total;
|
||||
state.domain.orderHistories = action.payload.histories.orderHistories;
|
||||
state.domain.companyName = action.payload.companyName;
|
||||
state.apps.isLoading = false;
|
||||
}
|
||||
);
|
||||
@ -42,6 +55,6 @@ export const licenseOrderHistorySlice = createSlice({
|
||||
},
|
||||
});
|
||||
|
||||
export const { cleanupApps } = licenseOrderHistorySlice.actions;
|
||||
export const { cleanupApps, savePageInfo } = licenseOrderHistorySlice.actions;
|
||||
|
||||
export default licenseOrderHistorySlice.reducer;
|
||||
|
||||
@ -2,13 +2,14 @@ import { createAsyncThunk } from "@reduxjs/toolkit";
|
||||
import type { RootState } from "app/store";
|
||||
import { getTranslationID } from "translation";
|
||||
import { openSnackbar } from "features/ui/uiSlice";
|
||||
import { AccountsApi, GetOrderHistoriesResponce } from "../../../api/api";
|
||||
import { AccountsApi } from "../../../api/api";
|
||||
import { Configuration } from "../../../api/configuration";
|
||||
import { ErrorObject, createErrorObject } from "../../../common/errors";
|
||||
import { OrderHistoryView } from "./types";
|
||||
|
||||
export const getLicenseOrderHistoriesAsync = createAsyncThunk<
|
||||
// 正常時の戻り値の型
|
||||
GetOrderHistoriesResponce,
|
||||
OrderHistoryView,
|
||||
{
|
||||
// パラメータ
|
||||
limit: number;
|
||||
@ -32,15 +33,18 @@ export const getLicenseOrderHistoriesAsync = createAsyncThunk<
|
||||
try {
|
||||
const { selectedRow } = state.partnerLicense.apps;
|
||||
let accountId = 0;
|
||||
let companyName = "";
|
||||
// 他の画面から指定されていない場合はログインアカウントのidを取得する
|
||||
if (!selectedRow) {
|
||||
const getMyAccountResponse = await accountsApi.getMyAccount({
|
||||
headers: { authorization: `Bearer ${accessToken}` },
|
||||
});
|
||||
// accountIDを返す
|
||||
// アカウントID,アカウント名を返す
|
||||
accountId = getMyAccountResponse.data.account.accountId;
|
||||
companyName = getMyAccountResponse.data.account.companyName;
|
||||
} else {
|
||||
accountId = selectedRow.accountId;
|
||||
companyName = selectedRow.companyName;
|
||||
}
|
||||
|
||||
const res = await accountsApi.getOrderHistories(
|
||||
@ -53,7 +57,11 @@ export const getLicenseOrderHistoriesAsync = createAsyncThunk<
|
||||
headers: { authorization: `Bearer ${accessToken}` },
|
||||
}
|
||||
);
|
||||
return res.data;
|
||||
const ret = {
|
||||
histories: res.data,
|
||||
companyName,
|
||||
};
|
||||
return ret;
|
||||
} catch (e) {
|
||||
// e ⇒ errorObjectに変換"
|
||||
const error = createErrorObject(e);
|
||||
|
||||
@ -4,6 +4,9 @@ import { ceil, floor } from "lodash";
|
||||
export const selectOrderHisory = (state: RootState) =>
|
||||
state.licenseOrderHistory.domain.orderHistories;
|
||||
|
||||
export const selectCompanyName = (state: RootState) =>
|
||||
state.licenseOrderHistory.domain.companyName;
|
||||
|
||||
export const selectTotal = (state: RootState) =>
|
||||
state.licenseOrderHistory.domain.total;
|
||||
|
||||
|
||||
@ -8,6 +8,7 @@ export interface LicenseOrderHistoryState {
|
||||
export interface Domain {
|
||||
total: number;
|
||||
orderHistories: LicenseOrder[];
|
||||
companyName: string;
|
||||
}
|
||||
|
||||
export interface Apps {
|
||||
|
||||
@ -0,0 +1,6 @@
|
||||
import { GetOrderHistoriesResponse } from "../../../api/api";
|
||||
|
||||
export interface OrderHistoryView {
|
||||
histories: GetOrderHistoriesResponse;
|
||||
companyName: string;
|
||||
}
|
||||
@ -6,7 +6,7 @@ import { ACCOUNTS_VIEW_LIMIT } from "./constants";
|
||||
|
||||
const initialState: PartnerLicensesState = {
|
||||
domain: {
|
||||
myAccountInfo: { accountId: 0 },
|
||||
myAccountInfo: { accountId: 0, companyName: "" },
|
||||
total: 0,
|
||||
ownPartnerLicense: {
|
||||
accountId: 0,
|
||||
|
||||
@ -17,6 +17,9 @@ import {
|
||||
selectOrderHisory,
|
||||
selectTotal,
|
||||
selectTotalPage,
|
||||
selectOffset,
|
||||
savePageInfo,
|
||||
selectCompanyName,
|
||||
} from "features/license/licenseOrderHistory";
|
||||
import { selectSelectedRow } from "features/license/partnerLicense";
|
||||
import undo from "../../assets/images/undo.svg";
|
||||
@ -34,6 +37,7 @@ export const LicenseOrderHistory: React.FC<LicenseOrderHistoryProps> = (
|
||||
const [t] = useTranslation();
|
||||
const total = useSelector(selectTotal);
|
||||
const totalPage = useSelector(selectTotalPage);
|
||||
const offset = useSelector(selectOffset);
|
||||
const currentPage = useSelector(selectCurrentPage);
|
||||
const isLoading = useSelector(selectIsLoading);
|
||||
const selectedRow = useSelector(selectSelectedRow);
|
||||
@ -47,56 +51,25 @@ export const LicenseOrderHistory: React.FC<LicenseOrderHistoryProps> = (
|
||||
}, [isLoading, onReturn]);
|
||||
|
||||
// ページネーションのボタンクリック時のアクション
|
||||
const getFirstPage = useCallback(() => {
|
||||
const movePage = (targetOffset: number) => {
|
||||
dispatch(
|
||||
getLicenseOrderHistoriesAsync({
|
||||
limit: LIMIT_ORDER_HISORY_NUM,
|
||||
offset: 0,
|
||||
})
|
||||
savePageInfo({ limit: LIMIT_ORDER_HISORY_NUM, offset: targetOffset })
|
||||
);
|
||||
}, [dispatch]);
|
||||
|
||||
const getLastPage = useCallback(() => {
|
||||
const lastPageOffset = (totalPage - 1) * LIMIT_ORDER_HISORY_NUM;
|
||||
dispatch(
|
||||
getLicenseOrderHistoriesAsync({
|
||||
limit: LIMIT_ORDER_HISORY_NUM,
|
||||
offset: lastPageOffset,
|
||||
})
|
||||
);
|
||||
}, [dispatch, totalPage]);
|
||||
|
||||
const getPrevPage = useCallback(() => {
|
||||
const prevPageOffset = (currentPage - 2) * LIMIT_ORDER_HISORY_NUM;
|
||||
dispatch(
|
||||
getLicenseOrderHistoriesAsync({
|
||||
limit: LIMIT_ORDER_HISORY_NUM,
|
||||
offset: prevPageOffset,
|
||||
})
|
||||
);
|
||||
}, [dispatch, currentPage]);
|
||||
|
||||
const getNextPage = useCallback(() => {
|
||||
const nextPageOffset = currentPage * LIMIT_ORDER_HISORY_NUM;
|
||||
dispatch(
|
||||
getLicenseOrderHistoriesAsync({
|
||||
limit: LIMIT_ORDER_HISORY_NUM,
|
||||
offset: nextPageOffset,
|
||||
})
|
||||
);
|
||||
}, [dispatch, currentPage]);
|
||||
};
|
||||
|
||||
// apiからの値取得関係
|
||||
const licenseOrderHistory = useSelector(selectOrderHisory);
|
||||
const companyName = useSelector(selectCompanyName);
|
||||
|
||||
useEffect(() => {
|
||||
dispatch(
|
||||
getLicenseOrderHistoriesAsync({
|
||||
limit: LIMIT_ORDER_HISORY_NUM,
|
||||
offset: 0,
|
||||
offset,
|
||||
})
|
||||
);
|
||||
}, [dispatch]);
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
}, [dispatch, currentPage]);
|
||||
|
||||
return (
|
||||
<div className={styles.wrap}>
|
||||
@ -104,7 +77,7 @@ export const LicenseOrderHistory: React.FC<LicenseOrderHistoryProps> = (
|
||||
|
||||
<UpdateTokenTimer />
|
||||
<main className={styles.main}>
|
||||
<div className="">
|
||||
<div>
|
||||
<div className={styles.pageHeader}>
|
||||
<h1 className={styles.pageTitle}>
|
||||
{t(getTranslationID("orderHistoriesPage.label.title"))}
|
||||
@ -112,13 +85,12 @@ export const LicenseOrderHistory: React.FC<LicenseOrderHistoryProps> = (
|
||||
</div>
|
||||
<section className={styles.license}>
|
||||
<div>
|
||||
<h2 className="">
|
||||
{t(getTranslationID("orderHistoriesPage.label.subTitle"))}
|
||||
<p className={styles.brCrumb}>
|
||||
<img src={history} alt="" className={styles.tlIcon} />
|
||||
{t(getTranslationID("orderHistoriesPage.label.orderHistory"))}
|
||||
</p>
|
||||
</h2>
|
||||
<h2>{companyName}</h2>
|
||||
<p className={styles.brCrumb}>
|
||||
<img src={history} alt="" className={styles.tlIcon} />
|
||||
{t(getTranslationID("orderHistoriesPage.label.orderHistory"))}
|
||||
</p>
|
||||
|
||||
<ul className={styles.menuAction}>
|
||||
<li>
|
||||
{/* eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions */}
|
||||
@ -166,7 +138,7 @@ export const LicenseOrderHistory: React.FC<LicenseOrderHistoryProps> = (
|
||||
// eslint-disable-next-line react/jsx-key
|
||||
<tr>
|
||||
<td>{x.orderDate}</td>
|
||||
<td>{x.issueDate}</td>
|
||||
<td>{x.issueDate ? x.issueDate : "-"}</td>
|
||||
<td>{x.numberOfOrder}</td>
|
||||
<td>{x.poNumber}</td>
|
||||
<td>
|
||||
@ -267,17 +239,19 @@ export const LicenseOrderHistory: React.FC<LicenseOrderHistoryProps> = (
|
||||
/>
|
||||
)}
|
||||
{/** pagenation */}
|
||||
<div className={styles.pagenation}>
|
||||
<div className={`${styles.pagenation} ${styles.widthMid}`}>
|
||||
<nav className={styles.pagenationNav}>
|
||||
<span className={styles.pagenationTotal}>{`${total} ${t(
|
||||
getTranslationID("orderHistoriesPage.label.title")
|
||||
getTranslationID("orderHistoriesPage.label.histories")
|
||||
)}`}</span>
|
||||
{/* eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions */}
|
||||
<a
|
||||
className={`${
|
||||
!isLoading && currentPage !== 1 ? styles.isActive : ""
|
||||
}`}
|
||||
onClick={getFirstPage}
|
||||
onClick={() => {
|
||||
movePage(0);
|
||||
}}
|
||||
>
|
||||
«
|
||||
</a>
|
||||
@ -286,11 +260,15 @@ export const LicenseOrderHistory: React.FC<LicenseOrderHistoryProps> = (
|
||||
className={`${
|
||||
!isLoading && currentPage !== 1 ? styles.isActive : ""
|
||||
}`}
|
||||
onClick={getPrevPage}
|
||||
onClick={() => {
|
||||
movePage((currentPage - 2) * LIMIT_ORDER_HISORY_NUM);
|
||||
}}
|
||||
>
|
||||
‹
|
||||
</a>
|
||||
{`${currentPage} of ${totalPage}`}
|
||||
{` ${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 */}
|
||||
<a
|
||||
className={`${
|
||||
@ -298,7 +276,9 @@ export const LicenseOrderHistory: React.FC<LicenseOrderHistoryProps> = (
|
||||
? styles.isActive
|
||||
: ""
|
||||
}`}
|
||||
onClick={getNextPage}
|
||||
onClick={() => {
|
||||
movePage(currentPage * LIMIT_ORDER_HISORY_NUM);
|
||||
}}
|
||||
>
|
||||
›
|
||||
</a>
|
||||
@ -309,7 +289,9 @@ export const LicenseOrderHistory: React.FC<LicenseOrderHistoryProps> = (
|
||||
? styles.isActive
|
||||
: ""
|
||||
}`}
|
||||
onClick={getLastPage}
|
||||
onClick={() => {
|
||||
movePage((totalPage - 1) * LIMIT_ORDER_HISORY_NUM);
|
||||
}}
|
||||
>
|
||||
»
|
||||
</a>
|
||||
|
||||
@ -331,8 +331,19 @@ _:-ms-lang(x)::-ms-backdrop,
|
||||
color: #999999;
|
||||
}
|
||||
|
||||
h2,
|
||||
h3 {
|
||||
display: inline-block;
|
||||
max-width: 72%;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
vertical-align: bottom;
|
||||
}
|
||||
h2 .brCrumb,
|
||||
h3 .brCrumb {
|
||||
h2 + .brCrumb,
|
||||
h3 .brCrumb,
|
||||
h3 + .brCrumb {
|
||||
display: inline;
|
||||
margin-left: 1rem;
|
||||
font-size: 1.5rem;
|
||||
@ -341,11 +352,15 @@ h3 .brCrumb {
|
||||
font-weight: normal;
|
||||
}
|
||||
h2 .brCrumb::before,
|
||||
h3 .brCrumb::before {
|
||||
h2 + .brCrumb::before,
|
||||
h3 .brCrumb::before,
|
||||
h3 + .brCrumb::before {
|
||||
content: "-";
|
||||
}
|
||||
h2 .brCrumb .tlIcon,
|
||||
h3 .brCrumb .tlIcon {
|
||||
h2 + .brCrumb .tlIcon,
|
||||
h3 .brCrumb .tlIcon,
|
||||
h3 + .brCrumb .tlIcon {
|
||||
width: 1.6rem;
|
||||
margin: 0 0.2rem 0 0.5rem;
|
||||
vertical-align: text-top;
|
||||
@ -1550,6 +1565,9 @@ _:-ms-lang(x)::-ms-backdrop,
|
||||
padding: 0.3rem 0.5rem 0.3rem 0.5rem;
|
||||
opacity: 0;
|
||||
}
|
||||
.menuAction.inTable .menuLink .menuIcon {
|
||||
width: 1.2rem;
|
||||
}
|
||||
.menuAction.inTable .menuLink.isActive {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
@ -203,5 +203,6 @@ declare const classNames: {
|
||||
readonly txNormal: "txNormal";
|
||||
readonly txIcon: "txIcon";
|
||||
readonly txWswrap: "txWswrap";
|
||||
readonly widthMid: "widthMid";
|
||||
};
|
||||
export = classNames;
|
||||
|
||||
@ -322,7 +322,8 @@
|
||||
"orderCanceled": "(de)Order Canceled",
|
||||
"issue": "(de)Issue",
|
||||
"issueCancel": "(de)Issue Cancel",
|
||||
"orderCancel": "(de)Order Cancel"
|
||||
"orderCancel": "(de)Order Cancel",
|
||||
"histories": "(de)histories"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -322,7 +322,8 @@
|
||||
"orderCanceled": "Order Canceled",
|
||||
"issue": "Issue",
|
||||
"issueCancel": "Issue Cancel",
|
||||
"orderCancel": "Order Cancel"
|
||||
"orderCancel": "Order Cancel",
|
||||
"histories": "histories"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -322,7 +322,8 @@
|
||||
"orderCanceled": "(es)Order Canceled",
|
||||
"issue": "(es)Issue",
|
||||
"issueCancel": "(es)Issue Cancel",
|
||||
"orderCancel": "(es)Order Cancel"
|
||||
"orderCancel": "(es)Order Cancel",
|
||||
"histories": "(es)histories"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -322,7 +322,8 @@
|
||||
"orderCanceled": "(fr)Order Canceled",
|
||||
"issue": "(fr)Issue",
|
||||
"issueCancel": "(fr)Issue Cancel",
|
||||
"orderCancel": "(fr)Order Cancel"
|
||||
"orderCancel": "(fr)Order Cancel",
|
||||
"histories": "(fr)histories"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1981,8 +1981,11 @@
|
||||
},
|
||||
"Account": {
|
||||
"type": "object",
|
||||
"properties": { "accountId": { "type": "number" } },
|
||||
"required": ["accountId"]
|
||||
"properties": {
|
||||
"accountId": { "type": "number" },
|
||||
"companyName": { "type": "string" }
|
||||
},
|
||||
"required": ["accountId", "companyName"]
|
||||
},
|
||||
"GetMyAccountResponse": {
|
||||
"type": "object",
|
||||
|
||||
@ -165,12 +165,8 @@ export class AccountsController {
|
||||
const accessToken = retrieveAuthorizationToken(req);
|
||||
const payload = jwt.decode(accessToken, { json: true }) as AccessToken;
|
||||
//アカウントID取得処理
|
||||
const accountId = await this.accountService.getMyAccountInfo(payload);
|
||||
return {
|
||||
account: {
|
||||
accountId: accountId,
|
||||
},
|
||||
};
|
||||
const accountInfo = await this.accountService.getMyAccountInfo(payload);
|
||||
return accountInfo;
|
||||
}
|
||||
|
||||
@ApiResponse({
|
||||
|
||||
@ -22,6 +22,7 @@ import {
|
||||
PartnerLicenseInfo,
|
||||
GetOrderHistoriesResponse,
|
||||
LicenseOrder,
|
||||
GetMyAccountResponse,
|
||||
} from './types/types';
|
||||
import { DateWithZeroTime } from '../licenses/types/types';
|
||||
import { GetLicenseSummaryResponse, Typist } from './types/types';
|
||||
@ -30,6 +31,7 @@ import { UserNotFoundError } from '../../repositories/users/errors/types';
|
||||
import { UserGroupsRepositoryService } from '../../repositories/user_groups/user_groups.repository.service';
|
||||
import { makePassword } from '../../common/password';
|
||||
import { LicensesRepositoryService } from '../../repositories/licenses/licenses.repository.service';
|
||||
import { AccountNotFoundError } from '../../repositories/accounts/errors/types';
|
||||
@Injectable()
|
||||
export class AccountsService {
|
||||
constructor(
|
||||
@ -215,7 +217,7 @@ export class AccountsService {
|
||||
* @param token
|
||||
* @returns accountId
|
||||
*/
|
||||
async getMyAccountInfo(token: AccessToken): Promise<number> {
|
||||
async getMyAccountInfo(token: AccessToken): Promise<GetMyAccountResponse> {
|
||||
this.logger.log(`[IN] ${this.getMyAccountInfo.name}`);
|
||||
|
||||
let userInfo: User;
|
||||
@ -236,8 +238,33 @@ export class AccountsService {
|
||||
}
|
||||
}
|
||||
|
||||
let accountInfo: Account;
|
||||
try {
|
||||
accountInfo = await this.accountRepository.findAccountById(
|
||||
userInfo.account_id,
|
||||
);
|
||||
} catch (e) {
|
||||
switch (e.constructor) {
|
||||
case AccountNotFoundError:
|
||||
throw new HttpException(
|
||||
makeErrorResponse('E010501'),
|
||||
HttpStatus.BAD_REQUEST,
|
||||
);
|
||||
default:
|
||||
throw new HttpException(
|
||||
makeErrorResponse('E009999'),
|
||||
HttpStatus.INTERNAL_SERVER_ERROR,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
this.logger.log(`[OUT] ${this.getMyAccountInfo.name}`);
|
||||
return userInfo.account_id;
|
||||
return {
|
||||
account: {
|
||||
accountId: userInfo.account_id,
|
||||
companyName: accountInfo.company_name,
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
async getTypistGroups(externalId: string): Promise<TypistGroup[]> {
|
||||
|
||||
@ -81,6 +81,8 @@ export class GetLicenseSummaryResponse {
|
||||
export class Account {
|
||||
@ApiProperty()
|
||||
accountId: number;
|
||||
@ApiProperty()
|
||||
companyName: string;
|
||||
}
|
||||
|
||||
export class GetMyAccountResponse {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user