aboutsummaryrefslogblamecommitdiffhomepage
path: root/shared/extra-utils/users/blocklist.ts
blob: bdf7ee58a203d67400980e43be4277885a5cd4a8 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
                                                                                              
 
                                                                                             
                                                                                  






                                       
                                            











                                                    





                                                    












                                                    





                                                    















                                                                        
                                            











                                                   





                                                    












                                                   





                                                    









                                                                    





                                      
                                            











                                                  





                                                    












                                                  





                                                    















                                                                      
                                            











                                                 





                                                    












                                                 





                                                    









                                                                  







                                                                              







                                   
 
/* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */

import { makeGetRequest, makeDeleteRequest, makePostBodyRequest } from '../requests/requests'
import { HttpStatusCode } from '../../../shared/core-utils/miscs/http-error-codes'

function getAccountBlocklistByAccount (
  url: string,
  token: string,
  start: number,
  count: number,
  sort = '-createdAt',
  statusCodeExpected = HttpStatusCode.OK_200
) {
  const path = '/api/v1/users/me/blocklist/accounts'

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

function addAccountToAccountBlocklist (
  url: string,
  token: string,
  accountToBlock: string,
  statusCodeExpected = HttpStatusCode.NO_CONTENT_204
) {
  const path = '/api/v1/users/me/blocklist/accounts'

  return makePostBodyRequest({
    url,
    path,
    token,
    fields: {
      accountName: accountToBlock
    },
    statusCodeExpected
  })
}

function removeAccountFromAccountBlocklist (
  url: string,
  token: string,
  accountToUnblock: string,
  statusCodeExpected = HttpStatusCode.NO_CONTENT_204
) {
  const path = '/api/v1/users/me/blocklist/accounts/' + accountToUnblock

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

function getServerBlocklistByAccount (
  url: string,
  token: string,
  start: number,
  count: number,
  sort = '-createdAt',
  statusCodeExpected = HttpStatusCode.OK_200
) {
  const path = '/api/v1/users/me/blocklist/servers'

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

function addServerToAccountBlocklist (
  url: string,
  token: string,
  serverToBlock: string,
  statusCodeExpected = HttpStatusCode.NO_CONTENT_204
) {
  const path = '/api/v1/users/me/blocklist/servers'

  return makePostBodyRequest({
    url,
    path,
    token,
    fields: {
      host: serverToBlock
    },
    statusCodeExpected
  })
}

function removeServerFromAccountBlocklist (
  url: string,
  token: string,
  serverToBlock: string,
  statusCodeExpected = HttpStatusCode.NO_CONTENT_204
) {
  const path = '/api/v1/users/me/blocklist/servers/' + serverToBlock

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

function getAccountBlocklistByServer (
  url: string,
  token: string,
  start: number,
  count: number,
  sort = '-createdAt',
  statusCodeExpected = HttpStatusCode.OK_200
) {
  const path = '/api/v1/server/blocklist/accounts'

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

function addAccountToServerBlocklist (
  url: string,
  token: string,
  accountToBlock: string,
  statusCodeExpected = HttpStatusCode.NO_CONTENT_204
) {
  const path = '/api/v1/server/blocklist/accounts'

  return makePostBodyRequest({
    url,
    path,
    token,
    fields: {
      accountName: accountToBlock
    },
    statusCodeExpected
  })
}

function removeAccountFromServerBlocklist (
  url: string,
  token: string,
  accountToUnblock: string,
  statusCodeExpected = HttpStatusCode.NO_CONTENT_204
) {
  const path = '/api/v1/server/blocklist/accounts/' + accountToUnblock

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

function getServerBlocklistByServer (
  url: string,
  token: string,
  start: number,
  count: number,
  sort = '-createdAt',
  statusCodeExpected = HttpStatusCode.OK_200
) {
  const path = '/api/v1/server/blocklist/servers'

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

function addServerToServerBlocklist (
  url: string,
  token: string,
  serverToBlock: string,
  statusCodeExpected = HttpStatusCode.NO_CONTENT_204
) {
  const path = '/api/v1/server/blocklist/servers'

  return makePostBodyRequest({
    url,
    path,
    token,
    fields: {
      host: serverToBlock
    },
    statusCodeExpected
  })
}

function removeServerFromServerBlocklist (
  url: string,
  token: string,
  serverToBlock: string,
  statusCodeExpected = HttpStatusCode.NO_CONTENT_204
) {
  const path = '/api/v1/server/blocklist/servers/' + serverToBlock

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

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

export {
  getAccountBlocklistByAccount,
  addAccountToAccountBlocklist,
  removeAccountFromAccountBlocklist,
  getServerBlocklistByAccount,
  addServerToAccountBlocklist,
  removeServerFromAccountBlocklist,

  getAccountBlocklistByServer,
  addAccountToServerBlocklist,
  removeAccountFromServerBlocklist,
  getServerBlocklistByServer,
  addServerToServerBlocklist,
  removeServerFromServerBlocklist
}