add api types

This commit is contained in:
Michael Fatemi 2021-07-16 10:58:22 -04:00
parent 6529d1c39f
commit a0527855da

View File

@ -63,15 +63,23 @@ export async function addOrUpdateEventSignup(
eventId: number, eventId: number,
placeId: string | null placeId: string | null
) { ) {
return await post(`/events/${eventId}/signup`, { await post(`/events/${eventId}/signup`, { placeId });
placeId,
});
} }
export async function removeEventSignup(eventId: number) { export async function removeEventSignup(eventId: number) {
return await delete$(`/events/${eventId}/signup`); await delete$(`/events/${eventId}/signup`);
} }
type CreateEventProps = {
name: string;
startTime: Date;
duration: number;
endDate: Date | null;
groupId: number;
placeId: string;
daysOfWeek: number;
};
export async function createEvent({ export async function createEvent({
name, name,
startTime, startTime,
@ -80,15 +88,7 @@ export async function createEvent({
groupId, groupId,
placeId, placeId,
daysOfWeek, daysOfWeek,
}: { }: CreateEventProps) {
name: string;
startTime: Date;
duration: number;
endDate: Date | null;
groupId: number;
placeId: string;
daysOfWeek: number;
}) {
const { id } = await post('/events', { const { id } = await post('/events', {
name, name,
startTime, startTime,
@ -108,32 +108,28 @@ export async function getEvents(): Promise<IEvent[]> {
} }
export async function getEvent(id: number): Promise<IEvent> { export async function getEvent(id: number): Promise<IEvent> {
return await get('/events/' + id); return await get(`/events/${id}`);
} }
export async function getGroup(id: number): Promise<IGroup> { export async function getGroup(id: number): Promise<IGroup> {
return await get('/groups/' + id); return await get('/groups/' + id);
} }
export async function getGroupEvents(id: number) { export async function getGroupEvents(id: number): Promise<IEvent[]> {
return await get('/groups/' + id + '/events'); return await get(`/groups/${id}/events`);
} }
export async function getGroups() { export async function getGroups(): Promise<IGroup[]> {
return await get('/groups'); return await get('/groups');
} }
export async function deleteGroup(id: number) { export async function deleteGroup(id: number) {
return await delete$('/groups/' + id); await delete$('/groups/' + id);
} }
export async function createGroup(name: string) { export async function createGroup(name: string): Promise<{ id: number }> {
const result = await post('/groups', { const { id } = await post('/groups', { name });
name, return { id };
});
return {
id: result.id,
};
} }
export async function getNotifications() { export async function getNotifications() {
@ -161,78 +157,82 @@ export async function getMe() {
} }
export async function resolveCode(code: string): Promise<GroupPreview> { export async function resolveCode(code: string): Promise<GroupPreview> {
return await get('/resolve_code/' + code); return await get(`/resolve_code/${code}`);
} }
export async function joinGroup(id: number, code: string) { export async function joinGroup(id: number, code: string) {
const result = await post('/groups/' + id + '/join', { code }); const result = await post(`/groups/${id}/join`, { code });
return { return {
status: result.status, status: result.status,
}; };
} }
export async function generateCode(groupId: number) { export async function generateCode(groupId: number): Promise<string> {
const { code } = await post(`/groups/${groupId}/generate_code`, {}); const { code } = await post(`/groups/${groupId}/generate_code`, {});
return code; return code;
} }
export async function resetCode(groupId: number) { export async function resetCode(groupId: number): Promise<void> {
return await post('/groups/' + groupId + '/reset_code', {}); return await post('/groups/' + groupId + '/reset_code', {});
} }
export async function getReceivedInvitationsAndRequests() { export async function getReceivedInvitationsAndRequests(): Promise<
return (await get( IInvitation[]
'/users/@me/received_requests_and_invites' > {
)) as IInvitation[]; return await get('/users/@me/received_requests_and_invites');
} }
export async function getCarpool(id: number): Promise<ICarpool> { export async function getCarpool(id: number): Promise<ICarpool> {
return await get('/carpools/' + id); return await get('/carpools/' + id);
} }
type CreateCarpoolProps = {
eventId: number;
name: string;
invitedUserIds: number[];
};
export async function createCarpool({ export async function createCarpool({
eventId, eventId,
name, name,
invitedUserIds, invitedUserIds,
}: { }: CreateCarpoolProps): Promise<{ id: number }> {
eventId: number; const { id } = await post('/carpools/', { eventId, name, invitedUserIds });
name: string;
invitedUserIds: number[]; return { id };
}): Promise<{ id: number }> {
return await post('/carpools/', { eventId, name, invitedUserIds });
} }
export async function sendCarpoolInvite(carpoolId: number, userId: number) { export async function sendCarpoolInvite(carpoolId: number, userId: number) {
return await post('/carpools/' + carpoolId + '/invite', { userId }); await post(`/carpools/${carpoolId}/invite`, { userId });
} }
export async function cancelCarpoolInvite(carpoolId: number, userId: number) { export async function cancelCarpoolInvite(carpoolId: number, userId: number) {
return await delete$('/carpools/' + carpoolId + '/invite', { userId }); await delete$('/carpools/' + carpoolId + '/invite', { userId });
} }
export async function leaveCarpool(carpoolId: number) { export async function leaveCarpool(carpoolId: number) {
return await post(`/carpools/${carpoolId}/leave`, {}); await post(`/carpools/${carpoolId}/leave`, {});
} }
export async function sendCarpoolRequest(carpoolId: number) { export async function sendCarpoolRequest(carpoolId: number) {
return await post('/carpools/' + carpoolId + '/request', {}); await post('/carpools/' + carpoolId + '/request', {});
} }
export async function cancelCarpoolRequest(carpoolId: number) { export async function cancelCarpoolRequest(carpoolId: number) {
return await delete$('/carpools/' + carpoolId + '/request'); await delete$('/carpools/' + carpoolId + '/request');
} }
export async function getSentRequestsAndInvites() { export async function getSentRequestsAndInvites(): Promise<IInvitation[]> {
return (await get('/users/@me/sent_requests_and_invites')) as IInvitation[]; return await get('/users/@me/sent_requests_and_invites');
} }
export async function getActiveEvents() { export async function getActiveEvents(): Promise<IEvent[]> {
return (await get('/users/@me/active_events')) as IEvent[]; return await get('/users/@me/active_events');
} }
export async function getActiveCarpools() { export async function getActiveCarpools(): Promise<ICarpool[]> {
return (await get('/users/@me/active_carpools')) as ICarpool[]; return await get('/users/@me/active_carpools');
} }
export type PotentialInvitee = { export type PotentialInvitee = {