api.ts 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  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 deleteProject(projectId: string) {
  31. return deleteJSON(`/project/${projectId}`, {
  32. body: {
  33. _csrf: window.csrfToken,
  34. },
  35. })
  36. }
  37. export function leaveProject(projectId: string) {
  38. return postJSON(`/project/${projectId}/leave`, {
  39. body: {
  40. _csrf: window.csrfToken,
  41. },
  42. })
  43. }
  44. export function trashProject(projectId: string) {
  45. return postJSON(`/project/${projectId}/trash`, {
  46. body: {
  47. _csrf: window.csrfToken,
  48. },
  49. })
  50. }
  51. export function unarchiveProject(projectId: string) {
  52. return deleteJSON(`/project/${projectId}/archive`, {
  53. body: {
  54. _csrf: window.csrfToken,
  55. },
  56. })
  57. }
  58. export function untrashProject(projectId: string) {
  59. return deleteJSON(`/project/${projectId}/trash`, {
  60. body: {
  61. _csrf: window.csrfToken,
  62. },
  63. })
  64. }