jobs store fetching

pull/1382/head
Berkeley Martinez 2015-07-25 15:42:03 -07:00
parent a45863ce87
commit 41274fad2d
5 changed files with 38 additions and 4 deletions

View File

@ -5,7 +5,7 @@ import { Grid, Row } from 'react-bootstrap';
export default contain(
{
store: 'jobsStore',
actions: 'jobActions'
fetchAction: 'jobActions.getJobs'
},
React.createClass({
displayName: 'Jobs',

View File

@ -1,6 +1,10 @@
import { Actions } from 'thundercats';
import debugFactory from 'debug';
const debug = debugFactory('freecc:jobs:actions');
export default Actions({
setJobs: null,
getJob(id) {
return { id };
},
@ -8,4 +12,16 @@ export default Actions({
return { params };
}
})
.refs({ displayName: 'JobsActions' });
.refs({ displayName: 'JobActions' })
.init(({ instance: jobActions, args: [services] }) => {
jobActions.getJobs.subscribe(() => {
services.read('job', null, null, (err, jobs) => {
if (err) {
debug('job services experienced an issue', err);
jobActions.setJobs({ jobs: [] });
}
jobActions.setJobs({ jobs });
});
});
return jobActions;
});

View File

@ -1,8 +1,10 @@
import { Store } from 'thundercats';
const { setter } = Store;
export default Store()
.refs({ displayName: 'JobsStore' })
.init(({ instance: jobsStore, args: [cat] }) => {
let jobsActions = cat.getActions('JobsActions');
jobsStore.register(jobsActions.getJob);
let jobActions = cat.getActions('JobActions');
jobsStore.register(setter(jobActions.setJobs));
});

View File

@ -1,11 +1,15 @@
import Fetchr from 'fetchr';
import getHikesService from '../services/hikes';
import getJobServices from '../services/job';
import getUserServices from '../services/user';
export default function bootServices(app) {
const hikesService = getHikesService(app);
const jobServices = getJobServices(app);
const userServices = getUserServices(app);
Fetchr.registerFetcher(hikesService);
Fetchr.registerFetcher(jobServices);
Fetchr.registerFetcher(userServices);
app.use('/services', Fetchr.middleware());
}

12
server/services/job.js Normal file
View File

@ -0,0 +1,12 @@
export default function getJobServices(app) {
const { Job } = app.models;
return {
name: 'job',
read: (req, resource, params, config, cb) => {
Job.find({}, (err, jobs) => {
cb(err, jobs);
});
}
};
}