"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ingestJobOffers = void 0; const client_1 = require("@prisma/client"); const FranceTravailService_1 = __importDefault(require("../services/FranceTravailService")); const prisma = new client_1.PrismaClient(); const ingestJobOffers = async (req, res) => { try { const jobOffers = await FranceTravailService_1.default.getJobOffers({ range: '0-149' }); for (const offre of jobOffers.resultats) { const mappedOffer = { id: offre.id, title: offre.intitule, description: offre.description, publicationDate: new Date(offre.dateCreation), romeCode: offre.romeCode, romeLabel: offre.romeLibelle, locationLabel: offre.lieuTravail?.libelle || null, postalCode: offre.lieuTravail?.codePostal || null, departmentCode: offre.lieuTravail?.codeDepartement || null, cityName: offre.lieuTravail?.ville || null, companyName: offre.entreprise?.nom || null, contractType: offre.typeContrat, contractLabel: offre.libelleTypeContrat, }; await prisma.jobOffer.upsert({ where: { id: mappedOffer.id }, update: mappedOffer, create: mappedOffer, }); } res.status(200).json({ message: 'Job offers ingested successfully', count: jobOffers.resultats.length, }); } catch (error) { console.error('Error ingesting job offers:', error); res.status(500).json({ error: 'Failed to ingest job offers' }); } }; exports.ingestJobOffers = ingestJobOffers;