Skip to content

Commit 2574d14

Browse files
committed
Use meta endpoint for OAuth Provider listing
1 parent 56e9ee8 commit 2574d14

8 files changed

Lines changed: 14 additions & 99 deletions

File tree

src/hooks.client.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,16 @@ import { UserStore } from '$lib/stores/UserStore';
66

77
export async function init() {
88
const {
9-
data: { version, commit, shortLinkUrl, turnstileSiteKey, isUserAuthenticated },
9+
data: { version, commit, shortLinkUrl, turnstileSiteKey, oAuthProviders, isUserAuthenticated },
1010
} = await metaApi.versionGetBackendInfo();
1111

1212
if (version != null) sessionStorage.setItem('backendVersion', String(version));
1313
if (commit != null) sessionStorage.setItem('backendCommit', String(commit));
1414
if (shortLinkUrl != null) sessionStorage.setItem('shortLinkUrl', String(shortLinkUrl));
1515
if (turnstileSiteKey != null)
1616
sessionStorage.setItem('turnstileSiteKey', String(turnstileSiteKey));
17+
if (oAuthProviders != null)
18+
sessionStorage.setItem('oAuthProviders', JSON.stringify(oAuthProviders));
1719

1820
// init client-side stores
1921
initializeDarkModeStore();

src/lib/api/index.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import {
77
Configuration as ConfigurationV1,
88
HubManagementApi as HubManagementV1Api,
99
MetaApi,
10-
OAuthApi,
1110
PublicShockerSharesApi,
1211
SessionsApi,
1312
ShockerSharesApi as ShockerSharesV1Api,

src/lib/api/internal/v1/.openapi-generator/FILES

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ apis/AdminApi.ts
44
apis/HubEndpointsApi.ts
55
apis/HubManagementApi.ts
66
apis/MetaApi.ts
7-
apis/OAuthApi.ts
87
apis/PublicShockerSharesApi.ts
98
apis/SessionsApi.ts
109
apis/ShockerSharesApi.ts

src/lib/api/internal/v1/apis/OAuthApi.ts

Lines changed: 0 additions & 78 deletions
This file was deleted.

src/lib/api/internal/v1/apis/index.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ export * from './AdminApi';
66
export * from './HubEndpointsApi';
77
export * from './HubManagementApi';
88
export * from './MetaApi';
9-
export * from './OAuthApi';
109
export * from './PublicShockerSharesApi';
1110
export * from './SessionsApi';
1211
export * from './ShockerSharesApi';

src/lib/api/internal/v1/models/BackendInfoResponse.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,12 @@ export interface BackendInfoResponse {
5555
* @memberof BackendInfoResponse
5656
*/
5757
turnstileSiteKey: string | null;
58+
/**
59+
*
60+
* @type {Array<string>}
61+
* @memberof BackendInfoResponse
62+
*/
63+
oAuthProviders: Array<string>;
5864
/**
5965
*
6066
* @type {boolean}
@@ -73,6 +79,7 @@ export function instanceOfBackendInfoResponse(value: object): value is BackendIn
7379
if (!('frontendUrl' in value) || value['frontendUrl'] === undefined) return false;
7480
if (!('shortLinkUrl' in value) || value['shortLinkUrl'] === undefined) return false;
7581
if (!('turnstileSiteKey' in value) || value['turnstileSiteKey'] === undefined) return false;
82+
if (!('oAuthProviders' in value) || value['oAuthProviders'] === undefined) return false;
7683
if (!('isUserAuthenticated' in value) || value['isUserAuthenticated'] === undefined) return false;
7784
return true;
7885
}
@@ -93,6 +100,7 @@ export function BackendInfoResponseFromJSONTyped(json: any, ignoreDiscriminator:
93100
'frontendUrl': json['frontendUrl'],
94101
'shortLinkUrl': json['shortLinkUrl'],
95102
'turnstileSiteKey': json['turnstileSiteKey'],
103+
'oAuthProviders': json['oAuthProviders'],
96104
'isUserAuthenticated': json['isUserAuthenticated'],
97105
};
98106
}
@@ -114,6 +122,7 @@ export function BackendInfoResponseToJSONTyped(value?: BackendInfoResponse | nul
114122
'frontendUrl': value['frontendUrl'],
115123
'shortLinkUrl': value['shortLinkUrl'],
116124
'turnstileSiteKey': value['turnstileSiteKey'],
125+
'oAuthProviders': value['oAuthProviders'],
117126
'isUserAuthenticated': value['isUserAuthenticated'],
118127
};
119128
}

src/lib/api/next/oauth.ts

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,8 @@ import type { LoginOkResponse, OAuthFinalizeRequest, OAuthSignupData } from './m
33
import {
44
TransformLoginOkResponse,
55
TransformOAuthSignupData,
6-
ValidateStringArray,
76
} from './transformers';
87

9-
export function OAuthListProviders(): Promise<string[]> {
10-
return GetJson<string[]>('/1/oauth/providers', 200, ValidateStringArray);
11-
}
12-
138
export function GetOAuthAuthorizeUrl(provider: string, flow: 'LoginOrCreate' | 'Link') {
149
const providerEnc = encodeURIComponent(provider);
1510
const flowEnc = encodeURIComponent(flow);

src/routes/(authenticated)/settings/connections/+page.svelte

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import { page } from '$app/state';
77
import { accountV1Api } from '$lib/api';
88
import type { OAuthConnectionResponse } from '$lib/api/internal/v1/models';
9-
import { OAuthListProviders } from '$lib/api/next/oauth';
109
import Container from '$lib/components/Container.svelte';
1110
import { Button } from '$lib/components/ui/button';
1211
import * as Card from '$lib/components/ui/card';
@@ -26,7 +25,7 @@
2625
let queryStatus = $derived(page.url.searchParams.get('status'));
2726
2827
// Data
29-
let providers = $state<string[]>([]);
28+
let providers = $state<string[]>(JSON.parse(sessionStorage.getItem('oAuthProviders') ?? '[]'));
3029
let connections = $state<OAuthConnectionResponse[]>([]);
3130
3231
// Disconnect dialog
@@ -54,16 +53,7 @@
5453
loadingConnections = true;
5554
5655
try {
57-
const [provResp, connResp] = await Promise.all([
58-
OAuthListProviders(),
59-
accountV1Api.authenticatedAccountListOAuthConnections(),
60-
]);
61-
62-
// Normalize providers into a simple { key, label } list.
63-
// We accept several possible backend shapes to be robust.
64-
providers = provResp;
65-
66-
connections = connResp ?? [];
56+
connections = await accountV1Api.authenticatedAccountListOAuthConnections();
6757
} catch (err) {
6858
await handleApiError(err);
6959
} finally {

0 commit comments

Comments
 (0)