geonet
Version:
A Node.js API wrapper for GeoNet — Aotearoa's geological hazard monitoring system.
124 lines (123 loc) • 5.3 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.GeoNet = void 0;
const IntensityService_1 = require("./services/IntensityService");
const StrongService_1 = require("./services/StrongService");
const NewsService_1 = require("./services/NewsService");
const QuakeService_1 = require("./services/QuakeService");
const VolcanoService_1 = require("./services/VolcanoService");
const NetworkService_1 = require("./services/NetworkService");
const QuakeMapUtil_1 = require("./utils/QuakeMapUtil");
/**
* Main class for interacting with the GeoNet API and related utilities.
* Provides access to all GeoNet services through a unified interface.
*
* @remarks
* This class acts as a central interface for all GeoNet API services and related utilities, thus providing a simplified
* way for accessing earthquake, volcano, network data, among others, from GeoNet.
*
* @example
* ```typescript
* import { GeoNet } from "geonet";
* const geonet = new GeoNet();
*
* // Get recent earthquakes
* const quakes = await geonet.getQuakes(...);
* ```
*
* @see {@link https://api.geonet.org.nz} GeoNet API Documentation.
* @see {@link IntensityService} For intensity-related methods.
* @see {@link StrongService} For strong motion-related methods.
* @see {@link NewsService} For news-related methods.
* @see {@link QuakeService} For quake-related methods.
* @see {@link VolcanoService} For volcano-related methods.
* @see {@link NetworkService} For network-related methods.
* @see {@link QuakeMapUtil} For generating GeoNet quake map URLs.
*
* @since 1.0.0
*/
class GeoNet {
intensityService;
strongService;
newsService;
quakeService;
volcanoService;
networkService;
quakeMapUtil;
/**
* Creates a new instance of the GeoNet client.
*
* @param {IntensityService} intensityService - Service for intensity data.
* @param {StrongService} strongService - Service for strong motion data.
* @param {NewsService} newsService - Service for news feed data.
* @param {QuakeService} quakeService - Service for earthquake data.
* @param {VolcanoService} volcanoService - Service for volcanic activity data.
* @param {NetworkService} networkService - Service for network sensor data.
*/
constructor(intensityService = new IntensityService_1.IntensityService(), strongService = new StrongService_1.StrongService(), newsService = new NewsService_1.NewsService(), quakeService = new QuakeService_1.QuakeService(), volcanoService = new VolcanoService_1.VolcanoService(), networkService = new NetworkService_1.NetworkService(), quakeMapUtil = new QuakeMapUtil_1.QuakeMapUtil()) {
this.intensityService = intensityService;
this.strongService = strongService;
this.newsService = newsService;
this.quakeService = quakeService;
this.volcanoService = volcanoService;
this.networkService = networkService;
this.quakeMapUtil = quakeMapUtil;
}
/** @inheritdoc {@link IntensityService.getIntensity} */
async getIntensity(req) {
return await this.intensityService.getIntensity(req);
}
/** @inheritdoc {@link StrongService.getStrong} */
async getStrong(publicID) {
return await this.strongService.getStrong(publicID);
}
/** @inheritdoc {@link NewsService.getNews} */
async getNews(page) {
return await this.newsService.getNews(page);
}
/** @inheritdoc {@link QuakeService.getQuake} */
async getQuake(publicID) {
return await this.quakeService.getQuake(publicID);
}
/** @inheritdoc {@link QuakeService.getQuakeHistory} */
async getQuakeHistory(publicID) {
return await this.quakeService.getQuakeHistory(publicID);
}
/** @inheritdoc {@link QuakeService.getQuakeStats} */
async getQuakeStats() {
return await this.quakeService.getQuakeStats();
}
/** @inheritdoc {@link QuakeService.getQuakes} */
async getQuakes(mmi) {
return await this.quakeService.getQuakes(mmi);
}
/** @inheritdoc {@link VolcanoService.getVolcanoAlertLevel} */
async getVolcanoAlertLevel() {
return await this.volcanoService.getVolcanoAlertLevel();
}
/** @inheritdoc {@link VolcanoService.getVolcanoQuakes} */
async getVolcanoQuakes(volcanoID) {
return await this.volcanoService.getVolcanoQuakes(volcanoID);
}
/** @inheritdoc {@link NetworkService.getNetworkSensor} */
async getNetworkSensor(req) {
return await this.networkService.getNetworkSensor(req);
}
/** @inheritdoc {@link NetworkService.getNetworkGNSSDetails} */
async getNetworkGNSSDetails(code) {
return await this.networkService.getNetworkGNSSDetails(code);
}
/** @inheritdoc {@link NetworkService.getNetworkFDSNDetails} */
async getNetworkFDSNDetails(req) {
return await this.networkService.getNetworkFDSNDetails(req);
}
/** @inheritdoc {@link QuakeMapUtil.generateMapURL} */
generateMapURL(coordinates, mmi) {
return this.quakeMapUtil.generateMapURL(coordinates, mmi);
}
/** @inheritdoc {@link QuakeMapUtil.generateColourCode} */
generateColourCode(mmi) {
return this.quakeMapUtil.generateColourCode(mmi);
}
}
exports.GeoNet = GeoNet;