Ensure environment variables are validated as strings for fetch calls
All checks were successful
Build and Push to Registry / build-and-push (push) Successful in 47s
All checks were successful
Build and Push to Registry / build-and-push (push) Successful in 47s
This commit is contained in:
parent
7d102772d9
commit
e6fd9192b1
@ -3,51 +3,76 @@ import { IdNotUser, ECivility, EOfficeStatus, EIdnotRole } from '../../types';
|
||||
|
||||
export class IdNotService {
|
||||
static async exchangeCodeForTokens(code: string) {
|
||||
const {
|
||||
IDNOT_CLIENT_ID,
|
||||
IDNOT_CLIENT_SECRET,
|
||||
IDNOT_REDIRECT_URI,
|
||||
IDNOT_TOKEN_URL
|
||||
} = process.env;
|
||||
|
||||
if (!IDNOT_CLIENT_ID || !IDNOT_CLIENT_SECRET || !IDNOT_REDIRECT_URI || !IDNOT_TOKEN_URL) {
|
||||
throw new Error('Missing IDnot environment variables');
|
||||
}
|
||||
|
||||
const params = {
|
||||
client_id: process.env.IDNOT_CLIENT_ID,
|
||||
client_secret: process.env.IDNOT_CLIENT_SECRET,
|
||||
redirect_uri: process.env.IDNOT_REDIRECT_URI,
|
||||
client_id: IDNOT_CLIENT_ID,
|
||||
client_secret: IDNOT_CLIENT_SECRET,
|
||||
redirect_uri: IDNOT_REDIRECT_URI,
|
||||
grant_type: 'authorization_code',
|
||||
code: code
|
||||
code
|
||||
};
|
||||
|
||||
const tokens = await (
|
||||
await fetch(process.env.IDNOT_TOKEN_URL, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/x-www-form-urlencoded',
|
||||
},
|
||||
body: new URLSearchParams(params).toString()
|
||||
})
|
||||
).json();
|
||||
const response = await fetch(IDNOT_TOKEN_URL, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/x-www-form-urlencoded',
|
||||
},
|
||||
body: new URLSearchParams(params).toString()
|
||||
});
|
||||
|
||||
return tokens;
|
||||
if (!response.ok) {
|
||||
throw new Error(`Token exchange failed: ${response.status} ${response.statusText}`);
|
||||
}
|
||||
|
||||
return response.json();
|
||||
}
|
||||
|
||||
static async getUserRattachements(idNot: string) {
|
||||
const { IDNOT_API_KEY, IDNOT_ANNUARY_BASE_URL } = process.env;
|
||||
|
||||
if (!IDNOT_API_KEY || !IDNOT_ANNUARY_BASE_URL) {
|
||||
throw new Error('Missing IDnot API key or annuary base URL');
|
||||
}
|
||||
|
||||
const searchParams = new URLSearchParams({
|
||||
key: process.env.IDNOT_API_KEY || '',
|
||||
key: IDNOT_API_KEY,
|
||||
deleted: 'false'
|
||||
});
|
||||
|
||||
const url = `${process.env.IDNOT_ANNUARY_BASE_URL}/api/pp/v2/personnes/${idNot}/rattachements?` + searchParams;
|
||||
const url = `${IDNOT_ANNUARY_BASE_URL}/api/pp/v2/personnes/${idNot}/rattachements?${searchParams}`;
|
||||
|
||||
const json = await (
|
||||
await fetch(url, {
|
||||
method: 'GET'
|
||||
})
|
||||
).json();
|
||||
const response = await fetch(url, { method: 'GET' });
|
||||
|
||||
return json;
|
||||
if (!response.ok) {
|
||||
throw new Error(`Failed to fetch rattachements: ${response.status} ${response.statusText}`);
|
||||
}
|
||||
|
||||
return response.json();
|
||||
}
|
||||
|
||||
static async getOfficeRattachements(idNot: string) {
|
||||
const { IDNOT_API_KEY, IDNOT_ANNUARY_BASE_URL } = process.env;
|
||||
|
||||
if (!IDNOT_API_KEY || !IDNOT_ANNUARY_BASE_URL) {
|
||||
throw new Error('Missing IDnot API key or annuary base URL');
|
||||
}
|
||||
|
||||
const searchParams = new URLSearchParams({
|
||||
key: process.env.IDNOT_API_KEY || '',
|
||||
key: IDNOT_API_KEY,
|
||||
deleted: 'false'
|
||||
});
|
||||
|
||||
const url = `${process.env.IDNOT_ANNUARY_BASE_URL}/api/pp/v2/entites/${idNot}/personnes?` + searchParams;
|
||||
const url = `${IDNOT_ANNUARY_BASE_URL}/api/pp/v2/entites/${idNot}/personnes?` + searchParams;
|
||||
|
||||
const json = await (
|
||||
await fetch(url, {
|
||||
@ -59,12 +84,18 @@ export class IdNotService {
|
||||
}
|
||||
|
||||
static async getUserData(profileIdn: string) {
|
||||
const { IDNOT_API_KEY, IDNOT_API_BASE_URL } = process.env;
|
||||
|
||||
if (!IDNOT_API_KEY || !IDNOT_API_BASE_URL) {
|
||||
throw new Error('Missing IDnot API key or base URL');
|
||||
}
|
||||
|
||||
const searchParams = new URLSearchParams({
|
||||
key: process.env.IDNOT_API_KEY || ''
|
||||
key: IDNOT_API_KEY
|
||||
});
|
||||
|
||||
const userData = await (
|
||||
await fetch(`${process.env.API_BASE_URL}/api/pp/v2/rattachements/${profileIdn}?` + searchParams, {
|
||||
await fetch(`${IDNOT_API_BASE_URL}/api/pp/v2/rattachements/${profileIdn}?` + searchParams, {
|
||||
method: 'GET'
|
||||
})
|
||||
).json();
|
||||
@ -73,12 +104,18 @@ export class IdNotService {
|
||||
}
|
||||
|
||||
static async getOfficeLocationData(locationsUrl: string) {
|
||||
const { IDNOT_API_KEY, IDNOT_API_BASE_URL } = process.env;
|
||||
|
||||
if (!IDNOT_API_KEY || !IDNOT_API_BASE_URL) {
|
||||
throw new Error('Missing IDnot API key or base URL');
|
||||
}
|
||||
|
||||
const searchParams = new URLSearchParams({
|
||||
key: process.env.IDNOT_API_KEY || ''
|
||||
key: IDNOT_API_KEY
|
||||
});
|
||||
|
||||
const officeLocationData = await (
|
||||
await fetch(`${process.env.API_BASE_URL}${locationsUrl}?` + searchParams, {
|
||||
await fetch(`${IDNOT_API_BASE_URL}${locationsUrl}?` + searchParams, {
|
||||
method: 'GET'
|
||||
})
|
||||
).json();
|
||||
|
Loading…
x
Reference in New Issue
Block a user