1 /* Copyright (c) 2019 AT&T Intellectual Property. #
\r
3 # Licensed under the Apache License, Version 2.0 (the "License"); #
\r
4 # you may not use this file except in compliance with the License. #
\r
5 # You may obtain a copy of the License at #
\r
7 # http://www.apache.org/licenses/LICENSE-2.0 #
\r
9 # Unless required by applicable law or agreed to in writing, software #
\r
10 # distributed under the License is distributed on an "AS IS" BASIS, #
\r
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #
\r
12 # See the License for the specific language governing permissions and #
\r
13 # limitations under the License. #
\r
14 ##############################################################################*/
\r
17 const events = require('events');
\r
18 const eventEmitter = new events.EventEmitter();
\r
20 module.exports.emitter = eventEmitter;
\r
23 /* @description: This module serves as a common emitter to be used by
\r
24 * the test execution controller and job definitions. The Agenda library
\r
25 * only returns a job object when that object persists in the database.
\r
26 * Therefore, there is no conventional way to return the response from
\r
27 * the service api (inside the job definition) to the controller to be
\r
28 * sent back to the user of the scheduling endpoint (In this case it would
\r
29 * be the UI). Setting up a listener in the controller will allow emitting
\r
30 * an event from the job definition to relay the response. Events are
\r
31 * distinguished by using the job identifier as part of the event name.
\r