mirror of https://github.com/Chocobozzz/PeerTube
				
				
				
			
		
			
				
	
	
		
			245 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			TypeScript
		
	
	
			
		
		
	
	
			245 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			TypeScript
		
	
	
| import { AbuseFilter, AbusePredefinedReasonsString, AbuseState, AbuseUpdate, AbuseVideoIs } from '@shared/models'
 | |
| import { makeDeleteRequest, makeGetRequest, makePostBodyRequest, makePutBodyRequest } from '../requests/requests'
 | |
| import { HttpStatusCode } from '../../../shared/core-utils/miscs/http-error-codes'
 | |
| 
 | |
| function reportAbuse (options: {
 | |
|   url: string
 | |
|   token: string
 | |
| 
 | |
|   reason: string
 | |
| 
 | |
|   accountId?: number
 | |
|   videoId?: number
 | |
|   commentId?: number
 | |
| 
 | |
|   predefinedReasons?: AbusePredefinedReasonsString[]
 | |
| 
 | |
|   startAt?: number
 | |
|   endAt?: number
 | |
| 
 | |
|   statusCodeExpected?: number
 | |
| }) {
 | |
|   const path = '/api/v1/abuses'
 | |
| 
 | |
|   const video = options.videoId
 | |
|     ? {
 | |
|       id: options.videoId,
 | |
|       startAt: options.startAt,
 | |
|       endAt: options.endAt
 | |
|     }
 | |
|     : undefined
 | |
| 
 | |
|   const comment = options.commentId
 | |
|     ? { id: options.commentId }
 | |
|     : undefined
 | |
| 
 | |
|   const account = options.accountId
 | |
|     ? { id: options.accountId }
 | |
|     : undefined
 | |
| 
 | |
|   const body = {
 | |
|     account,
 | |
|     video,
 | |
|     comment,
 | |
| 
 | |
|     reason: options.reason,
 | |
|     predefinedReasons: options.predefinedReasons
 | |
|   }
 | |
| 
 | |
|   return makePostBodyRequest({
 | |
|     url: options.url,
 | |
|     path,
 | |
|     token: options.token,
 | |
| 
 | |
|     fields: body,
 | |
|     statusCodeExpected: options.statusCodeExpected || HttpStatusCode.OK_200
 | |
|   })
 | |
| }
 | |
| 
 | |
| function getAdminAbusesList (options: {
 | |
|   url: string
 | |
|   token: string
 | |
| 
 | |
|   start?: number
 | |
|   count?: number
 | |
|   sort?: string
 | |
| 
 | |
|   id?: number
 | |
|   predefinedReason?: AbusePredefinedReasonsString
 | |
|   search?: string
 | |
|   filter?: AbuseFilter
 | |
|   state?: AbuseState
 | |
|   videoIs?: AbuseVideoIs
 | |
|   searchReporter?: string
 | |
|   searchReportee?: string
 | |
|   searchVideo?: string
 | |
|   searchVideoChannel?: string
 | |
| }) {
 | |
|   const {
 | |
|     url,
 | |
|     token,
 | |
|     start,
 | |
|     count,
 | |
|     sort,
 | |
|     id,
 | |
|     predefinedReason,
 | |
|     search,
 | |
|     filter,
 | |
|     state,
 | |
|     videoIs,
 | |
|     searchReporter,
 | |
|     searchReportee,
 | |
|     searchVideo,
 | |
|     searchVideoChannel
 | |
|   } = options
 | |
|   const path = '/api/v1/abuses'
 | |
| 
 | |
|   const query = {
 | |
|     id,
 | |
|     predefinedReason,
 | |
|     search,
 | |
|     state,
 | |
|     filter,
 | |
|     videoIs,
 | |
|     start,
 | |
|     count,
 | |
|     sort: sort || 'createdAt',
 | |
|     searchReporter,
 | |
|     searchReportee,
 | |
|     searchVideo,
 | |
|     searchVideoChannel
 | |
|   }
 | |
| 
 | |
|   return makeGetRequest({
 | |
|     url,
 | |
|     path,
 | |
|     token,
 | |
|     query,
 | |
|     statusCodeExpected: HttpStatusCode.OK_200
 | |
|   })
 | |
| }
 | |
