master
 1import * as events from '../events';
 2
 3export default class FetchNewWorkout {
 4  constructor(eventAggregator, api, configuration) {
 5    this.eventAggregator = eventAggregator;
 6    this.api = api;
 7    this.configuration = configuration;
 8  }
 9
10  subscribeTo(eventAggregator) {
11    eventAggregator.subscribe(events.FETCH_NEW_WORKOUT, this);
12  }
13
14  notify(event) {
15    if (this.configuration.isEnabled('LOCAL_ONLY')) {
16      this.onResponse(this.exampleResponse());
17    } else {
18      this.api.get('/workouts/new', this.onResponse.bind(this));
19    }
20  }
21
22  onResponse(json) {
23    this.eventAggregator.publish({
24      event: events.FETCHED_NEW_WORKOUT,
25      ...json
26    });
27  }
28
29  exampleResponse() {
30    return {
31      "body_weight":{"amount":237.0,"unit":"lbs"},
32      "routine":{"id":"493263ce-6b60-456f-8645-f2c3f0e0f820","name":"B"},
33      "exercises":[
34        {"id":"7d91de12-60f6-4a04-9ed4-a9bbeb05681b","name":"Squat"},
35        {"id":"98900216-dc06-474b-9f65-d72509aab218","name":"Overhead Press"},
36        {"id":"046bfecd-549a-43c3-b9c2-32459936fce7","name":"Deadlift"},
37        {"id":"91abf59a-1a4b-4d2f-9d3f-4434bf3068a3","name":"Chinups"},
38        {"id":"60278cc7-3d96-44a0-87af-c0df91064145","name":"Pull Ups"},
39        {"id":"4a5f6c3e-d659-4845-b3c4-3f6210a9464f","name":"Close Grip Bench Press"}
40      ],
41      "sets":[
42        {"id":null,"exercise_id":"7d91de12-60f6-4a04-9ed4-a9bbeb05681b","type":"WarmUpSet","target_weight":{"amount":45.0,"unit":"lbs"},"target_repetitions":5,"actual_repetitions":null,"actual_duration":null,"target_duration":null},
43        {"id":null,"exercise_id":"7d91de12-60f6-4a04-9ed4-a9bbeb05681b","type":"WarmUpSet","target_weight":{"amount":45.0,"unit":"lbs"},"target_repetitions":5,"actual_repetitions":null,"actual_duration":null,"target_duration":null},
44        {"id":null,"exercise_id":"7d91de12-60f6-4a04-9ed4-a9bbeb05681b","type":"WarmUpSet","target_weight":{"amount":95.0,"unit":"lbs"},"target_repetitions":5,"actual_repetitions":null,"actual_duration":null,"target_duration":null},
45        {"id":null,"exercise_id":"7d91de12-60f6-4a04-9ed4-a9bbeb05681b","type":"WarmUpSet","target_weight":{"amount":135.0,"unit":"lbs"},"target_repetitions":5,"actual_repetitions":null,"actual_duration":null,"target_duration":null},
46        {"id":null,"exercise_id":"7d91de12-60f6-4a04-9ed4-a9bbeb05681b","type":"WarmUpSet","target_weight":{"amount":185.0,"unit":"lbs"},"target_repetitions":5,"actual_repetitions":null,"actual_duration":null,"target_duration":null},
47        {"id":null,"exercise_id":"7d91de12-60f6-4a04-9ed4-a9bbeb05681b","type":"WarmUpSet","target_weight":{"amount":225.0,"unit":"lbs"},"target_repetitions":3,"actual_repetitions":null,"actual_duration":null,"target_duration":null},
48        {"id":null,"exercise_id":"7d91de12-60f6-4a04-9ed4-a9bbeb05681b","type":"WarmUpSet","target_weight":{"amount":265.0,"unit":"lbs"},"target_repetitions":2,"actual_repetitions":null,"actual_duration":null,"target_duration":null},
49        {"id":null,"exercise_id":"7d91de12-60f6-4a04-9ed4-a9bbeb05681b","type":"WarmUpSet","target_weight":{"amount":305.0,"unit":"lbs"},"target_repetitions":1,"actual_repetitions":null,"actual_duration":null,"target_duration":null},
50        {"id":null,"exercise_id":"7d91de12-60f6-4a04-9ed4-a9bbeb05681b","type":"WorkSet","target_weight":{"amount":335.0,"unit":"lbs"},"target_repetitions":5,"actual_repetitions":null,"actual_duration":null,"target_duration":null},
51        {"id":null,"exercise_id":"7d91de12-60f6-4a04-9ed4-a9bbeb05681b","type":"WorkSet","target_weight":{"amount":335.0,"unit":"lbs"},"target_repetitions":5,"actual_repetitions":null,"actual_duration":null,"target_duration":null},
52        {"id":null,"exercise_id":"7d91de12-60f6-4a04-9ed4-a9bbeb05681b","type":"WorkSet","target_weight":{"amount":335.0,"unit":"lbs"},"target_repetitions":5,"actual_repetitions":null,"actual_duration":null,"target_duration":null},
53        {"id":null,"exercise_id":"98900216-dc06-474b-9f65-d72509aab218","type":"WarmUpSet","target_weight":{"amount":45.0,"unit":"lbs"},"target_repetitions":5,"actual_repetitions":null,"actual_duration":null,"target_duration":null},
54        {"id":null,"exercise_id":"98900216-dc06-474b-9f65-d72509aab218","type":"WarmUpSet","target_weight":{"amount":45.0,"unit":"lbs"},"target_repetitions":5,"actual_repetitions":null,"actual_duration":null,"target_duration":null},
55        {"id":null,"exercise_id":"98900216-dc06-474b-9f65-d72509aab218","type":"WarmUpSet","target_weight":{"amount":75.0,"unit":"lbs"},"target_repetitions":3,"actual_repetitions":null,"actual_duration":null,"target_duration":null},
56        {"id":null,"exercise_id":"98900216-dc06-474b-9f65-d72509aab218","type":"WorkSet","target_weight":{"amount":110.0,"unit":"lbs"},"target_repetitions":5,"actual_repetitions":null,"actual_duration":null,"target_duration":null},
57        {"id":null,"exercise_id":"98900216-dc06-474b-9f65-d72509aab218","type":"WorkSet","target_weight":{"amount":110.0,"unit":"lbs"},"target_repetitions":5,"actual_repetitions":null,"actual_duration":null,"target_duration":null},
58        {"id":null,"exercise_id":"98900216-dc06-474b-9f65-d72509aab218","type":"WorkSet","target_weight":{"amount":110.0,"unit":"lbs"},"target_repetitions":5,"actual_repetitions":null,"actual_duration":null,"target_duration":null},
59        {"id":null,"exercise_id":"046bfecd-549a-43c3-b9c2-32459936fce7","type":"WarmUpSet","target_weight":{"amount":135.0,"unit":"lbs"},"target_repetitions":5,"actual_repetitions":null,"actual_duration":null,"target_duration":null},
60        {"id":null,"exercise_id":"046bfecd-549a-43c3-b9c2-32459936fce7","type":"WarmUpSet","target_weight":{"amount":185.0,"unit":"lbs"},"target_repetitions":5,"actual_repetitions":null,"actual_duration":null,"target_duration":null},
61        {"id":null,"exercise_id":"046bfecd-549a-43c3-b9c2-32459936fce7","type":"WarmUpSet","target_weight":{"amount":225.0,"unit":"lbs"},"target_repetitions":5,"actual_repetitions":null,"actual_duration":null,"target_duration":null},
62        {"id":null,"exercise_id":"046bfecd-549a-43c3-b9c2-32459936fce7","type":"WarmUpSet","target_weight":{"amount":265.0,"unit":"lbs"},"target_repetitions":5,"actual_repetitions":null,"actual_duration":null,"target_duration":null},
63        {"id":null,"exercise_id":"046bfecd-549a-43c3-b9c2-32459936fce7","type":"WorkSet","target_weight":{"amount":290.0,"unit":"lbs"},"target_repetitions":5,"actual_repetitions":null,"actual_duration":null,"target_duration":null},
64        {"id":null,"exercise_id":"91abf59a-1a4b-4d2f-9d3f-4434bf3068a3","type":"WorkSet","target_weight":{"amount":0.0,"unit":"lbs"},"target_repetitions":5,"actual_repetitions":null,"actual_duration":null,"target_duration":null},
65        {"id":null,"exercise_id":"91abf59a-1a4b-4d2f-9d3f-4434bf3068a3","type":"WorkSet","target_weight":{"amount":0.0,"unit":"lbs"},"target_repetitions":5,"actual_repetitions":null,"actual_duration":null,"target_duration":null},
66        {"id":null,"exercise_id":"91abf59a-1a4b-4d2f-9d3f-4434bf3068a3","type":"WorkSet","target_weight":{"amount":0.0,"unit":"lbs"},"target_repetitions":5,"actual_repetitions":null,"actual_duration":null,"target_duration":null},
67        {"id":null,"exercise_id":"60278cc7-3d96-44a0-87af-c0df91064145","type":"WorkSet","target_weight":{"amount":45.0,"unit":"lbs"},"target_repetitions":5,"actual_repetitions":null,"actual_duration":null,"target_duration":null},
68        {"id":null,"exercise_id":"60278cc7-3d96-44a0-87af-c0df91064145","type":"WorkSet","target_weight":{"amount":45.0,"unit":"lbs"},"target_repetitions":5,"actual_repetitions":null,"actual_duration":null,"target_duration":null},
69        {"id":null,"exercise_id":"60278cc7-3d96-44a0-87af-c0df91064145","type":"WorkSet","target_weight":{"amount":45.0,"unit":"lbs"},"target_repetitions":5,"actual_repetitions":null,"actual_duration":null,"target_duration":null},
70        {"id":null,"exercise_id":"4a5f6c3e-d659-4845-b3c4-3f6210a9464f","type":"WorkSet","target_weight":{"amount":45.0,"unit":"lbs"},"target_repetitions":5,"actual_repetitions":null,"actual_duration":null,"target_duration":null},
71        {"id":null,"exercise_id":"4a5f6c3e-d659-4845-b3c4-3f6210a9464f","type":"WorkSet","target_weight":{"amount":45.0,"unit":"lbs"},"target_repetitions":5,"actual_repetitions":null,"actual_duration":null,"target_duration":null},
72        {"id":null,"exercise_id":"4a5f6c3e-d659-4845-b3c4-3f6210a9464f","type":"WorkSet","target_weight":{"amount":45.0,"unit":"lbs"},"target_repetitions":5,"actual_repetitions":null,"actual_duration":null,"target_duration":null}
73      ]
74    };
75  }
76}