public static function createFromArray($data) { $Record = new \Model_Record(); $Record->object_id = $data['object_id']; $Record->property = $data['property']; $Record->datatype = $data['datatype']; $Record->value = $data['value']; $Record->save(); $Record->created_at = $data['created_at']; $Record->save(); return $Record; }
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; }
public function post_price() { $system_venue_id = \Input::post('venue_id'); $price = intval(\Input::post('price')); if (!$price || !$system_venue_id) { return $this->sendAPIResponse(null, 400, 'Please provide a value both for venue_id and price!'); } $Venue = \Model_Venue::find($system_venue_id); if (!$Venue) { return $this->sendAPIResponse(null, 400, 'Unkown venue / invalid venue_id!'); } try { $Record = new \Model_Record(); // $Record->record_hash = $record_hash; $Record->object_id = $system_venue_id; $Record->property = 'price'; $Record->value = $price; $Record->datatype = 'absolute'; $Record->save(); if (\Collection\Venue::calculateVenuePriceScore($system_venue_id)) { return $this->sendAPIResponse(array('success' => true)); } return $this->sendAPIResponse(null, 400, 'Unkown error'); } 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 $this->sendAPIResponse(null, 400, $err); } }
public function calculateDeltas() { $query = \DB::select_array(); $query->from('record'); $query->where('datatype', 'absolute'); $query->where('property', 'NOT IN', array('herenow', 'rating')); $query->order_by('object_id'); $query->order_by('property'); $query->order_by('created_at', 'asc'); // $query->limit(50); $Results = $query->execute(); $last_value = -1; $object_id = -1; $data = array(); foreach ($Results->as_array() as $key => $row) { if (!$row['object_id'] || !$row['property']) { continue; } if ($object_id != $row['object_id']) { $data = array(); $property = $row['property']; $object_id = $row['object_id']; $last_value = -1; $this->cliOutput('write', 'object_id: ' . $row['object_id']); } if ($property != $row['property']) { $property = $row['property']; $last_value = -1; } if ($last_value != -1) { $Record = new \Model_Record(); // $Record->record_hash = $row['record_hash'].'r'; $Record->object_id = $row['object_id']; $Record->property = $property; $Record->value = $row['value'] - $last_value; $Record->datatype = 'relative'; $Record->save(); $Record->created_at = $row['created_at']; $Record->save(); } $last_value = $row['value']; } }