92 lines
2.9 KiB
JavaScript
92 lines
2.9 KiB
JavaScript
import { apiClient, resolveOperationPath } from "./api-client.generated.js";
|
|
|
|
async function requestState(ifNoneMatch) {
|
|
const headers = {};
|
|
if (ifNoneMatch) headers["If-None-Match"] = ifNoneMatch;
|
|
|
|
const res = await apiClient.getState({
|
|
headers,
|
|
raw: true,
|
|
acceptStatuses: [304],
|
|
});
|
|
|
|
if (res.status === 304) {
|
|
return {
|
|
notModified: true,
|
|
etag: res.headers.get("ETag"),
|
|
data: null,
|
|
};
|
|
}
|
|
|
|
return {
|
|
notModified: false,
|
|
etag: res.headers.get("ETag"),
|
|
data: await res.json(),
|
|
};
|
|
}
|
|
|
|
export const api = {
|
|
state: (ifNoneMatch) => requestState(ifNoneMatch),
|
|
stateEventsUrl: () => resolveOperationPath("GetStateEvents"),
|
|
me: () => apiClient.getMe(),
|
|
authOptions: () => apiClient.getAuthOptions(),
|
|
register: (payload) => apiClient.register({ body: payload }),
|
|
login: (payload) => apiClient.login({ body: payload }),
|
|
logout: () => apiClient.logout(),
|
|
|
|
mySuggestions: () => apiClient.getMySuggestions(),
|
|
createSuggestion: (payload) =>
|
|
apiClient.createSuggestion({ body: payload }),
|
|
deleteSuggestion: (id) =>
|
|
apiClient.deleteSuggestion({ pathParameters: { id } }),
|
|
updateSuggestion: (id, payload) =>
|
|
apiClient.updateSuggestion({ pathParameters: { id }, body: payload }),
|
|
allSuggestions: () => apiClient.getAllSuggestions(),
|
|
|
|
myVotes: () => apiClient.getMyVotes(),
|
|
vote: (suggestionId, score) =>
|
|
apiClient.upsertVote({
|
|
body: { suggestionId, score },
|
|
}),
|
|
finalizeVotes: (final) => apiClient.setVotesFinalized({ body: { final } }),
|
|
|
|
results: () => apiClient.getResults(),
|
|
nextPhase: () => apiClient.nextPhase(),
|
|
prevPhase: () => apiClient.prevPhase(),
|
|
};
|
|
|
|
export const adminApi = {
|
|
setResultsOpen: (resultsOpen) =>
|
|
apiClient.setResultsOpen({
|
|
body: { resultsOpen },
|
|
}),
|
|
voteStatus: () => apiClient.getVoteStatus(),
|
|
reset: (password) => apiClient.reset({ body: { password } }),
|
|
factoryReset: (password) =>
|
|
apiClient.factoryReset({
|
|
body: { password },
|
|
}),
|
|
grantJoker: (playerId) => apiClient.grantJoker({ body: { playerId } }),
|
|
setPlayerAdmin: (playerId, isAdmin) =>
|
|
apiClient.setPlayerAdmin({
|
|
body: { playerId, isAdmin },
|
|
}),
|
|
setPlayerPhase: (playerId, phase) =>
|
|
apiClient.setPlayerPhase({
|
|
body: { playerId, phase },
|
|
}),
|
|
deletePlayer: (playerId, password) =>
|
|
apiClient.deletePlayer({
|
|
pathParameters: { playerId },
|
|
body: { password },
|
|
}),
|
|
linkSuggestions: (sourceSuggestionId, targetSuggestionId) =>
|
|
apiClient.linkSuggestions({
|
|
body: { sourceSuggestionId, targetSuggestionId },
|
|
}),
|
|
unlinkSuggestions: (suggestionId) =>
|
|
apiClient.unlinkSuggestions({
|
|
body: { suggestionId },
|
|
}),
|
|
};
|