add membership features endpoint and use it in mobile
This commit is contained in:
1 parent
091cb5ba85
commit
50ece15089
4 files changed
+90
-6
No files matched your search
@@ -51,6 +51,15 @@ interface UsersListResponse {
|
||||
}>;
|
||||
}
|
||||
|
||||
interface MembershipFeaturesResponse {
|
||||
success: boolean;
|
||||
data: {
|
||||
membershipType: MembershipType;
|
||||
currentFeatures: MembershipFeatures;
|
||||
plans: Record<MembershipType, MembershipFeatures>;
|
||||
};
|
||||
}
|
||||
|
||||
function isMembershipType(value: unknown): value is MembershipType {
|
||||
return value === "basic" || value === "premium" || value === "vip";
|
||||
}
|
||||
@@ -85,3 +94,35 @@ export function getMembershipFeatures(
|
||||
): MembershipFeatures {
|
||||
return MEMBERSHIP_FEATURES[membershipType];
|
||||
}
|
||||
|
||||
export async function getCurrentMembershipFeaturesFromServer(
|
||||
token: string | null,
|
||||
): Promise<{
|
||||
membershipType: MembershipType;
|
||||
features: MembershipFeatures;
|
||||
}> {
|
||||
if (!token) {
|
||||
return {
|
||||
membershipType: "basic",
|
||||
features: MEMBERSHIP_FEATURES.basic,
|
||||
};
|
||||
}
|
||||
|
||||
const response = await apiClient.get<MembershipFeaturesResponse>(
|
||||
API_ENDPOINTS.MEMBERSHIP.FEATURES,
|
||||
withAuth(token),
|
||||
);
|
||||
|
||||
const data = response.data?.data;
|
||||
if (!data) {
|
||||
return {
|
||||
membershipType: "basic",
|
||||
features: MEMBERSHIP_FEATURES.basic,
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
membershipType: data.membershipType,
|
||||
features: data.currentFeatures,
|
||||
};
|
||||
}
|
||||
Reference in new issue
Block a user