Skip to content

Instantly share code, notes, and snippets.

@fuyi
Created June 26, 2018 11:40
Show Gist options
  • Select an option

  • Save fuyi/457ecb6a2b979bb7dfc8583c0153bbef to your computer and use it in GitHub Desktop.

Select an option

Save fuyi/457ecb6a2b979bb7dfc8583c0153bbef to your computer and use it in GitHub Desktop.
backup
import { Batch } from 'redux/modules/batch/helpers';
import batchStarter from 'redux/modules/batch/actions/batchStart';
import { bindActionCreators } from 'redux';
import fetchToken from 'redux/modules/user/actions/fetchToken';
export default (store) => (nextState, replace, cb) => {
const { batchStart } = bindActionCreators({ batchStart: batchStarter }, store.dispatch);
const batch = new Batch(batchStart);
batch.subBatch({ fetchToken: fetchToken() });
batch.subBatch({ routing: () => cb() });
batch.start();
};
@fuyi
Copy link
Author

fuyi commented Jun 26, 2018

import { Schema, arrayOf } from 'normalizr';

const competition = new Schema('competition');
const user = new Schema('user');
const activity = new Schema('activity');
const card = new Schema('card');
const activityEntry = new Schema('activityEntry');
const currency = new Schema('currency');
const competitionCurrency = new Schema('competitionCurrency');
const competitionField = new Schema('competitionField');
const competitionMember = new Schema('competitionMember');
const prize = new Schema('prize');
const team = new Schema('team');
const organization = new Schema('organization');
const goal = new Schema('goal');
const token = new Schema('token');
const comment = new Schema('comment');
const industry = new Schema('industry');
const activityStat = new Schema('activityStat', {
idAttribute: (o) => {
if (o.cm_id) {
return cm-${o.cm_id}-${o.activity.id};
}

return `team-${o.team_id}-${o.activity.id}`;

}
});

organization.define({
users: arrayOf(user)
});

competitionCurrency.define({
currency,
competition
});

competitionMember.define({
member: user,
team,
competition_goals: arrayOf(goal),
activities: arrayOf(activityStat)
});

team.define({
activities: arrayOf(activityStat),
competition_goals: arrayOf(goal)
});

activityStat.define({
activity
});

activityEntry.define({
competition_member: competitionMember,
delegator_id: user,
user,
user_id: user,
activity,
activity_id: activity
});

activity.define({
goal,
competition_goals: goal
});

card.define({
// user_id: user,
recent_comments: arrayOf(comment),
activity_entries: arrayOf(activityEntry)
});

comment.define({
user
});

competition.define({
organization,
activities: arrayOf(activity),
competition_fields: arrayOf(competitionField),
competition_currencies: arrayOf(competitionCurrency),
prizes: arrayOf(prize),
teams: arrayOf(team),
active_competition_members: arrayOf(competitionMember),
activity_entries: arrayOf(activityEntry),
cards: arrayOf(card),
default_currency: currency,
currencies: arrayOf(currency),
leader_cm: competitionMember,
leader: user,
creator: user
});

export default {
competition,
activity,
organization,
competitionMember,
competitionCurrency,
competitionField,
goal,
user,
activityEntry,
card,
comment,
token,
industry,
team,
prize
};

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment