Skip to content

Commit

Permalink
Modify api calls to work with new phoenix server
Browse files Browse the repository at this point in the history
  • Loading branch information
roaks3 committed May 4, 2019
1 parent 08c1af6 commit 7a51c95
Show file tree
Hide file tree
Showing 12 changed files with 50 additions and 49 deletions.
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
"private": true,
"dependencies": {
"aphrodite": "^1.2.5",
"lodash": "^4.17.11",
"moment": "^2.15.2",
"react": "^16.1.1",
"react-dom": "^16.1.1",
Expand Down
4 changes: 2 additions & 2 deletions src/components/AnalyticsDetails.js
Original file line number Diff line number Diff line change
Expand Up @@ -71,14 +71,14 @@ const AnalyticsDetails = ({
AnalyticsDetails.propTypes = {
allInterestEvents: PropTypes.arrayOf(
PropTypes.shape({
completedAt: PropTypes.string.isRequired,
completedOn: PropTypes.string.isRequired,
duration: PropTypes.number.isRequired,
fulfillment: PropTypes.number.isRequired
}).isRequired
).isRequired,
interestEvents: PropTypes.arrayOf(
PropTypes.shape({
completedAt: PropTypes.string.isRequired,
completedOn: PropTypes.string.isRequired,
duration: PropTypes.number.isRequired,
fulfillment: PropTypes.number.isRequired
}).isRequired
Expand Down
2 changes: 1 addition & 1 deletion src/components/BudgetDetails.js
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ const BudgetDetails = ({ interestEvents, startAt, endAt, fulfillmentSummary }) =
BudgetDetails.propTypes = {
interestEvents: PropTypes.arrayOf(
PropTypes.shape({
completedAt: PropTypes.string.isRequired,
completedOn: PropTypes.string.isRequired,
duration: PropTypes.number.isRequired,
fulfillment: PropTypes.number.isRequired
}).isRequired
Expand Down
8 changes: 4 additions & 4 deletions src/components/BudgetInterestListItem.js
Original file line number Diff line number Diff line change
Expand Up @@ -58,13 +58,13 @@ class BudgetInterestListItem extends Component {
};

render() {
const { interest, defautInterestEventCompletedAt } = this.props;
const { interest, defautInterestEventCompletedOn } = this.props;

let form;
if (this.state.visible) {
form = (
<InterestEventForm
defaultCompletedAt={defautInterestEventCompletedAt}
defaultCompletedOn={defautInterestEventCompletedOn}
onSubmit={this.logEvent}
/>
);
Expand All @@ -90,8 +90,8 @@ class BudgetInterestListItem extends Component {
}

const mapStateToProps = state => ({
defautInterestEventCompletedAt: state.interestEvent
.defautInterestEventCompletedAt
defautInterestEventCompletedOn: state.interestEvent
.defautInterestEventCompletedOn
});

export default connect(mapStateToProps, {
Expand Down
17 changes: 7 additions & 10 deletions src/components/InterestEventForm.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,20 +12,20 @@ const styles = StyleSheet.create({

class InterestEventForm extends Component {
static propTypes = {
defaultCompletedAt: PropTypes.string,
defaultCompletedOn: PropTypes.string,
onSubmit: PropTypes.func.isRequired
};

state = {
completedAt: moment(this.props.defaultCompletedAt)
completedOn: moment(this.props.defaultCompletedOn)
.utc()
.format('YYYY-MM-DD'),
duration: 1,
fulfillment: 1
};

handleCompletedAtChange = e => {
this.setState({ completedAt: e.target.value });
handleCompletedOnChange = e => {
this.setState({ completedOn: e.target.value });
};

handleDurationChange = e => {
Expand All @@ -37,10 +37,7 @@ class InterestEventForm extends Component {
};

handleSubmit = e => {
this.props.onSubmit({
...this.state,
completedAt: moment(this.state.completedAt, 'YYYY-MM-DD').utc().format()
});
this.props.onSubmit(this.state);
};

render() {
Expand All @@ -52,8 +49,8 @@ class InterestEventForm extends Component {
</label>
<input
type="date"
value={this.state.completedAt}
onChange={this.handleCompletedAtChange}
value={this.state.completedOn}
onChange={this.handleCompletedOnChange}
placeholder="YYYY-MM-DD"
/>
</fieldset>
Expand Down
4 changes: 2 additions & 2 deletions src/components/InterestEventLineChart.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ const InterestEventLineChart = ({ interestEvents, startAt, endAt }) => {

const lineChartValues = interestEvents
.reduce((memo, interestEvent) => {
const daysAgo = endMoment.diff(moment(interestEvent.completedAt), 'days');
const daysAgo = endMoment.diff(moment(interestEvent.completedOn), 'days');
if (daysAgo < numDays) {
memo[daysAgo]++;
}
Expand All @@ -36,7 +36,7 @@ const InterestEventLineChart = ({ interestEvents, startAt, endAt }) => {
InterestEventLineChart.propTypes = {
interestEvents: PropTypes.arrayOf(
PropTypes.shape({
completedAt: PropTypes.string.isRequired
completedOn: PropTypes.string.isRequired
}).isRequired
).isRequired,
startAt: PropTypes.string.isRequired,
Expand Down
14 changes: 7 additions & 7 deletions src/screens/BudgetScreen/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { fetchInterestGroups } from '../../store/InterestGroup/actions';
import { fetchInterests } from '../../store/Interest/actions';
import {
fetchInterestEvents,
incrementDefautInterestEventCompletedAt
incrementDefautInterestEventCompletedOn
} from '../../store/InterestEvent/actions';

class BudgetScreen extends Component {
Expand All @@ -35,10 +35,10 @@ class BudgetScreen extends Component {
return (
<section>
<Header />
{this.props.defautInterestEventCompletedAt &&
{this.props.defautInterestEventCompletedOn &&
<DaySelect
date={this.props.defautInterestEventCompletedAt}
onIncrementDay={this.props.incrementDefautInterestEventCompletedAt}
date={this.props.defautInterestEventCompletedOn}
onIncrementDay={this.props.incrementDefautInterestEventCompletedOn}
/>}
<p>
{this.props.successMessage}
Expand All @@ -50,8 +50,8 @@ class BudgetScreen extends Component {
}

const mapStateToProps = state => ({
defautInterestEventCompletedAt: state.interestEvent
.defautInterestEventCompletedAt,
defautInterestEventCompletedOn: state.interestEvent
.defautInterestEventCompletedOn,
successMessage: state.interestEvent.successMessage,
interestGroups: state.interestGroups
});
Expand All @@ -60,5 +60,5 @@ export default connect(mapStateToProps, {
fetchInterestGroups,
fetchInterests,
fetchInterestEvents,
incrementDefautInterestEventCompletedAt
incrementDefautInterestEventCompletedOn
})(BudgetScreen);
3 changes: 2 additions & 1 deletion src/store/Interest/actions.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import * as _ from 'lodash';
import { resourceUrl, options } from '../../api';

const RESOURCE_NAME = 'interests';
Expand All @@ -21,7 +22,7 @@ export const fetchInterests = () => dispatch => {
.then(json =>
dispatch(
receiveInterests(
json.map(post => Object.assign(post, { id: post._id.$oid }))
json.map(result => _.mapKeys(result, (val, key) => _.camelCase(key)))
)
)
);
Expand Down
17 changes: 9 additions & 8 deletions src/store/InterestEvent/actions.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
import * as _ from 'lodash';
import { resourceUrl, options } from '../../api';

const RESOURCE_NAME = 'interestEvents';
const RESOURCE_NAME = 'interest_events';

export const REQUEST_INTEREST_EVENTS = 'REQUEST_INTEREST_EVENTS';
export const RECEIVE_INTEREST_EVENTS = 'RECEIVE_INTEREST_EVENTS';
export const LOG_INTEREST_EVENT_REQUEST = 'LOG_INTEREST_EVENT_REQUEST';
export const LOG_INTEREST_EVENT_SUCCESS = 'LOG_INTEREST_EVENT_SUCCESS';
export const INCREMENT_DEFAULT_INTEREST_EVENT_COMPLETED_AT =
'INCREMENT_DEFAULT_INTEREST_EVENT_COMPLETED_AT';
export const INCREMENT_DEFAULT_INTEREST_EVENT_COMPLETED_ON =
'INCREMENT_DEFAULT_INTEREST_EVENT_COMPLETED_ON';

export const requestInterestEvents = () => ({
type: REQUEST_INTEREST_EVENTS
Expand All @@ -20,12 +21,12 @@ export const receiveInterestEvents = interestEvents => ({

export const fetchInterestEvents = () => dispatch => {
dispatch(requestInterestEvents());
return fetch(resourceUrl(RESOURCE_NAME) + '&l=2000', options)
return fetch(resourceUrl(RESOURCE_NAME), options)
.then(response => response.json())
.then(json =>
dispatch(
receiveInterestEvents(
json.map(post => Object.assign(post, { id: post._id.$oid }))
json.map(result => _.mapKeys(result, (val, key) => _.camelCase(key)))
)
)
);
Expand All @@ -46,12 +47,12 @@ export const logInterestEvent = (interestEvent, interest) => dispatch => {
return fetch(resourceUrl(RESOURCE_NAME), {
...options,
method: 'POST',
body: JSON.stringify(interestEvent)
body: JSON.stringify(_.mapKeys(interestEvent, (val, key) => _.snakeCase(key)))
}).then(() => {
dispatch(logInterestEventSuccess(interestEvent, interest));
});
};

export const incrementDefautInterestEventCompletedAt = () => ({
type: INCREMENT_DEFAULT_INTEREST_EVENT_COMPLETED_AT
export const incrementDefautInterestEventCompletedOn = () => ({
type: INCREMENT_DEFAULT_INTEREST_EVENT_COMPLETED_ON
});
14 changes: 7 additions & 7 deletions src/store/InterestEvent/reducers.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ import {
RECEIVE_INTEREST_EVENTS,
LOG_INTEREST_EVENT_REQUEST,
LOG_INTEREST_EVENT_SUCCESS,
INCREMENT_DEFAULT_INTEREST_EVENT_COMPLETED_AT
INCREMENT_DEFAULT_INTEREST_EVENT_COMPLETED_ON
} from './actions';

const mostRecentInterestEvent = interestEvents => {
return interestEvents.reduce((memo, interestEvent) => {
if (!memo || interestEvent.completedAt > memo.completedAt) {
if (!memo || interestEvent.completedOn > memo.completedOn) {
return interestEvent;
}
return memo;
Expand All @@ -19,7 +19,7 @@ const mostRecentInterestEvent = interestEvents => {
const initialState = {
interestEvents: [],
successMessage: null,
defautInterestEventCompletedAt: null
defautInterestEventCompletedOn: null
};

export default (state = initialState, action) => {
Expand All @@ -34,7 +34,7 @@ export default (state = initialState, action) => {
return {
...state,
interestEvents: action.interestEvents,
defautInterestEventCompletedAt: mostRecent && mostRecent.completedAt
defautInterestEventCompletedOn: mostRecent && mostRecent.completedOn
};
case LOG_INTEREST_EVENT_REQUEST:
return {
Expand All @@ -47,11 +47,11 @@ export default (state = initialState, action) => {
interestEvents: [...state.interestEvents, action.interestEvent],
successMessage: `Logged event: ${action.interest.name}`
};
case INCREMENT_DEFAULT_INTEREST_EVENT_COMPLETED_AT:
case INCREMENT_DEFAULT_INTEREST_EVENT_COMPLETED_ON:
return {
...state,
defautInterestEventCompletedAt: moment(
state.defautInterestEventCompletedAt
defautInterestEventCompletedOn: moment(
state.defautInterestEventCompletedOn
)
.add(1, 'days')
.utc()
Expand Down
10 changes: 5 additions & 5 deletions src/store/InterestEvent/selectors.js
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ const calculateFulfillmentSummary = (interestEvents, groupingLabel) => {
};

export const getEndOfActivityRange = (state, props) => {
return state.interestEvent.defautInterestEventCompletedAt;
return state.interestEvent.defautInterestEventCompletedOn;
};

export const getStartOfActivityRange = (state, props) => {
Expand Down Expand Up @@ -92,7 +92,7 @@ export const getInterestEventsInRange = (state, props) => {
const numDays = rangeEndMoment.diff(moment(rangeStart), 'days');
return state.interestEvent.interestEvents.filter(interestEvent => {
return (
rangeEndMoment.diff(moment(interestEvent.completedAt), 'days') < numDays
rangeEndMoment.diff(moment(interestEvent.completedOn), 'days') < numDays
);
});
};
Expand All @@ -104,7 +104,7 @@ export const getInterestEventsForInterestInRange = (state, props) => {
const numDays = rangeEndMoment.diff(moment(rangeStart), 'days');
return getInterestEventsForInterest(state, props).filter(interestEvent => {
return (
rangeEndMoment.diff(moment(interestEvent.completedAt), 'days') < numDays
rangeEndMoment.diff(moment(interestEvent.completedOn), 'days') < numDays
);
});
};
Expand All @@ -119,7 +119,7 @@ export const getInterestEventsForInterestGroupInRange = (state, props) => {
props
).filter(interestEvent => {
return (
rangeEndMoment.diff(moment(interestEvent.completedAt), 'days') < numDays
rangeEndMoment.diff(moment(interestEvent.completedOn), 'days') < numDays
);
});
};
Expand All @@ -134,7 +134,7 @@ export const getInterestEventsByInterestGroupIdInRange = (state, props) => {
).reduce((memo, [key, val]) => {
memo[key] = val.filter(interestEvent => {
return (
rangeEndMoment.diff(moment(interestEvent.completedAt), 'days') < numDays
rangeEndMoment.diff(moment(interestEvent.completedOn), 'days') < numDays
);
});
return memo;
Expand Down
5 changes: 3 additions & 2 deletions src/store/InterestGroup/actions.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import * as _ from 'lodash';
import { resourceUrl, options } from '../../api';

const RESOURCE_NAME = 'interestGroups';
const RESOURCE_NAME = 'interest_groups';

export const REQUEST_INTEREST_GROUPS = 'REQUEST_INTEREST_GROUPS';
export const RECEIVE_INTEREST_GROUPS = 'RECEIVE_INTEREST_GROUPS';
Expand All @@ -21,7 +22,7 @@ export const fetchInterestGroups = () => dispatch => {
.then(json =>
dispatch(
receiveInterestGroups(
json.map(post => Object.assign(post, { id: post._id.$oid }))
json.map(result => _.mapKeys(result, (val, key) => _.camelCase(key)))
)
)
);
Expand Down

0 comments on commit 7a51c95

Please sign in to comment.