import "dotenv/config";
import { spfi } from "@pnp/sp";
import { SPDefault } from "@pnp/nodejs";
import * as fs from "fs";
import "@pnp/sp/webs";
import "@pnp/sp/lists";
import "@pnp/sp/fields";
const TENANT_ID = process.env.TENANT_ID!;
const CLIENT_ID = process.env.CLIENT_ID!;
const THUMBPRINT = process.env.THUMBPRINT!;
const KEY_PATH = process.env.KEY_PATH!;
const SITE_URL = process.env.SITE_URL!;
const SP_ROOT_URL = process.env.SP_ROOT_URL!;
async function createSessionsList(): Promise<void> {
const privateKey = fs.readFileSync(KEY_PATH, "utf-8").trim();
const sp = spfi(SITE_URL).using(
SPDefault({
baseUrl: SITE_URL,
msal: {
config: {
auth: {
clientId: CLIENT_ID,
authority: `https://login.microsoftonline.com/${TENANT_ID}`,
clientCertificate: {
thumbprint: THUMBPRINT,
privateKey: privateKey
}
}
},
scopes: [`${SP_ROOT_URL}/.default`]
}
})
);
console.log("Création de la liste Sessions...");
await sp.web.lists.add("Sessions", "Liste des sessions de formation", 100);
const list = sp.web.lists.getByTitle("Sessions");
console.log("Ajout des colonnes...");
// Colonnes texte
for (const col of [
"CodeFormation", "HeureDebut", "NumeroSession",
"TypeFormation", "NomClient", "Site",
"CoordinationNom", "CoordinationEmail",
"Modalite", "LienTeams", "LienSupport",
"LienParticipants", "NomAgence", "EmailAgence",
"LienEmargement", "LienEvaluation", "FichierIcs"
]) {