ice-frontend-react-mobx
Version:
ICE Frontend REACT+MobX
88 lines (73 loc) • 2.23 kB
JavaScript
/**
* Created by briancoburn on 12/12/16.
*/
const ReactorApi = require('@vpsinc/reactor-api-lib');
var cache = require('./cache');
const toJS = require('mobx').toJS;
var api = new ReactorApi();
class apiMocker {
constructor () {
var users = [
{id: 1, userName: 'bc', password: 'test1', email: 'a@b.com', role: 'admin'},
{id: 2, userName: 'bd', password: 'test2', email: 'a@c.com', role: 'admin'},
{id: 3, userName: 'be', password: 'test3', email: 'a@d.com', role: 'admin'},
{id: 4, userName: 'bf', password: 'test4', email: 'a@e.com', role: 'admin'}
];
users.forEach(function (user) {
cache.users.set(user.id, user);
});
api.getUsers = function () {
var p = new Promise((resolve) => {
setTimeout(() => {
var myUsers = [];
cache.users.forEach(function (user) {
myUsers.push(toJS(user));
});
resolve(myUsers);
}, 500);
});
return p;
};
api.createUser = function (body) {
var p = new Promise((resolve) => {
setTimeout(() => {
var user = {};
user.id = Math.round(Math.random() * 1000);
user.name = body.userName;
user.email = body.email;
user.role = body.role;
user.password = body.password;
cache.users.set(user.id, user);
resolve(user);
}, 500);
});
return p;
};
api.updateUser = function (id, body) {
var p = new Promise((resolve) => {
setTimeout(() => {
var existingUser = cache.users.get(id);
for (var j in body) {
existingUser[j] = body[j];
}
cache.users.set(existingUser.id, existingUser);
cache.updatedUser = existingUser;
resolve(toJS(existingUser));
}, 500);
});
return p;
};
api.deleteUser = function (id) {
var p = new Promise((resolve) => {
setTimeout(() => {
var existingUser = cache.users.get(id);
cache.users.delete(id);
resolve(toJS(existingUser));
}, 500);
});
return p;
};
return api;
}
}
module.exports = apiMocker;