Skip to content

Commit

Permalink
uses flat train data structure
Browse files Browse the repository at this point in the history
  • Loading branch information
minaorangina committed Nov 26, 2017
1 parent 3950375 commit 2de6023
Show file tree
Hide file tree
Showing 6 changed files with 26 additions and 34 deletions.
22 changes: 9 additions & 13 deletions server/lib/sendBackData.js
Original file line number Diff line number Diff line change
@@ -1,19 +1,15 @@

function sendBackData (io, { data = [], mode, direction, destination }) {
const origin = direction === 'away' ? process.env.AWAYWARDS_ORIGIN_TRAIN_NAME : process.env.AWAYWARDS_DESTINATION_TRAIN_NAME;
let androidData;
parseTrainData(data)
.then(parsed => {
if (parsed) {
androidData = parsed;
}
.then((parsed = []) => {
io.emit(`${mode}:arrivals`, {
android_data: androidData,
data,
direction,
origin,
destination,
last_updated: new Date().toISOString()
android_data: parsed,
data,
direction,
origin,
destination,
last_updated: new Date().toISOString()
});
})
.catch(console.error);
Expand All @@ -25,11 +21,11 @@ function parseTrainData (trainData, mode = 'train') {
return resolve();
}
const mapped = trainData.map(arrival => {
const finalDestination = arrival.destination.location[0].locationName;
const terminus = arrival.destination.location[0].locationName;
return {
std: arrival.std,
etd: arrival.etd,
identifier: `${arrival.std} to ${normaliseStationName(finalDestination, mode)}`
terminus: normaliseStationName(terminus, mode)
};
});
resolve(mapped);
Expand Down
4 changes: 2 additions & 2 deletions src/js/actions.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,11 @@ export function getArrivalsRequest (mode) {
};
}

export function getArrivalsSuccess (mode, data) {
export function getArrivalsSuccess (mode, payload) {
return {
type: GET_ARRIVALS_SUCCESS,
mode,
data
payload
};
}

Expand Down
1 change: 1 addition & 0 deletions src/js/components/arrivals.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ const Arrivals = ({ train, dlr, direction, changeDirection }) => {
data={ train.arrivals }
origin={ train.origin }
destination={ train.destination }
terminus={ train.terminus }
direction={ direction }
last_updated={ train.last_updated }
/>
Expand Down
12 changes: 3 additions & 9 deletions src/js/components/card.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ import PropTypes from 'prop-types';
import moment from 'moment';

const normaliseStationName = (stationName, mode) => {
console.log(mode)
if (mode === 'dlr' && stationName.length > 0) {
return stationName.replace(' DLR Station', '');
}
Expand All @@ -19,9 +18,6 @@ const Card = ({ mode, origin, destination, data, direction, last_updated }) => {
} else {
header = destination || 'Got nothing...';
}
if (mode === 'train') {
console.log("DATA", data)
}
return (
<div className={ `card ${mode} ${direction || ''}` }>
<p className="last-updated">Last updated: { moment(last_updated).format('HH:mm') }</p>
Expand All @@ -38,7 +34,6 @@ const Card = ({ mode, origin, destination, data, direction, last_updated }) => {
mode={ mode }
arrival={ arrival }
destination={ destination }
finalDestination={ mode === 'train' && data.length > 0 && `${data[i].destination.location[0].locationName}` }
time={ time }
/>
);
Expand All @@ -48,18 +43,17 @@ const Card = ({ mode, origin, destination, data, direction, last_updated }) => {
);
};

const ArrivalItem = ({ mode, arrival, finalDestination, time }) => {
const ArrivalItem = ({ mode, arrival, time }) => {
if (mode === 'train') {
return (
<div className="arrival-item-container">
<div className='arrival-item'>
{ `${arrival.std} to ${normaliseStationName(finalDestination, mode)}` }
{ `${arrival.std} to ${normaliseStationName(arrival.terminus, mode)}` }
</div>
<div className='info'>{ arrival.etd }</div>
</div>
);
} else {
console.log("ARRIVAL", arrival)
return (
<div className="arrival-item-container">
{ mode === 'bus' && `${arrival.lineName} ` }
Expand Down Expand Up @@ -89,6 +83,6 @@ Card.propTypes = {
ArrivalItem.propTypes = {
mode: PropTypes.string,
arrival: PropTypes.object,
finalDestination: PropTypes.string,
terminus: PropTypes.string,
time: PropTypes.string
};
9 changes: 5 additions & 4 deletions src/js/reducer.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ export const initialState = {
arrivals: [],
origin: '',
destination: '',
terminus: '',
last_updated: undefined,
error: undefined
},
Expand All @@ -45,11 +46,11 @@ export function reducer (state = initialState, action) {
case GET_ARRIVALS_SUCCESS: {
const data = {
...state[action.mode],
arrivals: action.data.data,
origin: action.data.origin,
destination: action.data.destination,
arrivals: action.mode === 'train' ? action.payload.android_data : action.payload.data,
origin: action.payload.origin,
destination: action.payload.destination,
direction: action.direction,
last_updated: action.data.last_updated
last_updated: action.payload.last_updated
};
return { ...state, isFetching: false, [action.mode]: data };
}
Expand Down
12 changes: 6 additions & 6 deletions src/js/socket.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,16 @@ export const socket = io(); // eslint-disable-line no-undef

export function registerListeners (dispatch) {

socket.on('dlr:arrivals', (data) => {
dispatch(getArrivalsSuccess('dlr', data));
socket.on('dlr:arrivals', (payload) => {
dispatch(getArrivalsSuccess('dlr', payload));
});

socket.on('bus:arrivals', (data) => {
dispatch(getArrivalsSuccess('bus', data));
socket.on('bus:arrivals', (payload) => {
dispatch(getArrivalsSuccess('bus', payload));
});

socket.on('train:arrivals', (data) => {
dispatch(getArrivalsSuccess('train', data));
socket.on('train:arrivals', (payload) => {
dispatch(getArrivalsSuccess('train', payload));
});

socket.on('dlr:error', (error) => {
Expand Down

0 comments on commit 2de6023

Please sign in to comment.