api.ts 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import { Tag } from '../../../../../app/src/Features/Tags/types'
  2. import {
  3. GetProjectsResponseBody,
  4. Sort,
  5. } from '../../../../../types/project/dashboard/api'
  6. import { deleteJSON, postJSON } from '../../../infrastructure/fetch-json'
  7. export function getProjects(sortBy: Sort): Promise<GetProjectsResponseBody> {
  8. return postJSON('/api/project', { body: { sort: sortBy } })
  9. }
  10. export function createTag(tagName: string): Promise<Tag> {
  11. return postJSON(`/tag`, {
  12. body: { name: tagName },
  13. })
  14. }
  15. export function renameTag(tagId: string, newTagName: string) {
  16. return postJSON(`/tag/${tagId}/rename`, {
  17. body: { name: newTagName },
  18. })
  19. }
  20. export function deleteTag(tagId: string) {
  21. return deleteJSON(`/tag/${tagId}`)
  22. }
  23. export function addProjectToTag(tagId: string, projectId: string) {
  24. return postJSON(`/tag/${tagId}/project/${projectId}`)
  25. }
  26. export function removeProjectFromTag(tagId: string, projectId: string) {
  27. return deleteJSON(`/tag/${tagId}/project/${projectId}`)
  28. }
  29. export function archiveProject(projectId: string) {
  30. return postJSON(`/project/${projectId}/archive`)
  31. }
  32. export function deleteProject(projectId: string) {
  33. return deleteJSON(`/project/${projectId}`)
  34. }
  35. export function leaveProject(projectId: string) {
  36. return postJSON(`/project/${projectId}/leave`)
  37. }
  38. export function renameProject(projectId: string, newName: string) {
  39. return postJSON(`/project/${projectId}/rename`, {
  40. body: {
  41. newProjectName: newName,
  42. },
  43. })
  44. }
  45. export function trashProject(projectId: string) {
  46. return postJSON(`/project/${projectId}/trash`)
  47. }
  48. export function unarchiveProject(projectId: string) {
  49. return deleteJSON(`/project/${projectId}/archive`)
  50. }
  51. export function untrashProject(projectId: string) {
  52. return deleteJSON(`/project/${projectId}/trash`)
  53. }