113 lines
2.3 KiB
TypeScript
113 lines
2.3 KiB
TypeScript
|
import * as request from 'supertest'
|
||
|
import { AbusePredefinedReasonsString, AbuseState, AbuseUpdate, AbuseVideoIs } from '@shared/models'
|
||
|
import { makeDeleteRequest, makeGetRequest, makePutBodyRequest } from '../requests/requests'
|
||
|
|
||
|
function reportAbuse (
|
||
|
url: string,
|
||
|
token: string,
|
||
|
videoId: number | string,
|
||
|
reason: string,
|
||
|
predefinedReasons?: AbusePredefinedReasonsString[],
|
||
|
startAt?: number,
|
||
|
endAt?: number,
|
||
|
specialStatus = 200
|
||
|
) {
|
||
|
const path = '/api/v1/videos/' + videoId + '/abuse'
|
||
|
|
||
|
return request(url)
|
||
|
.post(path)
|
||
|
.set('Accept', 'application/json')
|
||
|
.set('Authorization', 'Bearer ' + token)
|
||
|
.send({ reason, predefinedReasons, startAt, endAt })
|
||
|
.expect(specialStatus)
|
||
|
}
|
||
|
|
||
|
function getAbusesList (options: {
|
||
|
url: string
|
||
|
token: string
|
||
|
id?: number
|
||
|
predefinedReason?: AbusePredefinedReasonsString
|
||
|
search?: string
|
||
|
state?: AbuseState
|
||
|
videoIs?: AbuseVideoIs
|
||
|
searchReporter?: string
|
||
|
searchReportee?: string
|
||
|
searchVideo?: string
|
||
|
searchVideoChannel?: string
|
||
|
}) {
|
||
|
const {
|
||
|
url,
|
||
|
token,
|
||
|
id,
|
||
|
predefinedReason,
|
||
|
search,
|
||
|
state,
|
||
|
videoIs,
|
||
|
searchReporter,
|
||
|
searchReportee,
|
||
|
searchVideo,
|
||
|
searchVideoChannel
|
||
|
} = options
|
||
|
const path = '/api/v1/videos/abuse'
|
||
|
|
||
|
const query = {
|
||
|
sort: 'createdAt',
|
||
|
id,
|
||
|
predefinedReason,
|
||
|
search,
|
||
|
state,
|
||
|
videoIs,
|
||
|
searchReporter,
|
||
|
searchReportee,
|
||
|
searchVideo,
|
||
|
searchVideoChannel
|
||
|
}
|
||
|
|
||
|
return makeGetRequest({
|
||
|
url,
|
||
|
path,
|
||
|
token,
|
||
|
query,
|
||
|
statusCodeExpected: 200
|
||
|
})
|
||
|
}
|
||
|
|
||
|
function updateAbuse (
|
||
|
url: string,
|
||
|
token: string,
|
||
|
videoId: string | number,
|
||
|
videoAbuseId: number,
|
||
|
body: AbuseUpdate,
|
||
|
statusCodeExpected = 204
|
||
|
) {
|
||
|
const path = '/api/v1/videos/' + videoId + '/abuse/' + videoAbuseId
|
||
|
|
||
|
return makePutBodyRequest({
|
||
|
url,
|
||
|
token,
|
||
|
path,
|
||
|
fields: body,
|
||
|
statusCodeExpected
|
||
|
})
|
||
|
}
|
||
|
|
||
|
function deleteAbuse (url: string, token: string, videoId: string | number, videoAbuseId: number, statusCodeExpected = 204) {
|
||
|
const path = '/api/v1/videos/' + videoId + '/abuse/' + videoAbuseId
|
||
|
|
||
|
return makeDeleteRequest({
|
||
|
url,
|
||
|
token,
|
||
|
path,
|
||
|
statusCodeExpected
|
||
|
})
|
||
|
}
|
||
|
|
||
|
// ---------------------------------------------------------------------------
|
||
|
|
||
|
export {
|
||
|
reportAbuse,
|
||
|
getAbusesList,
|
||
|
updateAbuse,
|
||
|
deleteAbuse
|
||
|
}
|