store-api-wrapper
v1.5.4
Published
A store lib for making data transfer from the client to your api easily and logically
Downloads
47
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
decrease
Store 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 componentDidUnmount
Client
ApiClient = {
users: Client("/api/users"),
organizations: Client({"/api/organizations", scope: "find"})
}
ApiClient.users.findOne({id: 10}).then(function(user){
console.log(user)
})