mirror of
https://github.com/datahub-project/datahub.git
synced 2025-10-14 10:26:51 +00:00
43 lines
1.6 KiB
TypeScript
43 lines
1.6 KiB
TypeScript
import { AccessTokenDuration, AccessTokenType } from '../../types.generated';
|
|
|
|
/** A type of DataHub Access Token. */
|
|
export const ACCESS_TOKEN_TYPES = [{ text: 'Personal', type: AccessTokenType.Personal }];
|
|
|
|
/** The duration for which an Access Token is valid. */
|
|
export const ACCESS_TOKEN_DURATIONS = [
|
|
{ text: '1 hour', duration: AccessTokenDuration.OneHour },
|
|
{ text: '1 day', duration: AccessTokenDuration.OneDay },
|
|
{ text: '1 month', duration: AccessTokenDuration.OneMonth },
|
|
{ text: '3 months', duration: AccessTokenDuration.ThreeMonths },
|
|
{ text: 'Never', duration: AccessTokenDuration.NoExpiry },
|
|
];
|
|
|
|
const addHours = (hour: number) => {
|
|
const result = new Date();
|
|
result.setHours(result.getHours() + hour);
|
|
return `The token will expire on ${result.toLocaleDateString()} at ${result.toLocaleTimeString()}.`;
|
|
};
|
|
|
|
const addDays = (days: number) => {
|
|
const result = new Date();
|
|
result.setDate(result.getDate() + days);
|
|
return `The token will expire on ${result.toLocaleDateString()} at ${result.toLocaleTimeString()}.`;
|
|
};
|
|
|
|
export const getTokenExpireDate = (duration: AccessTokenDuration) => {
|
|
switch (duration) {
|
|
case AccessTokenDuration.OneHour:
|
|
return addHours(1);
|
|
case AccessTokenDuration.OneDay:
|
|
return addDays(1);
|
|
case AccessTokenDuration.OneMonth:
|
|
return addDays(30);
|
|
case AccessTokenDuration.ThreeMonths:
|
|
return addDays(90);
|
|
case AccessTokenDuration.NoExpiry:
|
|
return 'This token will never expire.';
|
|
default:
|
|
return AccessTokenDuration.OneMonth;
|
|
}
|
|
};
|