api.ts 1.6 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, _csrf: window.csrfToken },
  13. })
  14. }
  15. export function renameTag(tagId: string, newTagName: string) {
  16. return postJSON(`/tag/${tagId}/rename`, {
  17. body: { name: newTagName, _csrf: window.csrfToken },
  18. })
  19. }
  20. export function deleteTag(tagId: string) {
  21. return deleteJSON(`/tag/${tagId}`, { body: { _csrf: window.csrfToken } })
  22. }
  23. export function archiveProject(projectId: string) {
  24. return postJSON(`/project/${projectId}/archive`, {
  25. body: {
  26. _csrf: window.csrfToken,
  27. },
  28. })
  29. }
  30. export function leaveProject(projectId: string) {
  31. return postJSON(`/project/${projectId}/leave`, {
  32. body: {
  33. _csrf: window.csrfToken,
  34. },
  35. })
  36. }
  37. export function trashProject(projectId: string) {
  38. return postJSON(`/project/${projectId}/trash`, {
  39. body: {
  40. _csrf: window.csrfToken,
  41. },
  42. })
  43. }
  44. export function unarchiveProject(projectId: string) {
  45. return deleteJSON(`/project/${projectId}/archive`, {
  46. body: {
  47. _csrf: window.csrfToken,
  48. },
  49. })
  50. }
  51. export function untrashProject(projectId: string) {
  52. return deleteJSON(`/project/${projectId}/trash`, {
  53. body: {
  54. _csrf: window.csrfToken,
  55. },
  56. })
  57. }