Skip to content

Commit 8a66387

Browse files
committed
feat: ajout du provider proconnect
1 parent 4c96907 commit 8a66387

3 files changed

Lines changed: 26 additions & 1 deletion

File tree

src/config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ export const config = {
3131
port: ensureEnvVar("CHARON_PROXY_PORT", Number, 4501),
3232
},
3333
},
34-
providers: ["github", "moncomptepro", "moncompteprotest"] as const,
34+
providers: ["github", "moncomptepro", "moncompteprotest", "proconnect", "proconnecttest"] as const,
3535
} as const;
3636

3737
export const envClientConfig = times(10)

src/provider/impl/proconnect.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import axios from "axios";
2+
3+
import { type WellKnown } from "../../utils/well-known";
4+
import { type Provider } from "../Provider";
5+
6+
const base = (testServer = false): Provider => ({
7+
getIssuer(pathname = "", params?: Record<string, string>): string {
8+
const baseUrl = testServer
9+
? "https://app.sandbox.agentconnect.gouv.fr"
10+
: "https://app.agentconnect.gouv.fr";
11+
return `${baseUrl}/${pathname.replace(/^\//, "")}${params ? `?${new URLSearchParams(params).toString()}` : ""}`;
12+
},
13+
14+
async getWellKnown(): Promise<WellKnown> {
15+
const providerWellKnown = await axios.get<WellKnown>(this.getIssuer(".well-known/openid-configuration"));
16+
17+
return providerWellKnown.data;
18+
},
19+
});
20+
21+
export const proconnect = base();
22+
export const proconnecttest = base(true);

src/provider/index.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { type CharonClient } from "../client/types";
22
import { type config } from "../config";
33
import { github } from "./impl/github";
44
import { moncomptepro, moncompteprotest } from "./impl/moncomptepro";
5+
import { proconnect, proconnecttest } from "./impl/proconnect";
56
import { type Provider } from "./Provider";
67

78
export type ProviderType = (typeof config.providers)[number];
@@ -10,6 +11,8 @@ export const providers: Record<ProviderType, Provider> = {
1011
github,
1112
moncomptepro,
1213
moncompteprotest,
14+
proconnect,
15+
proconnecttest,
1316
};
1417

1518
export function getProvider(providerType: CharonClient["provider"]): Provider {

0 commit comments

Comments
 (0)