def _process_json(self, json_data): activity_id = json_data['activityId'] event = GarminConnectEnums.Event.from_json(json_data) sport, sub_sport = GarminConnectEnums.get_summary_sport(json_data) activity = { 'activity_id': activity_id, 'name': json_data.get('activityName'), 'description': self._get_field(json_data, 'description'), 'type': event.name, 'sport': sport.name, 'sub_sport': sub_sport.name, 'laps': self._get_field(json_data, 'lapCount'), } activity.update(self._process_common(json_data)) GarminDB.Activities.s_insert_or_update(self.garmin_act_db_session, activity, ignore_none=True) self._call_process_func(sport.name, sub_sport, activity_id, json_data) return 1
def _process_json(self, json_data): activity_id = json_data['activityId'] distance = self._get_field_obj(json_data, 'distance', Fit.Distance.from_meters) ascent = self._get_field_obj(json_data, 'elevationGain', Fit.Distance.from_meters) descent = self._get_field_obj(json_data, 'elevationLoss', Fit.Distance.from_meters) avg_speed = self._get_field_obj(json_data, 'averageSpeed', Fit.Speed.from_mps) max_speed = self._get_field_obj(json_data, 'maxSpeed', Fit.Speed.from_mps) max_temperature = self._get_field_obj(json_data, 'maxTemperature', Fit.Temperature.from_celsius) min_temperature = self._get_field_obj(json_data, 'minTemperature', Fit.Temperature.from_celsius) event = GarminConnectEnums.Event.from_json(json_data) sport, sub_sport = GarminConnectEnums.get_summary_sport(json_data) activity = { 'activity_id' : activity_id, 'name' : json_data.get('activityName'), 'description' : self._get_field(json_data, 'description'), 'type' : event.name, 'sport' : sport.name, 'sub_sport' : sub_sport.name, 'start_time' : dateutil.parser.parse(self._get_field(json_data, 'startTimeLocal'), ignoretz=True), 'elapsed_time' : Fit.conversions.secs_to_dt_time(self._get_field(json_data, 'elapsedDuration', int)), 'moving_time' : Fit.conversions.secs_to_dt_time(self._get_field(json_data, 'movingDuration', int)), 'start_lat' : self._get_field(json_data, 'startLatitude', float), 'start_long' : self._get_field(json_data, 'startLongitude', float), 'stop_lat' : self._get_field(json_data, 'endLatitude', float), 'stop_long' : self._get_field(json_data, 'endLongitude', float), 'distance' : distance.kms_or_miles(self.measurement_system), 'laps' : self._get_field(json_data, 'lapCount'), 'avg_hr' : self._get_field(json_data, 'averageHR', float), 'max_hr' : self._get_field(json_data, 'maxHR', float), 'calories' : self._get_field(json_data, 'calories', float), 'avg_speed' : avg_speed.kph_or_mph(self.measurement_system), 'max_speed' : max_speed.kph_or_mph(self.measurement_system), 'ascent' : ascent.meters_or_feet(self.measurement_system), 'descent' : descent.meters_or_feet(self.measurement_system), 'max_temperature' : max_temperature.c_or_f(self.measurement_system), 'min_temperature' : min_temperature.c_or_f(self.measurement_system), 'training_effect' : self._get_field(json_data, 'aerobicTrainingEffect', float), 'anaerobic_training_effect' : self._get_field(json_data, 'anaerobicTrainingEffect', float), } GarminDB.Activities.s_insert_or_update(self.garmin_act_db_session, activity, ignore_none=True) self._call_process_func(sport.name, sub_sport, activity_id, json_data) return 1