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 {
|
export class IdNotService {
|
||||||
static async exchangeCodeForTokens(code: string) {
|
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 = {
|
const params = {
|
||||||
client_id: process.env.IDNOT_CLIENT_ID,
|
client_id: IDNOT_CLIENT_ID,
|
||||||
client_secret: process.env.IDNOT_CLIENT_SECRET,
|
client_secret: IDNOT_CLIENT_SECRET,
|
||||||
redirect_uri: process.env.IDNOT_REDIRECT_URI,
|
redirect_uri: IDNOT_REDIRECT_URI,
|
||||||
grant_type: 'authorization_code',
|
grant_type: 'authorization_code',
|
||||||
code: code
|
code
|
||||||
};
|
};
|
||||||
|
|
||||||
const tokens = await (
|
const response = await fetch(IDNOT_TOKEN_URL, {
|
||||||
await fetch(process.env.IDNOT_TOKEN_URL, {
|
method: 'POST',
|
||||||
method: 'POST',
|
headers: {
|
||||||
headers: {
|
'Content-Type': 'application/x-www-form-urlencoded',
|
||||||
'Content-Type': 'application/x-www-form-urlencoded',
|
},
|
||||||
},
|
body: new URLSearchParams(params).toString()
|
||||||
body: new URLSearchParams(params).toString()
|
});
|
||||||
})
|
|
||||||
).json();
|
|
||||||
|
|
||||||
return tokens;
|
if (!response.ok) {
|
||||||
|
throw new Error(`Token exchange failed: ${response.status} ${response.statusText}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
return response.json();
|
||||||
}
|
}
|
||||||
|
|
||||||
static async getUserRattachements(idNot: string) {
|
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({
|
const searchParams = new URLSearchParams({
|
||||||
key: process.env.IDNOT_API_KEY || '',
|
key: IDNOT_API_KEY,
|
||||||
deleted: 'false'
|
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 (
|
const response = await fetch(url, { method: 'GET' });
|
||||||
await fetch(url, {
|
|
||||||
method: 'GET'
|
|
||||||
})
|
|
||||||
).json();
|
|
||||||
|
|
||||||
return json;
|
if (!response.ok) {
|
||||||
|
throw new Error(`Failed to fetch rattachements: ${response.status} ${response.statusText}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
return response.json();
|
||||||
}
|
}
|
||||||
|
|
||||||
static async getOfficeRattachements(idNot: string) {
|
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({
|
const searchParams = new URLSearchParams({
|
||||||
key: process.env.IDNOT_API_KEY || '',
|
key: IDNOT_API_KEY,
|
||||||
deleted: 'false'
|
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 (
|
const json = await (
|
||||||
await fetch(url, {
|
await fetch(url, {
|
||||||
@ -59,12 +84,18 @@ export class IdNotService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static async getUserData(profileIdn: string) {
|
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({
|
const searchParams = new URLSearchParams({
|
||||||
key: process.env.IDNOT_API_KEY || ''
|
key: IDNOT_API_KEY
|
||||||
});
|
});
|
||||||
|
|
||||||
const userData = await (
|
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'
|
method: 'GET'
|
||||||
})
|
})
|
||||||
).json();
|
).json();
|
||||||
@ -73,12 +104,18 @@ export class IdNotService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static async getOfficeLocationData(locationsUrl: string) {
|
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({
|
const searchParams = new URLSearchParams({
|
||||||
key: process.env.IDNOT_API_KEY || ''
|
key: IDNOT_API_KEY
|
||||||
});
|
});
|
||||||
|
|
||||||
const officeLocationData = await (
|
const officeLocationData = await (
|
||||||
await fetch(`${process.env.API_BASE_URL}${locationsUrl}?` + searchParams, {
|
await fetch(`${IDNOT_API_BASE_URL}${locationsUrl}?` + searchParams, {
|
||||||
method: 'GET'
|
method: 'GET'
|
||||||
})
|
})
|
||||||
).json();
|
).json();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user