## 概要 [Task2516: API実装(ワークタイプID追加API)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2516) - ワークタイプ追加APIとテストを実装しました。 - オプションアイテムも一緒に追加されるように実装しています。 - ワークタイプの制限のためにカスタムバリデータを実装しています。 ## レビューポイント - 追加時のエラー処理は適切か - バリデータは適切か ## UIの変更 - なし ## 動作確認状況 - ローカルで確認
241 lines
4.1 KiB
TypeScript
241 lines
4.1 KiB
TypeScript
/**
|
|
* 階層
|
|
* @const {number}
|
|
*/
|
|
export const TIERS = {
|
|
//OMDS東京
|
|
TIER1: 1,
|
|
//OMDS現地法人
|
|
TIER2: 2,
|
|
//代理店
|
|
TIER3: 3,
|
|
//販売店
|
|
TIER4: 4,
|
|
//エンドユーザー
|
|
TIER5: 5,
|
|
} as const;
|
|
|
|
/**
|
|
* 音声ファイルをEast USに保存する国リスト
|
|
* @const {number}
|
|
*/
|
|
export const BLOB_STORAGE_REGION_US = ['CA', 'KY', 'US'];
|
|
|
|
/**
|
|
* 音声ファイルをAustralia Eastに保存する国リスト
|
|
* @const {number}
|
|
*/
|
|
export const BLOB_STORAGE_REGION_AU = ['AU', 'NZ'];
|
|
|
|
/**
|
|
* 音声ファイルをNorth Europeに保存する国リスト
|
|
* @const {number}
|
|
*/
|
|
export const BLOB_STORAGE_REGION_EU = [
|
|
'AT',
|
|
'BE',
|
|
'BG',
|
|
'HR',
|
|
'CY',
|
|
'CZ',
|
|
'DK',
|
|
'EE',
|
|
'FI',
|
|
'FR',
|
|
'DE',
|
|
'GR',
|
|
'HU',
|
|
'IS',
|
|
'IE',
|
|
'IT',
|
|
'LV',
|
|
'LI',
|
|
'LT',
|
|
'LU',
|
|
'MT',
|
|
'NL',
|
|
'NO',
|
|
'PL',
|
|
'PT',
|
|
'RO',
|
|
'RS',
|
|
'SK',
|
|
'SI',
|
|
'ZA',
|
|
'ES',
|
|
'SE',
|
|
'CH',
|
|
'TR',
|
|
'GB',
|
|
];
|
|
|
|
/**
|
|
* 管理ロール
|
|
* @const {string[]}
|
|
*/
|
|
export const ADMIN_ROLES = {
|
|
ADMIN: 'admin',
|
|
STANDARD: 'standard',
|
|
} as const;
|
|
|
|
/**
|
|
* ロール
|
|
* @const {string[]}
|
|
*/
|
|
export const USER_ROLES = {
|
|
NONE: 'none',
|
|
AUTHOR: 'author',
|
|
TYPIST: 'typist',
|
|
} as const;
|
|
|
|
/**
|
|
* ライセンス注文状態
|
|
* @const {string[]}
|
|
*/
|
|
export const LICENSE_ISSUE_STATUS = {
|
|
ISSUE_REQUESTING: 'Issue Requesting',
|
|
ISSUED: 'Issued',
|
|
CANCELED: 'Order Canceled',
|
|
};
|
|
|
|
/**
|
|
* ライセンス種別
|
|
* @const {string[]}
|
|
*/
|
|
export const LICENSE_TYPE = {
|
|
TRIAL: 'TRIAL',
|
|
NORMAL: 'NORMAL',
|
|
CARD: 'CARD',
|
|
} as const;
|
|
/**
|
|
* ライセンス状態
|
|
* @const {string[]}
|
|
*/
|
|
export const LICENSE_ALLOCATED_STATUS = {
|
|
UNALLOCATED: 'Unallocated',
|
|
ALLOCATED: 'Allocated',
|
|
REUSABLE: 'Reusable',
|
|
DELETED: 'Deleted',
|
|
} as const;
|
|
/**
|
|
* 切り替え元種別
|
|
* @const {string[]}
|
|
*/
|
|
export const SWITCH_FROM_TYPE = {
|
|
NONE: 'NONE',
|
|
CARD: 'CARD',
|
|
TRIAL: 'TRIAL',
|
|
} as const;
|
|
|
|
/**
|
|
* ライセンスの期限切れが近いと見なす日数のしきい値
|
|
* @const {number}
|
|
*/
|
|
export const LICENSE_EXPIRATION_THRESHOLD_DAYS = 14;
|
|
|
|
/**
|
|
* ライセンスの有効期間
|
|
* @const {number}
|
|
*/
|
|
export const LICENSE_EXPIRATION_DAYS = 365;
|
|
|
|
/**
|
|
* カードライセンスの桁数
|
|
* @const {number}
|
|
*/
|
|
export const CARD_LICENSE_LENGTH = 20;
|
|
|
|
/**
|
|
* 音声ファイルに紐づくオプションアイテムの数
|
|
* @const {string}
|
|
*/
|
|
export const OPTION_ITEM_NUM = 10;
|
|
|
|
/**
|
|
* 文字起こしタスクのステータス
|
|
* @const {string[]}
|
|
*/
|
|
export const TASK_STATUS = {
|
|
UPLOADED: 'Uploaded',
|
|
PENDING: 'Pending',
|
|
IN_PROGRESS: 'InProgress',
|
|
FINISHED: 'Finished',
|
|
BACKUP: 'Backup',
|
|
} as const;
|
|
|
|
/**
|
|
* タスク一覧でソート可能な属性の一覧
|
|
*/
|
|
export const TASK_LIST_SORTABLE_ATTRIBUTES = [
|
|
'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',
|
|
] as const;
|
|
|
|
/**
|
|
* タスク一覧のソート条件(昇順・降順)
|
|
*/
|
|
export const SORT_DIRECTIONS = ['ASC', 'DESC'] as const;
|
|
|
|
/**
|
|
* 通知タグの最大個数
|
|
* NotificationHubの仕様上タグ式のOR条件で使えるタグは20個まで
|
|
* https://learn.microsoft.com/ja-jp/azure/notification-hubs/notification-hubs-tags-segment-push-message#tag-expressions
|
|
*/
|
|
export const TAG_MAX_COUNT = 20;
|
|
|
|
/**
|
|
* 通知のプラットフォーム種別文字列
|
|
*/
|
|
export const PNS = {
|
|
WNS: 'wns',
|
|
APNS: 'apns',
|
|
};
|
|
|
|
/**
|
|
* ユーザーのライセンス状態
|
|
*/
|
|
export const USER_LICENSE_STATUS = {
|
|
NORMAL: 'Normal',
|
|
NO_LICENSE: 'NoLicense',
|
|
ALERT: 'Alert',
|
|
RENEW: 'Renew',
|
|
};
|
|
|
|
/**
|
|
*トライアルライセンスの有効期限(日数)
|
|
* @const {number}
|
|
*/
|
|
export const TRIAL_LICENSE_EXPIRATION_DAYS = 30;
|
|
|
|
/**
|
|
* ライセンスの発行数
|
|
* @const {number}
|
|
*/
|
|
export const TRIAL_LICENSE_ISSUE_NUM = 100;
|
|
|
|
/**
|
|
* worktypeの最大登録数
|
|
* @const {number}
|
|
*/
|
|
export const WORKTYPE_MAX_COUNT = 20;
|
|
|
|
/**
|
|
* worktypeのDefault値の取りうる値
|
|
**/
|
|
export const OPTION_ITEM_VALUE_TYPE = {
|
|
DEFAULT: 'Default',
|
|
BLANK: 'Blank',
|
|
LAST_INPUT: 'LastInput',
|
|
} as const;
|