store-api-wrapper
v1.5.4
Published
A store lib for making data transfer from the client to your api easily and logically
Readme
Store Api Wrapper (Model)
Models
User = Model({
api: Client("/api/users"),
store: Store("users")
})Stores
Store Instance
users = Store("users");Get
users.get()Listen for changes
users.onChange(function(){
console.log(users.get())
})Set
users.set({email: "[email protected]"});Sub Stores
userId = 1
users.store(userId).store("profiles").set([{
firstName: "John",
lastName: "Doe"
}]);Special Listerners
users.onIsEqualTo({email: "[email protected]"}, function(){
console.log("Is now Bill Doe's email")
});
users.set({email: "[email protected]"})All Other Listeners
update
change
empty
blank
create
notBlank
isObject
isArray
isString
isNumber
increase
decreaseStore Mixin
React.createClass({
mixins: [Store.ReactMixin],
followStores: function() {
// Can be an array, object, or function that returns an array or object
// Arrays can contain strings or objects
// Strings will be both the state key and store key
// Object keys will be the state key and values will be the store key
// return ["users", { organization: "currentOrganization"]
return {
users: "users",
assessments: "assessments"
}
},
componentDidMount: function() {
this.followChange(Store("users.params").onChange(function() {
// Follow more changes
}))
}
})
// All the stores or changes that are followed, will be detached in componentDidUnmountClient
ApiClient = {
users: Client("/api/users"),
organizations: Client({"/api/organizations", scope: "find"})
}
ApiClient.users.findOne({id: 10}).then(function(user){
console.log(user)
})