47 lines
1.2 KiB
TypeScript
47 lines
1.2 KiB
TypeScript
import { inject, injectable } from "tsyringe";
|
|
import { WifiScanRepository } from "../repositories/wifiScanRepository";
|
|
import { WifiLocationRepository } from "../repositories/wifiLocationRepository";
|
|
|
|
interface CreateWifiLocationParams {
|
|
mac: string;
|
|
latitude: number;
|
|
longitude: number;
|
|
}
|
|
|
|
interface UpdateWifiLocationParams {
|
|
mac: string;
|
|
latitude: number;
|
|
longitude: number;
|
|
}
|
|
|
|
@injectable()
|
|
export class WifiLocationService {
|
|
constructor(
|
|
@inject(WifiLocationRepository) private repository: WifiLocationRepository
|
|
) {}
|
|
|
|
public async getAllWifiLocations() {
|
|
return this.repository.findAll();
|
|
}
|
|
|
|
public async getWifiLocationById(id: string) {
|
|
return this.repository.findById(id);
|
|
}
|
|
|
|
public async createWifiLocation(data: CreateWifiLocationParams) {
|
|
return this.repository.create(data);
|
|
}
|
|
|
|
public async createWifiLocations(data: CreateWifiLocationParams[]) {
|
|
return await this.repository.createMany(data);
|
|
}
|
|
|
|
public async updateWifiLocation(data: UpdateWifiLocationParams) {
|
|
return this.repository.update(data.mac, data);
|
|
}
|
|
|
|
public async deleteWifiLocation(id: string) {
|
|
return this.repository.delete(id);
|
|
}
|
|
}
|