48 lines
1.1 KiB
TypeScript
48 lines
1.1 KiB
TypeScript
import { inject, injectable } from "tsyringe";
|
|
import { WifiScanRepository } from "../repositories/wifiScanRepository";
|
|
|
|
interface CreateWifiScanParams {
|
|
lp_ttn_end_device_uplinks_id: string;
|
|
mac: string;
|
|
rssi: number;
|
|
scanned_at_utc?: Date;
|
|
}
|
|
|
|
interface UpdateWifiScanParams {
|
|
wifi_scan_id: string;
|
|
mac?: string;
|
|
rssi?: number;
|
|
scanned_at_utc?: Date;
|
|
}
|
|
|
|
@injectable()
|
|
export class WifiScanService {
|
|
constructor(
|
|
@inject(WifiScanRepository) private repository: WifiScanRepository
|
|
) {}
|
|
|
|
public async getAllWifiScans() {
|
|
return this.repository.findAll();
|
|
}
|
|
|
|
public async getWifiScanById(id: string) {
|
|
return this.repository.findById(id);
|
|
}
|
|
|
|
public async createWifiScan(data: CreateWifiScanParams) {
|
|
return this.repository.create(data);
|
|
}
|
|
|
|
public async createWifiScans(data: CreateWifiScanParams[]) {
|
|
return await this.repository.createMany(data);
|
|
}
|
|
|
|
public async updateWifiScan(data: UpdateWifiScanParams) {
|
|
return this.repository.update(data.wifi_scan_id, data);
|
|
}
|
|
|
|
public async deleteWifiScan(id: string) {
|
|
return this.repository.delete(id);
|
|
}
|
|
}
|