feat(api): add subscription server and client services and interfaces (#1470)

* feat(api): add subscription server and client services and interfaces

* fix(api): linter issues

* feat(models): add subscription invitations

* feat(api): add subscriptions invitation operations on server side

* fix(api): linter issues
This commit is contained in:
Karol Sójko
2022-08-31 16:08:52 +02:00
committed by GitHub
parent 370ce39eba
commit 089d3a2e66
37 changed files with 533 additions and 0 deletions

View File

@@ -0,0 +1,48 @@
import { HttpServiceInterface } from '../../Http/HttpServiceInterface'
import { SubscriptionInviteAcceptRequestParams } from '../../Request/Subscription/SubscriptionInviteAcceptRequestParams'
import { SubscriptionInviteCancelRequestParams } from '../../Request/Subscription/SubscriptionInviteCancelRequestParams'
import { SubscriptionInviteDeclineRequestParams } from '../../Request/Subscription/SubscriptionInviteDeclineRequestParams'
import { SubscriptionInviteListRequestParams } from '../../Request/Subscription/SubscriptionInviteListRequestParams'
import { SubscriptionInviteRequestParams } from '../../Request/Subscription/SubscriptionInviteRequestParams'
import { SubscriptionInviteAcceptResponse } from '../../Response/Subscription/SubscriptionInviteAcceptResponse'
import { SubscriptionInviteCancelResponse } from '../../Response/Subscription/SubscriptionInviteCancelResponse'
import { SubscriptionInviteDeclineResponse } from '../../Response/Subscription/SubscriptionInviteDeclineResponse'
import { SubscriptionInviteListResponse } from '../../Response/Subscription/SubscriptionInviteListResponse'
import { SubscriptionInviteResponse } from '../../Response/Subscription/SubscriptionInviteResponse'
import { Paths } from './Paths'
import { SubscriptionServerInterface } from './SubscriptionServerInterface'
export class SubscriptionServer implements SubscriptionServerInterface {
constructor(private httpService: HttpServiceInterface) {}
async acceptInvite(params: SubscriptionInviteAcceptRequestParams): Promise<SubscriptionInviteAcceptResponse> {
const response = await this.httpService.get(Paths.v1.acceptInvite(params.inviteUuid), params)
return response as SubscriptionInviteAcceptResponse
}
async declineInvite(params: SubscriptionInviteDeclineRequestParams): Promise<SubscriptionInviteDeclineResponse> {
const response = await this.httpService.get(Paths.v1.declineInvite(params.inviteUuid), params)
return response as SubscriptionInviteDeclineResponse
}
async cancelInvite(params: SubscriptionInviteCancelRequestParams): Promise<SubscriptionInviteCancelResponse> {
const response = await this.httpService.delete(Paths.v1.cancelInvite(params.inviteUuid), params)
return response as SubscriptionInviteCancelResponse
}
async listInvites(params: SubscriptionInviteListRequestParams): Promise<SubscriptionInviteListResponse> {
const response = await this.httpService.get(Paths.v1.listInvites, params)
return response as SubscriptionInviteListResponse
}
async invite(params: SubscriptionInviteRequestParams): Promise<SubscriptionInviteResponse> {
const response = await this.httpService.post(Paths.v1.invite, params)
return response as SubscriptionInviteResponse
}
}