Skip to content

Instantly share code, notes, and snippets.

@suissa
Forked from rafaelvicio/Serviço AngularJS
Last active July 8, 2017 01:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save suissa/bebe91501c12f16032f6dc8d9681493f to your computer and use it in GitHub Desktop.
Save suissa/bebe91501c12f16032f6dc8d9681493f to your computer and use it in GitHub Desktop.
const MSG = {
dontUpdate: ( usuario ) => ({
mensagem: 'Não foi possível atualizar o usuario ' + usuario.login
}),
dontInsert: ( usuario ) => ( {
mensagem: 'Não foi possível incluir o usuario ' + usuario.login
} ),
update: ( usuario ) => ( {
mensagem: 'Usuario ' + usuario.login + ' atualizada com sucesso',
inclusao: false
} ),
insert: ( usuario ) => ( {
mensagem: 'Usuario ' + usuario.login + ' incluída com sucesso',
inclusao: true
} )
}
const rejectWithMessage = ( mensagem, usuario ) => ( erro ) => {
console.log( 'ERRROOOO: ', erro )
return reject( MSG[ mensagem ]( usuario ) )
}
angular.module( 'usuarioServico', [ 'ngResource' ] )
.factory( 'recursoUsuario', function ($resource ) {
return $resource( '/api/usuarios/:usuarioId', null, {
'update': {
method: 'PUT'
}
} )
} )
.factory( 'cadastroDeUsuarios', function ( recursoUsuario, $q ) {
const cadastrar = ( usuario ) => $q( ( resolve, reject ) =>
( usuario._id )
? recursoUsuario.update( { usuarioId: usuario._id }, usuario, () =>
resolve( MSG[ 'update' ]( usuario ) )
, rejectWithMessage( 'dontUpdate', usuario ) )
: recursoUsuario.save( usuario, () =>
resolve( MSG[ 'insert' ]( usuario ) )
, rejectWithMessage( 'dontInsert', usuario ) )
)
return { cadastrar }
} )
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment