backend-service
v1.3.2
Published
Generate multiple ajaxs function with name!!
Downloads
1
Readme
#BackendService.js Generate multiple ajaxs function with name!!
##Initialize
import MyApi from 'backend-service' // or var MyApi = require('backend-service')
var routes = [
{"name":"users", "method":"GET", "path":"/users"},
{"name":"user", "method":"GET", "path":"/users/:id"},
{"name":"post", "method":"GET", "path":"/posts/:slug"}
]
MyApi.init({
routes: routes
})
##Ajax functions generated Backend service generate function using your path, method and name defined in the routes.json
MyApi.users( (users) => {console.log(users)} ) //GET /users
MyApi.user( {id:1}, (user) => {console.log(user)} ) //GET /users/1
MyApi.users( {location:"madrid"}, (users) => {console.log(users)} ) //GET /users?location=madrid
MyApi.post( {slug:"post-title"}, (post) => {console.log(post)} ) //GET /post/post-title
Backendservice use superagent.js The generate function i'ts the same with this
request(method, path)
.set('Accept', 'application/json')
.query(data)
.end( (err, res) => {} )
##Path functions generated BackendService generate path functions like this
"/users/" == MyApi.users_path()
"/users/3" == MyApi.user_path({id:3})
"/post/post-title" == MyApi.post_path({slug:"post-title-slug"})
##Mock in your Unit test Use the method responseWith to override the ajax function and response immediately
it("when click the heart will be red; in this test the ajax call it's a mock", function(){
MyApi.reset()
MyApi.add_to_favorite.responseWith({ok:true, err:false})
const wrapper = mount(<FavoriteBtn active={false} book={book} />)
wrapper.find('a').simulate('click');
expect( wrapper.props().active ).to.equal(true);
expect( wrapper.find('a').hasClass('heart-red') ).to.equal(true);
})
You don't need to change your production code, BackendService call the same callbackSucess but call immediately and the response it's a mock.
##Default functions _get, _post, _delete, _put
MyApi._get(
{path:"/users", location:"madrid"},
(users) => console.log(users)
)
//GET /users?location=madrid
##Unauthorized function BackendService recive a function and called when the response status it's 401
MyApi.init({
routes: routes,
unauthorizedFnc: function(response_body){
if ( response_body.error == "You need to sign in or sign up before continuing.")
openLoginModal()
}
})
##Arguments Recive
- MyApi.users( query_data, callbackSucess, callBackError )
- MyApi.create_users( send_data, callbackSuccess, callBackError ) Post|PUT
##Arguments contain
- callBackSuccess( response.body, response.status, response )