@follow-app/client-sdk
Version:
TypeScript client SDK for Follow RSS Server API
61 lines (49 loc) • 1.36 kB
text/typescript
import type { achievements } from "@folo-services/drizzle"
import type { InferSelectModel } from "drizzle-orm"
import type { EmptyResponse, SerializedModel, SuccessResponse } from "../../types"
// Database types
type Achievement = SerializedModel<InferSelectModel<typeof achievements>>
// Achievement types
export type AchievementType =
| "checking" |
"completed" |
"incomplete" |
"audit" |
"received"
// Request types
export interface ListAchievementsRequest {
type?: AchievementType | "all"
}
export interface ClaimAchievementRequest {
actionId: number
}
export interface CheckAchievementRequest {
actionId: number
}
export interface AuditAchievementRequest {
actionId: number
payload: any
}
// Response data types
export interface AchievementWithPower extends Achievement {
power: string
}
export interface ListAchievementsData {
data: AchievementWithPower[]
total: number
done: number
}
export interface AchievementActionResult {
actionId: number
result: boolean
}
// Response types
export type ListAchievementsResponse = SuccessResponse<
AchievementWithPower[]
> & {
total: number
done: number
}
export type ClaimAchievementResponse = SuccessResponse<AchievementActionResult>
export type CheckAchievementResponse = SuccessResponse<AchievementActionResult>
export type AuditAchievementResponse = EmptyResponse