diff --git a/src/lib/sdk/billing.ts b/src/lib/sdk/billing.ts index a665d2e72..b3e6736c2 100644 --- a/src/lib/sdk/billing.ts +++ b/src/lib/sdk/billing.ts @@ -705,6 +705,14 @@ export class Billing { ); } + async setMembership(programId: string): Promise { + const path = `/console/programs/${programId}/memberships`; + const uri = new URL(this.client.config.endpoint + path); + return await this.client.call('POST', uri, { + 'content-type': 'application/json' + }); + } + async getCoupon(couponId: string): Promise { const path = `/console/coupons/${couponId}`; const params = { diff --git a/src/routes/(public)/(guest)/register/github-education-program/+page.svelte b/src/routes/(public)/(guest)/register/github-education-program/+page.svelte index 59a2f6567..d29f1b8e5 100644 --- a/src/routes/(public)/(guest)/register/github-education-program/+page.svelte +++ b/src/routes/(public)/(guest)/register/github-education-program/+page.svelte @@ -28,10 +28,11 @@ } function onGithubLogin() { + localStorage.setItem('githubEducationProgram', 'true'); sdk.forConsole.account.createOAuth2Session( OAuthProvider.Github, - window.location.origin, - window.location.origin, + window.location.origin + '/console/register/github-education-program?success', + window.location.origin + '/console/register/github-education-program?failure', ['read:user', 'user:email'] ); } @@ -71,7 +72,7 @@ Enjoy Appwrite Cloud for free throughout your student journey as part of the GitHub Student Developer Pack.

- diff --git a/src/routes/+page.ts b/src/routes/+page.ts index 7b9cc7c70..7720af4cc 100644 --- a/src/routes/+page.ts +++ b/src/routes/+page.ts @@ -1,6 +1,7 @@ import { redirect } from '@sveltejs/kit'; import { base } from '$app/paths'; import type { PageLoad } from './$types'; +import { sdk } from '$lib/stores/sdk'; export const load: PageLoad = async ({ parent, url }) => { const { organizations, account } = await parent(); @@ -13,6 +14,12 @@ export const load: PageLoad = async ({ parent, url }) => { redirect(303, `${base}/organization-${teamId}${url.search}`); } } else { + const didRegisterGithubEducationProgram = + localStorage.getItem('githubEducationProgram') === 'true'; + localStorage.removeItem('githubEducationProgram'); + if (didRegisterGithubEducationProgram) { + await sdk.forConsole.billing.setMembership('github-student-developer'); + } redirect(303, `${base}/onboarding${url.search}`); } };