UNPKG

@sap/xsodata

Version:

Expose data from a HANA database as OData V2 service with help of .xsodata files.

213 lines (184 loc) 4.97 kB
'use strict'; const exitProcessor = require('./exitProcessor'); function eventActionHandlerWithEndEvent( action, event, endEvent, context, asyncDone ) { context.logger.info(event, `event start ${action}`); const eventFunction = exitProcessor.eventHandler(action, event); eventFunction(context, function (err, context) { context.logger.info(`${endEvent} event end`, action); if (err) { context.logger.info(`${endEvent} event end`, 'error occured'); } return asyncDone(err, context); }); } function eventActionHandler(action, event, context, asyncDone) { eventActionHandlerWithEndEvent(action, event, event, context, asyncDone); } function eventDeleteBefore(context, asyncDone) { eventActionHandler('before', 'delete', context, asyncDone); } function eventDeleteAfter(context, asyncDone) { eventActionHandler('after', 'delete', context, asyncDone); } function eventDeletePrecommit(context, asyncDone) { eventActionHandler('precommit', 'delete', context, asyncDone); } function eventDeletePostCommit(context, asyncDone) { eventActionHandler('postcommit', 'delete', context, asyncDone); } exports.eventDelete = { eventBefore: eventDeleteBefore, eventAfter: eventDeleteAfter, eventPrecommit: eventDeletePrecommit, eventPostCommit: eventDeletePostCommit, }; function eventPostBefore(context, asyncDone) { eventActionHandler('before', 'create', context, asyncDone); } function eventPostAfter(context, asyncDone) { eventActionHandler('after', 'create', context, asyncDone); } function eventPostPrecommit(context, asyncDone) { eventActionHandler('precommit', 'create', context, asyncDone); } function eventPostPostCommit(context, asyncDone) { eventActionHandler('postcommit', 'create', context, asyncDone); } exports.eventPost = { eventBefore: eventPostBefore, eventAfter: eventPostAfter, eventPrecommit: eventPostPrecommit, eventPostCommit: eventPostPostCommit, }; function eventDeleteLinksBefore(context, asyncDone) { eventActionHandlerWithEndEvent( 'before', 'delete', 'modify', context, asyncDone ); } function eventDeleteLinksAfter(context, asyncDone) { eventActionHandlerWithEndEvent( 'after', 'delete', 'modify', context, asyncDone ); } function eventDeleteLinksPrecommit(context, asyncDone) { eventActionHandlerWithEndEvent( 'precommit', 'delete', 'modify', context, asyncDone ); } function eventDeleteLinksPostCommit(context, asyncDone) { eventActionHandlerWithEndEvent( 'postcommit', 'delete', 'modify', context, asyncDone ); } exports.eventDeleteLinks = { eventBefore: eventDeleteLinksBefore, eventAfter: eventDeleteLinksAfter, eventPrecommit: eventDeleteLinksPrecommit, eventPostCommit: eventDeleteLinksPostCommit, }; function eventPutBefore(context, asyncDone) { eventActionHandlerWithEndEvent( 'before', 'update', 'modify', context, asyncDone ); } function eventPutAfter(context, asyncDone) { eventActionHandlerWithEndEvent( 'after', 'update', 'modify', context, asyncDone ); } function eventPutPrecommit(context, asyncDone) { eventActionHandlerWithEndEvent( 'precommit', 'update', 'modify', context, asyncDone ); } function eventPutPostCommit(context, asyncDone) { eventActionHandlerWithEndEvent( 'postcommit', 'update', 'modify', context, asyncDone ); } exports.eventPut = { eventBefore: eventPutBefore, eventAfter: eventPutAfter, eventPrecommit: eventPutPrecommit, eventPostCommit: eventPutPostCommit, }; function eventPutPostLinksBefore(context, asyncDone) { eventActionHandlerWithEndEvent( 'before', context.oData.links.sOperation, 'modify', context, asyncDone ); } function eventPutPostLinksAfter(context, asyncDone) { eventActionHandlerWithEndEvent( 'after', context.oData.links.sOperation, 'modify', context, asyncDone ); } function eventPutPostLinksPrecommit(context, asyncDone) { eventActionHandlerWithEndEvent( 'precommit', context.oData.links.sOperation, 'modify', context, asyncDone ); } function eventPutPostLinksPostCommit(context, asyncDone) { eventActionHandlerWithEndEvent( 'postcommit', context.oData.links.sOperation, 'modify', context, asyncDone ); } exports.eventPutPostLinks = { eventBefore: eventPutPostLinksBefore, eventAfter: eventPutPostLinksAfter, eventPrecommit: eventPutPostLinksPrecommit, eventPostCommit: eventPutPostLinksPostCommit, };