feat: 설문조사를 새 방식으로 구현

This commit is contained in:
2022-05-15 20:55:14 +09:00
parent 93895bfb6b
commit 2e2e991c98
11 changed files with 514 additions and 2 deletions
+22
View File
@@ -14,6 +14,7 @@ import type { UploadImageResponse } from "./defs/API/Misc";
import type { GeneralLogType, GetGeneralLogResponse, JoinArgs } from "./defs/API/General";
import type { GetConstResponse, GetCurrentHistoryResponse, GetDiplomacyResponse, GetHistoryResponse } from "./defs/API/Global";
import type { CachedMapResult, GeneralListResponse, ItemTypeKey, MapResult } from "./defs";
import type { VoteDetailResult, VoteListResult } from "./defs/API/Vote";
const apiRealPath = {
Betting: {
@@ -144,6 +145,27 @@ const apiRealPath = {
reqTo?: number
}, GetGeneralLogResponse>
},
Vote: {
AddComment: POST as APICallT<{
voteID: number,
text: string,
}>,
GetVoteList: GET as APICallT<undefined, VoteListResult>,
GetVoteDetail: GET as APICallT<{
voteID: number
}, VoteDetailResult>,
NewVote: POST as APICallT<{
title: string,
multipleOptions?: number,
endDate?: string,
options: string[],
keepOldVote?: boolean,
}>,
Vote: POST as APICallT<{
voteID: number,
selection: number[],
}, ValidResponse & {wonLottery: boolean}>,
}
} as const;
export const SammoAPI = APIPathGen(apiRealPath, (path: string[], tail: APITail, pathParam) => {
+29
View File
@@ -0,0 +1,29 @@
import type { ValidResponse } from "@/util/callSammoAPI";
export type VoteInfo = {
id: number;
title: string;
multipleOptions: number;
startDate: string;
endDate: string;
options: string[];
}
export type VoteComment = {
id: number;
voteID: number;
generalID: number;
nationName: string;
generalName: string;
text: string;
}
export type VoteListResult = ValidResponse & {
votes: Record<string, VoteInfo>;
}
export type VoteDetailResult = ValidResponse & {
voteInfo: VoteInfo,
votes: [number[], number][],
comments: VoteComment[],
}