public static function saveInteractionStats($system_interaction_id, $interaction, $Model_Interaction_Meta_Instagram = false, $extended = false) { // reset latest setting $query = \DB::update('tracking_log'); $query->where('object_id', $system_interaction_id); $query->where('source', 'instagram'); $query->value('is_latest', 0); $query->execute(); $stats = array('photos' => 1, 'comment' => $interaction->comments->count, 'like' => $interaction->likes->count); if ($extended) { // $stats['xxx'] = $interaction->xxx; } // $VenueRecord = self::getOrCreateVenueRecord($system_interaction_id); foreach ($stats as $property => $value) { $time_key = date('Y_m_d_H'); /* $record_hash = implode('_', array( 'ig', $interaction->id, $property, $time_key )); */ try { $Record = new \Model_Record(); // $Record->record_hash = $record_hash; $Record->object_id = $system_interaction_id; $Record->property = $property; $Record->value = $value; $Record->datatype = 'absolute'; $Record->save(); // $VenueRecord->$property = $value; } catch (\Database_Exception $err) { // catch error. normally there shouldn't be an error, but in the development phase it's possible to have incomplete data, so errors could occur at this place. echo $err; exit; return $err; } } // $VenueRecord->save(); // keep track of tracking... $Log = new \Model_Tracking_Log(); $Log->object_id = $system_interaction_id; $Log->success = 1; $Log->is_latest = 1; $Log->source = 'instagram'; $Log->save(); if ($Model_Interaction_Meta_Instagram) { $Model_Interaction_Meta_Instagram->comments = $interaction->comments->count; $Model_Interaction_Meta_Instagram->link = $interaction->link; $Model_Interaction_Meta_Instagram->likes = $interaction->likes->count; $Model_Interaction_Meta_Instagram->save(); } return $stats; }
public static function saveVenueStats($system_venue_id, $venue, $extended = false) { // reset latest setting $query = \DB::update('tracking_log'); $query->where('object_id', $system_venue_id); $query->where('source', 'foursquare'); $query->value('is_latest', 0); $query->execute(); $stats = array('checkin' => $venue->stats->checkinsCount, 'checkin-unique' => $venue->stats->usersCount, 'review' => $venue->stats->tipCount, 'like' => $venue->likes->count, 'herenow' => isset($venue->herenow) ? $venue->herenow : 0); if ($extended) { $stats['rating'] = isset($venue->rating) ? $venue->rating * 100 : 0; $stats['price'] = isset($venue->price->tier) ? $venue->price->tier : 0; $stats['photos'] = $venue->photos->count; $stats['specials'] = $venue->specials->count; // $stats['herenow'] = $venue->hereNow->count; $stats['mayor'] = $venue->mayor->count; } $VenueRecord = self::getOrCreateVenueRecord($system_venue_id); foreach ($stats as $property => $value) { $time_key = date('Y_m_d_H'); /* $record_hash = implode('_', array( '4q', $venue->id, $property, $time_key )); */ try { $Record = new \Model_Record(); // $Record->record_hash = $record_hash; $Record->object_id = $system_venue_id; $Record->property = $property; $Record->value = $value; $Record->datatype = 'absolute'; $Record->save(); $VenueRecord->{$property} = $value; } catch (\Database_Exception $err) { // catch error. normally there shouldn't be an error, but in the development phase it's possible to have incomplete data, so errors could occur at this place. return $err; } } $VenueRecord->save(); // keep track of tracking... $Log = new \Model_Tracking_Log(); $Log->object_id = $system_venue_id; $Log->success = 1; $Log->is_latest = 1; $Log->source = 'foursquare'; $Log->save(); return $stats; }