| 
 | |
| function getUserAbusesList (options: {
 | |
|   url: string
 | |
|   token: string
 | |
| 
 | |
|   start?: number
 | |
|   count?: number
 | |
|   sort?: string
 | |
| 
 | |
|   id?: number
 | |
|   search?: string
 | |
|   state?: AbuseState
 | |
| }) {
 | |
|   const {
 | |
|     url,
 | |
|     token,
 | |
|     start,
 | |
|     count,
 | |
|     sort,
 | |
|     id,
 | |
|     search,
 | |
|     state
 | |
|   } = options
 | |
|   const path = '/api/v1/users/me/abuses'
 | |
| 
 | |
|   const query = {
 | |
|     id,
 | |
|     search,
 | |
|     state,
 | |
|     start,
 | |
|     count,
 | |
|     sort: sort || 'createdAt'
 | |
|   }
 | |
| 
 | |
|   return makeGetRequest({
 | |
|     url,
 | |
|     path,
 | |
|     token,
 | |
|     query,
 | |
|     statusCodeExpected: HttpStatusCode.OK_200
 | |
|   })
 | |
| }
 | |
| 
 | |
| function updateAbuse (
 | |
|   url: string,
 | |
|   token: string,
 | |
|   abuseId: number,
 | |
|   body: AbuseUpdate,
 | |
|   statusCodeExpected = HttpStatusCode.NO_CONTENT_204
 | |
| ) {
 | |
|   const path = '/api/v1/abuses/' + abuseId
 | |
| 
 | |
|   return makePutBodyRequest({
 | |
|     url,
 | |
|     token,
 | |
|     path,
 | |
|     fields: body,
 | |
|     statusCodeExpected
 | |
|   })
 | |
| }
 | |
| 
 | |
| function deleteAbuse (url: string, token: string, abuseId: number, statusCodeExpected = HttpStatusCode.NO_CONTENT_204) {
 | |
|   const path = '/api/v1/abuses/' + abuseId
 | |
| 
 | |
|   return makeDeleteRequest({
 | |
|     url,
 | |
|     token,
 | |
|     path,
 | |
|     statusCodeExpected
 | |
|   })
 | |
| }
 | |
| 
 | |
| function listAbuseMessages (url: string, token: string, abuseId: number, statusCodeExpected = HttpStatusCode.OK_200) {
 | |
|   const path = '/api/v1/abuses/' + abuseId + '/messages'
 | |
| 
 | |
|   return makeGetRequest({
 | |
|     url,
 | |
|     token,
 | |
|     path,
 | |
|     statusCodeExpected
 | |
|   })
 | |
| }
 | |
| 
 | |
| function deleteAbuseMessage (
 | |
|   url: string,
 | |
|   token: string,
 | |
|   abuseId: number,
 | |
|   messageId: number,
 | |
|   statusCodeExpected = HttpStatusCode.NO_CONTENT_204
 | |
| ) {
 | |
|   const path = '/api/v1/abuses/' + abuseId + '/messages/' + messageId
 | |
| 
 | |
|   return makeDeleteRequest({
 | |
|     url,
 | |
|     token,
 | |
|     path,
 | |
|     statusCodeExpected
 | |
|   })
 | |
| }
 | |
| 
 | |
| function addAbuseMessage (url: string, token: string, abuseId: number, message: string, statusCodeExpected = HttpStatusCode.OK_200) {
 | |
|   const path = '/api/v1/abuses/' + abuseId + '/messages'
 | |
| 
 | |
|   return makePostBodyRequest({
 | |
|     url,
 | |
|     token,
 | |
|     path,
 | |
|     fields: { message },
 | |
|     statusCodeExpected
 | |
|   })
 | |
| }
 | |
| 
 | |
| // ---------------------------------------------------------------------------
 | |
| 
 | |
| export {
 | |
|   reportAbuse,
 | |
|   getAdminAbusesList,
 | |
|   updateAbuse,
 | |
|   deleteAbuse,
 | |
|   getUserAbusesList,
 | |
|   listAbuseMessages,
 | |
|   deleteAbuseMessage,
 | |
|   addAbuseMessage
 | |
| }
 |