190 lines
5.3 KiB
JavaScript
190 lines
5.3 KiB
JavaScript
NGApp.factory( 'DriverOnboardingService', function( $rootScope, $resource, $routeParams, $window ) {
|
|
|
|
var service = {};
|
|
|
|
// Create a private resource 'drivers'
|
|
var drivers = $resource( App.service + 'driver/:action/:id_admin/:page/:search/:phone', { id_admin: '@id_admin', action: '@action' }, {
|
|
'get' : { 'method': 'GET', params : { action : null } },
|
|
'notify' : { 'method': 'POST', params : { action: 'notify' } },
|
|
'list' : { 'method': 'GET', params : { action: 'list', id_admin: null } },
|
|
'save' : { 'method': 'POST', params : { action: 'save' } },
|
|
'setupValidate' : { 'method': 'GET', params : { action: 'setup' } },
|
|
'setupSave' : { 'method': 'POST', params : { action: 'setup' } },
|
|
}
|
|
);
|
|
|
|
var vehicles = $resource( App.service + 'driver/onboarding/vehicles', {}, {
|
|
'options' : { 'method': 'GET' }
|
|
}
|
|
);
|
|
|
|
var phone_types = $resource( App.service + 'driver/onboarding/phone_types', {}, {
|
|
'options' : { 'method': 'GET' }
|
|
}
|
|
);
|
|
|
|
// documents resource
|
|
var documents = $resource( App.service + 'driver/documents/:action/:id_admin/:id_driver_document/:id_driver_document_status/:page/:disapprove', { id_admin: '@id_admin', id_driver_document: '@id_driver_document', id_driver_document_status: '@id_driver_document_status', page: '@page', disapprove:'@disapprove' }, {
|
|
'status' : { 'method': 'GET', params : { action : null }, isArray: true },
|
|
'save' : { 'method': 'POST', params : { action : 'save' } },
|
|
'pendency' : { 'method': 'GET', params : { action : 'pendency' } },
|
|
'list' : { 'method': 'GET', params : { action : 'list' } },
|
|
'approve' : { 'method': 'GET', params : { action : 'approve' } },
|
|
'remove' : { 'method': 'GET', params : { action : 'remove' } }
|
|
}
|
|
);
|
|
|
|
// logs resource
|
|
var log = $resource( App.service + 'driver/log/:id_admin', { id_admin: '@id_admin' }, {
|
|
'get' : { 'method': 'GET', params : {}, isArray: true },
|
|
}
|
|
);
|
|
|
|
service.phone_types = function( callback ){
|
|
phone_types.options( {}, function( json ){
|
|
callback( json );
|
|
} );
|
|
}
|
|
|
|
service.yesNo = function(){
|
|
var options = [];
|
|
options.push( { value: '0', label: 'No' } );
|
|
options.push( { value: '1', label: 'Yes' } );
|
|
return options;
|
|
}
|
|
|
|
service.vehicles = function( callback ){
|
|
vehicles.options( {}, function( json ){
|
|
callback( json );
|
|
} );
|
|
}
|
|
|
|
service.logs = function( id_admin, callback ){
|
|
if( id_admin ){
|
|
log.get( { 'id_admin' : id_admin }, function( json ){
|
|
callback( json );
|
|
} );
|
|
}
|
|
}
|
|
|
|
service.setupSave = function( driver, callback ){
|
|
drivers.setupSave( driver, function( json ){
|
|
callback( json );
|
|
} );
|
|
}
|
|
|
|
service.setupValidate = function( callback ){
|
|
var phone = $routeParams.phone;
|
|
drivers.setupValidate( { 'phone' : phone }, function( json ){
|
|
callback( json );
|
|
} );
|
|
}
|
|
|
|
// send setup notification
|
|
service.notifySetup = function( id_admin, callback ){
|
|
var message = 'setup';
|
|
if( id_admin ){
|
|
service.notify( id_admin, message, callback );
|
|
}
|
|
}
|
|
|
|
// send setup notification
|
|
service.notifyWelcome = function( id_admin, callback ){
|
|
var message = 'welcome';
|
|
if( id_admin ){
|
|
service.notify( id_admin, message, callback );
|
|
}
|
|
}
|
|
|
|
// send notification
|
|
service.notify = function( id_admin, message, callback ){
|
|
var params = { id_admin : id_admin, message : message };
|
|
drivers.notify( params, function( data ){
|
|
callback( data );
|
|
} );
|
|
}
|
|
|
|
// save driver info
|
|
service.save = function( driver, callback ){
|
|
var notify = driver.notify;
|
|
drivers.save( driver, function( json ){
|
|
callback( json );
|
|
} );
|
|
}
|
|
|
|
// get driver's list
|
|
service.list = function( page, search, callback ){
|
|
drivers.list( { page : page, search : search }, function( data ){
|
|
callback( data );
|
|
} );
|
|
}
|
|
|
|
|
|
service.docs = {};
|
|
|
|
service.docs.listDocs = function( page, callback ){
|
|
documents.list( { page : page }, function( data ){
|
|
callback( data );
|
|
} );
|
|
}
|
|
|
|
service.docs.approve = function( id_driver_document_status, approve, callback ){
|
|
var disapprove = ( approve ) ? null : 'disapprove';
|
|
documents.approve( { id_driver_document_status: id_driver_document_status, disapprove: disapprove }, function( data ){
|
|
callback( data );
|
|
} );
|
|
}
|
|
|
|
service.docs.remove = function( id_driver_document_status, callback ){
|
|
documents.remove( { id_driver_document_status: id_driver_document_status }, function( data ){
|
|
callback( data );
|
|
} );
|
|
}
|
|
|
|
service.docs.download = function( id_driver_document_status ){
|
|
var url = App.service + 'driver/documents/download/' + id_driver_document_status;
|
|
$window.open( url );
|
|
}
|
|
|
|
// get docs list
|
|
service.docs.list = function( id_admin, callback ){
|
|
if( id_admin ){
|
|
documents.status( { 'id_admin': id_admin }, function( docs ){
|
|
callback( docs );
|
|
} );
|
|
}
|
|
}
|
|
|
|
service.docs.pendency = function( id_admin, callback ){
|
|
if( id_admin ){
|
|
documents.pendency( { 'id_admin': id_admin }, function( data ){
|
|
callback( data );
|
|
} );
|
|
}
|
|
}
|
|
|
|
// save driver's doc
|
|
service.docs.save = function( doc, callback ){
|
|
documents.save( doc, function( doc ){
|
|
callback( doc );
|
|
} );
|
|
}
|
|
|
|
// get admin
|
|
service.get = function( id_admin, callback ){
|
|
if( id_admin ){
|
|
drivers.get( { 'id_admin': id_admin }, function( driver ){
|
|
if( driver.communities ){
|
|
angular.forEach( driver.communities, function( name, id_community ){
|
|
driver.id_community = id_community;
|
|
} );
|
|
}
|
|
callback( driver );
|
|
} );
|
|
} else {
|
|
callback( {} );
|
|
}
|
|
}
|
|
|
|
return service;
|
|
} ); |