aboutsummaryrefslogtreecommitdiffhomepage
path: root/shared/extra-utils/users/user-subscriptions.ts
blob: edc7a3562fdb32e6a7982ad553fae18cb2b69889 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
import { makeDeleteRequest, makeGetRequest, makePostBodyRequest } from '../requests/requests'
import { HttpStatusCode } from '../../../shared/core-utils/miscs/http-error-codes'

function addUserSubscription (url: string, token: string, targetUri: string, statusCodeExpected = HttpStatusCode.NO_CONTENT_204) {
  const path = '/api/v1/users/me/subscriptions'

  return makePostBodyRequest({
    url,
    path,
    token,
    statusCodeExpected,
    fields: { uri: targetUri }
  })
}

function listUserSubscriptions (parameters: {
  url: string
  token: string
  sort?: string
  search?: string
  statusCodeExpected?: number
}) {
  const { url, token, sort = '-createdAt', search, statusCodeExpected = HttpStatusCode.OK_200 } = parameters
  const path = '/api/v1/users/me/subscriptions'

  return makeGetRequest({
    url,
    path,
    token,
    statusCodeExpected,
    query: {
      sort,
      search
    }
  })
}

function listUserSubscriptionVideos (url: string, token: string, sort = '-createdAt', statusCodeExpected = HttpStatusCode.OK_200) {
  const path = '/api/v1/users/me/subscriptions/videos'

  return makeGetRequest({
    url,
    path,
    token,
    statusCodeExpected,
    query: { sort }
  })
}

function getUserSubscription (url: string, token: string, uri: string, statusCodeExpected = HttpStatusCode.OK_200) {
  const path = '/api/v1/users/me/subscriptions/' + uri

  return makeGetRequest({
    url,
    path,
    token,
    statusCodeExpected
  })
}

function removeUserSubscription (url: string, token: string, uri: string, statusCodeExpected = HttpStatusCode.NO_CONTENT_204) {
  const path = '/api/v1/users/me/subscriptions/' + uri

  return makeDeleteRequest({
    url,
    path,
    token,
    statusCodeExpected
  })
}

function areSubscriptionsExist (url: string, token: string, uris: string[], statusCodeExpected = HttpStatusCode.OK_200) {
  const path = '/api/v1/users/me/subscriptions/exist'

  return makeGetRequest({
    url,
    path,
    query: { 'uris[]': uris },
    token,
    statusCodeExpected
  })
}

// ---------------------------------------------------------------------------

export {
  areSubscriptionsExist,
  addUserSubscription,
  listUserSubscriptions,
  getUserSubscription,
  listUserSubscriptionVideos,
  removeUserSubscription
}