import { NewProject, Project } from "../Types/Project"; import { NewUser, User } from "../Types/Users"; // Defines all the methods that an instance of the API must implement interface API { /** Register a new user */ registerUser(user: NewUser): Promise; /** Remove a user */ removeUser(username: string): Promise; /** Create a project */ createProject(project: NewProject): Promise; } // Export an instance of the API export const api: API = { async registerUser(user: NewUser): Promise { return fetch("/api/register", { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify(user), }).then((res) => res.json() as Promise); }, async removeUser(username: string): Promise { return fetch("/api/userdelete", { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify(username), }).then((res) => res.json() as Promise); }, async createProject(project: NewProject): Promise { return fetch("/api/project", { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify(project), }).then((res) => res.json() as Promise); }, };