1
0
Fork 0

[DEV-3393] Add more metadata to the init endpoint

master
Joseph Frazer 2018-08-15 14:06:07 -04:00
parent 003a58dbbb
commit 2c0bf764d1
5 changed files with 245 additions and 0 deletions

View File

@ -135,6 +135,10 @@ module.exports = Class( 'ClientQuote' )
.setCurrentStepId( data.currentStepId || 0 )
.setTopVisitedStepId( data.topVisitedStepId || 0 )
.setAgentId( data.agentId || 0 )
.setAgentName( data.agentName || "" )
.setAgentEntityId( data.agentEntityId || "" )
.setStartDate( data.startDate || 0 )
.setInitialRatedDate( data.initialRatedDate || 0 )
.setImported( data.imported || false )
.setBound( data.bound || false )
.needsImport( data.needsImport || false )
@ -553,6 +557,14 @@ module.exports = Class( 'ClientQuote' )
'public proxy getStartDate': '_quote',
/**
* Returns the quote's initial rated date
*
* @return {number} quote's initial rated date
*/
'public proxy getInitialRatedDate': '_quote',
/**
* Returns the id of the agent that owns the quote
*
@ -561,6 +573,22 @@ module.exports = Class( 'ClientQuote' )
'public proxy getAgentId': '_quote',
/**
* Returns the name of the agent that owns the quote
*
* @return {string} agent name
*/
'public proxy getAgentName': '_quote',
/**
* Returns the entity id of the agent that owns the quote
*
* @return {string} agent entity id
*/
'public proxy getAgentEntityId': '_quote',
/**
* Returns whether the quote has been imported
*

View File

@ -80,12 +80,24 @@ module.exports = Class( 'BaseQuote' )
*/
'private _startDate': 0,
/**
* Date (UNIX timestamp) that the quote was initially rated
* @type {number}
*/
'private _initialRatedDate': 0,
/**
* Id of agent that owns the quote
* @type {number}
*/
'private _agentId': 0,
/**
* Id of agent entity that owns the quote
* @type {string}
*/
'private _agentEntityId': '',
/**
* Agency name
* @type {string}
@ -235,6 +247,30 @@ module.exports = Class( 'BaseQuote' )
},
/**
* Sets the quote's initial rated date
*
* @param {number} time initial rated date as a UNIX timestamp
*
* @return {Quote} self
*/
'public setInitialRatedDate': function( time )
{
this._initialRatedDate = +( time );
return this;
},
/**
* Returns the quote's initial rated date
*
* @return {number} quote's initial rated date
*/
'public getInitialRatedDate': function()
{
return this._initialRatedDate;
},
/**
* Sets id of agent that owns the quote
*
@ -260,6 +296,31 @@ module.exports = Class( 'BaseQuote' )
},
/**
* Sets id of agent entity that owns the quote
*
* @param {string} id agent id
*
* @return {Quote} self
*/
'public setAgentEntityId': function( id )
{
this._agentEntityId = ''+( id );
return this;
},
/**
* Returns the id of the agent entity that owns the quote
*
* @return {string} agent entity id
*/
'public getAgentEntityId': function()
{
return this._agentEntityId;
},
/**
* Sets name of agent that owns the quote
*

View File

@ -326,6 +326,8 @@ module.exports = Class( 'Server' )
.setQuickSaveData( quote_data.quicksave || {} )
.setAgentId( quote_data.agentId || agent_id )
.setAgentName( quote_data.agentName || agent_name )
.setAgentEntityId( data.agentEntityId || "" )
.setInitialRatedDate( data.initialRatedDate || 0 )
.setStartDate(
quote_data.getStartDate
|| Math.round( new Date().getTime() / 1000 )
@ -739,6 +741,9 @@ module.exports = Class( 'Server' )
explicitLockStepId: lock_step,
agentId: quote.getAgentId(),
agentName: quote.getAgentName(),
agentEntityId: quote.getAgentEntityId(),
startDate: quote.getStartDate(),
initialRatedDate: quote.getInitialRatedDate(),
quicksave: quote.getQuickSaveData(),

View File

@ -0,0 +1,86 @@
/**
* Tests ClientQuote
*
* Copyright (C) 2017 R-T Specialty, LLC.
*
* This file is part of the Liza Data Collection Framework.
*
* liza is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
'use strict';
const chai = require( 'chai' );
const expect = chai.expect;
const { BaseQuote } = require( '../../../' ).quote;
const { ClientQuote } = require( '../../../' ).client.quote;
const { QuoteDataBucket } = require( '../../../' ).bucket;
chai.use( require( 'chai-as-promised' ) );
describe( 'ClientQuote', () =>
{
const baseQuote = BaseQuote( 123, QuoteDataBucket() ),
startDate = 12345,
agentId = 90000,
agentName = 'John Doe',
agentEntityId = '12434300',
initialRatedDate = 1531507748,
quote = ClientQuote(
baseQuote,
{
startDate: startDate,
agentId: agentId,
agentName: agentName,
agentEntityId: agentEntityId,
initialRatedDate: initialRatedDate,
},
bucket => bucket
);
it( 'constructor', () =>
{
expect( quote ).to.be.an.instanceof( ClientQuote );
} );
it( 'getStartDate proxy', () =>
{
expect( quote.getStartDate ).to.not.be.undefined;
expect( quote.getStartDate() ).to.equal( startDate );
} );
it( 'getAgentId proxy', () =>
{
expect( quote.getAgentId ).to.not.be.undefined;
expect( quote.getAgentId() ).to.equal( agentId );
} );
it( 'getAgentName proxy', () =>
{
expect( quote.getAgentName ).to.not.be.undefined;
expect( quote.getAgentName() ).to.equal( agentName );
} );
it( 'getAgentEntityId proxy', () =>
{
expect( quote.getAgentEntityId ).to.not.be.undefined;
expect( quote.getAgentEntityId() ).to.equal( agentEntityId );
} );
it( 'getInitialRatedDate proxy', () =>
{
expect( quote.getInitialRatedDate ).to.not.be.undefined;
expect( quote.getInitialRatedDate() ).to.equal( initialRatedDate );
} );
} );

View File

@ -0,0 +1,65 @@
/**
* Tests BaseQuote
*
* Copyright (C) 2017 R-T Specialty, LLC.
*
* This file is part of the Liza Data Collection Framework.
*
* liza is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
'use strict';
const chai = require( 'chai' );
const expect = chai.expect;
const { BaseQuote } = require( '../../' ).quote;
chai.use( require( 'chai-as-promised' ) );
describe( 'BaseQuote', () =>
{
[
{
property: 'startDate',
value: 12345
},
{
property: 'initialRatedDate',
value: 12345
},
{
property: 'agentEntityId',
value: 'AGT5432'
},
].forEach( testCase =>
{
const quote = BaseQuote( 123, {} ),
property = testCase.property,
titleCased = property.charAt( 0 ).toUpperCase() + property.slice( 1 ),
setter = 'set' + titleCased,
getter = 'get' + titleCased;
it( property, () =>
{
expect( quote ).to.be.an.instanceof( BaseQuote );
expect( quote[setter] ).to.not.be.undefined;
expect( quote[getter] ).to.not.be.undefined;
expect( quote[getter].call( null ) ).to.be.undefined;
quote[setter].call( null, testCase.value );
expect( quote[getter].call( null ) ).to.equal( testCase.value );
} );
} );
} );