32 lines
836 B
TypeScript
32 lines
836 B
TypeScript
/**
|
|
* 刷新 Token 响应 DTO
|
|
*/
|
|
import {
|
|
RefreshTokenResponseSchema,
|
|
type RefreshTokenResponseInput,
|
|
type RefreshTokenResponseData,
|
|
} from "@/data/schemas/auth/refresh_token_response";
|
|
|
|
export class RefreshTokenResponse {
|
|
declare readonly token: string;
|
|
declare readonly refreshToken: string;
|
|
|
|
private constructor(input: RefreshTokenResponseInput) {
|
|
const data = RefreshTokenResponseSchema.parse(input);
|
|
Object.assign(this, data);
|
|
Object.freeze(this);
|
|
}
|
|
|
|
static from(input: RefreshTokenResponseInput): RefreshTokenResponse {
|
|
return new RefreshTokenResponse(input);
|
|
}
|
|
|
|
static fromJson(json: unknown): RefreshTokenResponse {
|
|
return RefreshTokenResponse.from(json as RefreshTokenResponseInput);
|
|
}
|
|
|
|
toJson(): RefreshTokenResponseData {
|
|
return RefreshTokenResponseSchema.parse(this);
|
|
}
|
|
}
|