| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 |
- 'use strict';
- const Nantum = require('@hw/edge-sdks');
- const { API } = Nantum;
- const logger = require('../logger');
- const { company, nantumUrl } = require('../config');
- const { request } = API({ company, logger });
- async function getVenRegistration(clientCertificateFingerprint) {
- const results = await request({
- uri: `${nantumUrl}/oadr_utility_ven_registrations`,
- query: {
- client_certificate_fingerprint: clientCertificateFingerprint,
- },
- });
- return results[0];
- }
- async function createVenRegistration(ven) {
- await request({
- method: 'POST',
- uri: `${nantumUrl}/oadr_utility_ven_registrations`,
- body: ven,
- });
- }
- async function deleteVenRegistration(id) {
- await request({
- method: 'DELETE',
- uri: `${nantumUrl}/oadr_utility_ven_registrations/${id}`
- });
- }
- async function getVenReports(oadrUtilityVenRegistrationId) {
- const results = await request({
- uri: `${nantumUrl}/oadr_utility_ven_reports`,
- query: {
- oadr_utility_ven_registration_id: oadrUtilityVenRegistrationId,
- },
- });
- return results[0];
- }
- async function getSeenEvents(oadrUtilityVenRegistrationId) {
- const results = await request({
- uri: `${nantumUrl}/oadr_utility_ven_seen_events`,
- query: {
- oadr_utility_ven_registration_id: oadrUtilityVenRegistrationId,
- },
- });
- return results;
- }
- async function updateVenReports(id, reports) {
- await request({
- method: 'PUT',
- uri: `${nantumUrl}/oadr_utility_ven_reports/${id}`,
- body: { reports },
- });
- }
- async function createVenReports(venReports) {
- await request({
- method: 'POST',
- uri: `${nantumUrl}/oadr_utility_ven_reports`,
- body: venReports,
- });
- }
- async function getEventResponse(venId, eventId, modificationNumber) {
- const results = await request({
- uri: `${nantumUrl}/oadr_utility_event_responses`,
- query: {
- oadr_utility_ven_id: venId,
- oadr_utility_event_id: eventId,
- modification_number: modificationNumber,
- },
- });
- return results[0];
- }
- async function createEventResponse(eventResponse) {
- await request({
- method: 'POST',
- uri: `${nantumUrl}/oadr_utility_event_responses`,
- body: eventResponse,
- });
- }
- async function updateEventResponse(oadrEventResponseId, newProperties) {
- await request({
- method: 'PUT',
- uri: `${nantumUrl}/oadr_utility_event_responses/${oadrEventResponseId}`,
- body: newProperties,
- });
- }
- async function markEventAsSeen(oadrUtilityVenRegistrationId, eventId, modificationNumber) {
- await request({
- method: 'POST',
- uri: `${nantumUrl}/oadr_utility_ven_seen_events`,
- body: {
- oadr_utility_ven_registration_id: oadrUtilityVenRegistrationId,
- oadr_utility_event_id: eventId,
- modification_number: modificationNumber
- },
- });
- }
- async function getEvents(venRegistrationId) {
- const ven = await getVen(venRegistrationId);
- if (!ven) return []; // no ven: no events
- const eventVens = await request({
- uri: `${nantumUrl}/oadr_utility_event_vens`,
- query: {
- oadr_utility_ven_id: ven._id
- },
- });
- const eventIds = eventVens.map(eventVen => eventVen.oadr_utility_event_id);
- return await request({
- uri: `${nantumUrl}/oadr_utility_events`,
- query: {
- _id: eventIds
- },
- });
- }
- async function sendReportReadings(ven, readings) {
- logger.info(
- 'received report readings',
- ven._id,
- JSON.stringify(readings, null, 2),
- );
- }
- async function getVen(venRegistrationId) {
- const results = await request({
- uri: `${nantumUrl}/oadr_utility_vens`,
- query: {
- oadr_utility_ven_registration_id: venRegistrationId,
- },
- });
- return results[0];
- }
- module.exports = {
- getEvents,
- getEventResponse,
- createEventResponse,
- updateEventResponse,
- markEventAsSeen,
- getVenRegistration,
- deleteVenRegistration,
- createVenRegistration,
- sendReportReadings,
- getVenReports,
- updateVenReports,
- createVenReports,
- getSeenEvents,
- getVen
- };
|