添加快手 Cloud 换绑角色功能
This commit is contained in:
@@ -17,7 +17,7 @@ export const TASK_STATUS = {
|
||||
CLOSED: 'closed',
|
||||
} as const
|
||||
|
||||
export type KnownTaskStatus = typeof TASK_STATUS[keyof typeof TASK_STATUS]
|
||||
export type KnownTaskStatus = (typeof TASK_STATUS)[keyof typeof TASK_STATUS]
|
||||
export type TaskStatus = KnownTaskStatus | (string & {})
|
||||
|
||||
const TASK_TRANSITIONS: Record<KnownTaskStatus, readonly KnownTaskStatus[]> = {
|
||||
@@ -66,6 +66,7 @@ const TASK_TRANSITIONS: Record<KnownTaskStatus, readonly KnownTaskStatus[]> = {
|
||||
TASK_STATUS.CLOSED,
|
||||
],
|
||||
[TASK_STATUS.ROLE_CONFIRMED]: [
|
||||
TASK_STATUS.WAITING_BINDING,
|
||||
TASK_STATUS.REDEEMING,
|
||||
TASK_STATUS.RETRY_PENDING,
|
||||
TASK_STATUS.MANUAL_REVIEW,
|
||||
@@ -102,11 +103,7 @@ const TASK_TRANSITIONS: Record<KnownTaskStatus, readonly KnownTaskStatus[]> = {
|
||||
TASK_STATUS.REDEEMED,
|
||||
TASK_STATUS.CLOSED,
|
||||
],
|
||||
[TASK_STATUS.FAILED]: [
|
||||
TASK_STATUS.RETRY_PENDING,
|
||||
TASK_STATUS.MANUAL_REVIEW,
|
||||
TASK_STATUS.CLOSED,
|
||||
],
|
||||
[TASK_STATUS.FAILED]: [TASK_STATUS.RETRY_PENDING, TASK_STATUS.MANUAL_REVIEW, TASK_STATUS.CLOSED],
|
||||
[TASK_STATUS.COMPLETED]: [],
|
||||
[TASK_STATUS.REDEEMED]: [],
|
||||
[TASK_STATUS.EXPIRED]: [],
|
||||
@@ -206,6 +203,13 @@ const KUAISHOU_CLOUD_PREPARABLE_STATUSES = new Set<TaskStatus>([
|
||||
TASK_STATUS.FAILED,
|
||||
])
|
||||
|
||||
const KUAISHOU_CLOUD_REBINDABLE_STATUSES = new Set<TaskStatus>([
|
||||
TASK_STATUS.WAITING_BINDING,
|
||||
TASK_STATUS.ROLE_CONFIRMED,
|
||||
TASK_STATUS.MANUAL_REVIEW,
|
||||
TASK_STATUS.RETRY_PENDING,
|
||||
])
|
||||
|
||||
export function normalizeTaskStatus(value: unknown): TaskStatus {
|
||||
return String(value || '').trim() as TaskStatus
|
||||
}
|
||||
@@ -285,6 +289,10 @@ export function canPrepareKuaishouCloudFulfillmentStatus(status: unknown): boole
|
||||
return KUAISHOU_CLOUD_PREPARABLE_STATUSES.has(normalizeTaskStatus(status))
|
||||
}
|
||||
|
||||
export function canRebindKuaishouCloudRoleStatus(status: unknown): boolean {
|
||||
return KUAISHOU_CLOUD_REBINDABLE_STATUSES.has(normalizeTaskStatus(status))
|
||||
}
|
||||
|
||||
export function canDispatchKuaishouCloudFulfillmentStatus(status: unknown): boolean {
|
||||
return normalizeTaskStatus(status) === TASK_STATUS.WAITING_BINDING
|
||||
}
|
||||
@@ -293,10 +301,15 @@ export function canReturnKuaishouCloudFulfillmentStatus(status: unknown): boolea
|
||||
return normalizeTaskStatus(status) === TASK_STATUS.DISPATCHED_PENDING_RETURN
|
||||
}
|
||||
|
||||
export function resolveInitialPaidTaskStatus(profile: {
|
||||
requires_claim?: boolean
|
||||
executor_key?: unknown
|
||||
} | null | undefined): TaskStatus {
|
||||
export function resolveInitialPaidTaskStatus(
|
||||
profile:
|
||||
| {
|
||||
requires_claim?: boolean
|
||||
executor_key?: unknown
|
||||
}
|
||||
| null
|
||||
| undefined,
|
||||
): TaskStatus {
|
||||
if (Boolean(profile?.requires_claim)) {
|
||||
return TASK_STATUS.PAID
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user