Commit 9430dc5a by Augusto Fonte

import sites kmz

parent 08db2e37
import fs from 'fs';
import AdmZip from 'adm-zip';
import * as AdmZip from 'adm-zip';
import { XMLParser } from 'fast-xml-parser';
import { PrismaClient } from '@prisma/client';
......@@ -19,13 +19,30 @@ async function importKmzToSites(kmzPath: string) {
// 3. Extract Placemarks (handle both array and single object)
const placemarks = (() => {
const doc = kml.kml.Document;
// Check if placemarks are directly in Document
if (Array.isArray(doc.Placemark)) return doc.Placemark;
if (doc.Placemark) return [doc.Placemark];
// Check if placemarks are in a Folder
if (doc.Folder && doc.Folder.Placemark) {
if (Array.isArray(doc.Folder.Placemark)) return doc.Folder.Placemark;
return [doc.Folder.Placemark];
}
return [];
})();
console.log(`Found ${placemarks.length} placemarks`);
for (const placemark of placemarks) {
const name = placemark.name || '';
if (!placemark.Point || !placemark.Point.coordinates) {
console.log('Skipping placemark without Point/coordinates:', name);
continue;
}
const [longitude, latitude] = placemark.Point.coordinates
.split(',')
.map(Number);
......@@ -49,6 +66,8 @@ async function importKmzToSites(kmzPath: string) {
} catch (err) {
console.error(`Failed to import site ${siteCode}:`, err.message);
}
} else {
console.log(`Skipping invalid site: ${siteCode} (missing data)`);
}
}
console.log('Import complete!');
......
......@@ -32,8 +32,8 @@ async function bootstrap() {
// Swagger configuration
const config = new DocumentBuilder()
.setTitle('Cellnex API')
.setDescription('The Cellnex API for managing sites and candidates')
.setTitle('Setling API')
.setDescription('The Setling API for managing sites and Inspections')
.setVersion('1.0')
.addTag('auth', 'Authentication endpoints')
.addTag('users', 'User management endpoints')
......@@ -64,7 +64,7 @@ async function bootstrap() {
SwaggerModule.setup('docs', app, document, swaggerOptions);
const port = process.env.PORT ?? 3001;
const port = process.env.PORT ?? 3004;
await app.listen(port);
console.log(`Application is running on: http://localhost:${port}`);
console.log(
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment