diff options
Diffstat (limited to 'sdnr/wt/odlux/apps/maintenanceApp/src/services/maintenenceService.ts')
-rw-r--r-- | sdnr/wt/odlux/apps/maintenanceApp/src/services/maintenenceService.ts | 75 |
1 files changed, 24 insertions, 51 deletions
diff --git a/sdnr/wt/odlux/apps/maintenanceApp/src/services/maintenenceService.ts b/sdnr/wt/odlux/apps/maintenanceApp/src/services/maintenenceService.ts index 7da5e912b..daa6082d7 100644 --- a/sdnr/wt/odlux/apps/maintenanceApp/src/services/maintenenceService.ts +++ b/sdnr/wt/odlux/apps/maintenanceApp/src/services/maintenenceService.ts @@ -18,8 +18,10 @@ import { requestRest } from '../../../../framework/src/services/restService'; import { Result, HitEntry, PostResponse, DeleteResponse } from '../../../../framework/src/models/elasticSearch'; -import { MaintenenceEntryType, MaintenenceEntry } from '../models/maintenenceEntryType'; -import { convertToLocaleString, convertToGMTString } from '../utils/timeUtils'; +import { MaintenenceEntry } from '../models/maintenenceEntryType'; +import { convertToLocaleString, convertToGMTString, convertToISODateString } from '../utils/timeUtils'; +import { convertPropertyNames, replaceUpperCase } from '../../../../framework/src/utilities/yangHelper'; + export const maintenenceEntryDatabasePath = "mwtn/maintenancemode"; @@ -27,60 +29,23 @@ export const maintenenceEntryDatabasePath = "mwtn/maintenancemode"; * Represents a web api accessor service for all maintenence entries related actions. */ class MaintenenceService { - /** - * Gets all maintenence entries from the backend. - */ - public async getAllMaintenenceEntries(): Promise<(MaintenenceEntry[]) | null> { - const path = `database/${maintenenceEntryDatabasePath}/_search`; - const query = { "query": { "match_all": {} } }; - - const result = await requestRest<Result<MaintenenceEntryType>>(path, { method: "POST", body: JSON.stringify(query) }); - return result && result.hits && result.hits.hits && result.hits.hits.map(me => me._source && me._source.filter[0] && ({ - _id: me._id, - mountId: me._source.node, - description: me._source.filter[0].description, - start: me._source.filter[0].start && convertToLocaleString(me._source.filter[0].start), - end: me._source.filter[0].end && convertToLocaleString(me._source.filter[0].end), - active: me._source.active - })) || null; - } - - /** - * Gets one maintenence entry by its mountId from the backend. - */ - public async getMaintenenceEntryByMountId(mountId: string): Promise<(MaintenenceEntry) | null> { - const path = `database/${maintenenceEntryDatabasePath}/${mountId}`; - - const result = await requestRest<HitEntry<MaintenenceEntryType> & { found: boolean }>(path, { method: "GET" }); - return result && result.found && result._source && result._source.filter[0] && { - _id: result._id, - mountId: result._source.node, - description: result._source.filter[0].description, - start: result._source.filter[0].start && convertToLocaleString(result._source.filter[0].start), - end: result._source.filter[0].end && convertToLocaleString(result._source.filter[0].end), - active: result._source.active - } || null; - } /** * Adds or updates one maintenence entry to the backend. */ public async writeMaintenenceEntry(maintenenceEntry: MaintenenceEntry): Promise<PostResponse | null> { - const path = `database/${maintenenceEntryDatabasePath}/${maintenenceEntry._id}`; - const data: MaintenenceEntryType = { - node: maintenenceEntry.mountId, - filter: [ - { - definition: { "object-id-ref": "", problem: "" }, - description: "", - start: convertToGMTString(maintenenceEntry.start), - end: convertToGMTString(maintenenceEntry.end) - } - ], - active: maintenenceEntry.active + const path = `/restconf/operations/data-provider:create-maintenance`; + + const query = { + "id": maintenenceEntry._id, + "node-id": maintenenceEntry.nodeId, + "active": maintenenceEntry.active, + "description": maintenenceEntry.description, + "end": convertToISODateString(maintenenceEntry.end), + "start": convertToISODateString(maintenenceEntry.start) }; - const result = await requestRest<PostResponse>(path, { method: "POST", body: JSON.stringify(data) }); + const result = await requestRest<PostResponse>(path, { method: "POST", body: JSON.stringify(convertPropertyNames({ input: query }, replaceUpperCase)) }); return result || null; } @@ -88,9 +53,17 @@ class MaintenenceService { * Deletes one maintenence entry by its mountId from the backend. */ public async deleteMaintenenceEntry(maintenenceEntry: MaintenenceEntry): Promise<(DeleteResponse) | null> { - const path = `database/${maintenenceEntryDatabasePath}/${maintenenceEntry._id}`; + const path = `/restconf/operations/data-provider:delete-maintenance`; - const result = await requestRest<DeleteResponse>(path, { method: "DELETE" }); + const query = { + "id": maintenenceEntry._id, + "node-id": maintenenceEntry.nodeId, + "active": maintenenceEntry.active, + "description": maintenenceEntry.description, + "end": convertToISODateString(maintenenceEntry.end), + "start": convertToISODateString(maintenenceEntry.start) + }; + const result = await requestRest<DeleteResponse>(path, { method: "POST", body: JSON.stringify(convertPropertyNames({ input: query }, replaceUpperCase)) }); return result || null; } } |