refactor: native feature management (#2350)
This commit is contained in:
@@ -6,13 +6,23 @@ const SharingPaths = {
|
||||
listInvites: '/v1/subscription-invites',
|
||||
}
|
||||
|
||||
const UserSubscriptionPaths = {
|
||||
subscription: (userUuid: string) => `/v1/users/${userUuid}/subscription`,
|
||||
}
|
||||
|
||||
const ApplePaths = {
|
||||
confirmAppleIAP: '/v1/subscriptions/apple_iap_confirm',
|
||||
}
|
||||
|
||||
const UnauthenticatedSubscriptionsPaths = {
|
||||
availableSubscriptions: '/v2/subscriptions',
|
||||
}
|
||||
|
||||
export const Paths = {
|
||||
v1: {
|
||||
...SharingPaths,
|
||||
...ApplePaths,
|
||||
...UserSubscriptionPaths,
|
||||
...UnauthenticatedSubscriptionsPaths,
|
||||
},
|
||||
}
|
||||
|
||||
@@ -11,10 +11,11 @@ import { SubscriptionInviteCancelResponseBody } from '../../Response/Subscriptio
|
||||
import { SubscriptionInviteDeclineResponseBody } from '../../Response/Subscription/SubscriptionInviteDeclineResponseBody'
|
||||
import { SubscriptionInviteListResponseBody } from '../../Response/Subscription/SubscriptionInviteListResponseBody'
|
||||
import { SubscriptionInviteResponseBody } from '../../Response/Subscription/SubscriptionInviteResponseBody'
|
||||
import { HttpResponse } from '@standardnotes/responses'
|
||||
import { GetAvailableSubscriptionsResponse, GetSubscriptionResponse, HttpResponse } from '@standardnotes/responses'
|
||||
|
||||
import { Paths } from './Paths'
|
||||
import { SubscriptionServerInterface } from './SubscriptionServerInterface'
|
||||
import { GetUserSubscriptionRequestParams } from '../../Request/Subscription/GetUserSubscriptionRequestParams'
|
||||
|
||||
export class SubscriptionServer implements SubscriptionServerInterface {
|
||||
constructor(private httpService: HttpServiceInterface) {}
|
||||
@@ -50,4 +51,12 @@ export class SubscriptionServer implements SubscriptionServerInterface {
|
||||
async confirmAppleIAP(params: AppleIAPConfirmRequestParams): Promise<HttpResponse<AppleIAPConfirmResponseBody>> {
|
||||
return this.httpService.post(Paths.v1.confirmAppleIAP, params)
|
||||
}
|
||||
|
||||
async getUserSubscription(params: GetUserSubscriptionRequestParams): Promise<HttpResponse<GetSubscriptionResponse>> {
|
||||
return this.httpService.get(Paths.v1.subscription(params.userUuid), params)
|
||||
}
|
||||
|
||||
async getAvailableSubscriptions(): Promise<HttpResponse<GetAvailableSubscriptionsResponse>> {
|
||||
return this.httpService.get(Paths.v1.availableSubscriptions)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,7 +11,8 @@ import { SubscriptionInviteCancelResponseBody } from '../../Response/Subscriptio
|
||||
import { SubscriptionInviteDeclineResponseBody } from '../../Response/Subscription/SubscriptionInviteDeclineResponseBody'
|
||||
import { SubscriptionInviteListResponseBody } from '../../Response/Subscription/SubscriptionInviteListResponseBody'
|
||||
import { SubscriptionInviteResponseBody } from '../../Response/Subscription/SubscriptionInviteResponseBody'
|
||||
import { HttpResponse } from '@standardnotes/responses'
|
||||
import { GetAvailableSubscriptionsResponse, GetSubscriptionResponse, HttpResponse } from '@standardnotes/responses'
|
||||
import { GetUserSubscriptionRequestParams } from '../../Request/Subscription/GetUserSubscriptionRequestParams'
|
||||
|
||||
export interface SubscriptionServerInterface {
|
||||
invite(params: SubscriptionInviteRequestParams): Promise<HttpResponse<SubscriptionInviteResponseBody>>
|
||||
@@ -25,5 +26,9 @@ export interface SubscriptionServerInterface {
|
||||
params: SubscriptionInviteCancelRequestParams,
|
||||
): Promise<HttpResponse<SubscriptionInviteCancelResponseBody>>
|
||||
listInvites(params: SubscriptionInviteListRequestParams): Promise<HttpResponse<SubscriptionInviteListResponseBody>>
|
||||
|
||||
confirmAppleIAP(params: AppleIAPConfirmRequestParams): Promise<HttpResponse<AppleIAPConfirmResponseBody>>
|
||||
|
||||
getUserSubscription(params: GetUserSubscriptionRequestParams): Promise<HttpResponse<GetSubscriptionResponse>>
|
||||
getAvailableSubscriptions(): Promise<HttpResponse<GetAvailableSubscriptionsResponse>>
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user