50 lines
1.3 KiB
TypeScript
50 lines
1.3 KiB
TypeScript
// src/services/RouterService.ts
|
|
import { RouterRepository } from '../repositories/RouterRepository';
|
|
import { RouterData,VMUpdate} from '../types';
|
|
import { Pool } from 'mysql2/promise';
|
|
|
|
|
|
export class RouterService {
|
|
private repository: RouterRepository;
|
|
|
|
constructor(pool: Pool) {
|
|
this.repository = new RouterRepository(pool);
|
|
}
|
|
|
|
|
|
async updateRouterVMs(routerId: string, vms: VMUpdate[]): Promise<any> {
|
|
console.log('Service: Updating VMs for router:', routerId);
|
|
try {
|
|
return await this.repository.updateVMs(routerId, vms);
|
|
} catch (err) {
|
|
console.error('Service error:', err);
|
|
throw err;
|
|
}
|
|
}
|
|
|
|
async getAllRouters(): Promise<RouterData[]> {
|
|
return this.repository.findAll();
|
|
}
|
|
|
|
async getRouterById(id: number): Promise<RouterData | null> {
|
|
return this.repository.findById(id);
|
|
}
|
|
|
|
async getRoutersByFacility(facility: string): Promise<RouterData[]> {
|
|
return this.repository.findByFacility(facility);
|
|
}
|
|
|
|
async createRouter(router: Partial<RouterData>): Promise<RouterData> {
|
|
return this.repository.create(router);
|
|
}
|
|
|
|
async updateRouter(id: number, router: Partial<RouterData>): Promise<RouterData | null> {
|
|
return this.repository.update(id, router);
|
|
}
|
|
|
|
async deleteRouter(id: number): Promise<boolean> {
|
|
return this.repository.delete(id);
|
|
}
|
|
}
|
|
|