import { HttpStatusCode , ResultList , VideoChangeOwnership } from '@shared/models' ; import { AbstractCommand , OverrideCommandOptions } from '../shared' ; export class ChangeOwnershipCommand extends AbstractCommand { create ( options ) { const { videoId , username } = options ; const path = '/api/v1/videos/' + videoId + '/give-ownership' ; return this . postBodyRequest ( { ... options , path , fields : { username } , implicitToken : true , defaultExpectedStatus : HttpStatusCode . NO_CONTENT_204 } ) ; } list ( options = { } ) { const path = '/api/v1/videos/ownership' ; return this . getRequestBody < ResultList < VideoChangeOwnership > > ( { ... options , path , query : { sort : '-createdAt' } , implicitToken : true , defaultExpectedStatus : HttpStatusCode . OK_200 } ) ; } accept ( options ) { const { ownershipId , channelId } = options ; const path = '/api/v1/videos/ownership/' + ownershipId + '/accept' ; return this . postBodyRequest ( { ... options , path , fields : { channelId } , implicitToken : true , defaultExpectedStatus : HttpStatusCode . NO_CONTENT_204 } ) ; } refuse ( options ) { const { ownershipId } = options ; const path = '/api/v1/videos/ownership/' + ownershipId + '/refuse' ; return this . postBodyRequest ( { ... options , path , implicitToken : true , defaultExpectedStatus : HttpStatusCode . NO_CONTENT_204 } ) ; } }