api.ts 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  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 removeProjectFromTag(tagId: string, projectId: string) {
  24. return deleteJSON(`/tag/${tagId}/project/${projectId}`)
  25. }
  26. export function archiveProject(projectId: string) {
  27. return postJSON(`/project/${projectId}/archive`)
  28. }
  29. export function deleteProject(projectId: string) {
  30. return deleteJSON(`/project/${projectId}`)
  31. }
  32. export function leaveProject(projectId: string) {
  33. return postJSON(`/project/${projectId}/leave`)
  34. }
  35. export function trashProject(projectId: string) {
  36. return postJSON(`/project/${projectId}/trash`)
  37. }
  38. export function unarchiveProject(projectId: string) {
  39. return deleteJSON(`/project/${projectId}/archive`)
  40. }
  41. export function untrashProject(projectId: string) {
  42. return deleteJSON(`/project/${projectId}/trash`)
  43. }