load->database(); } public function save($data) { $inserted = []; $updated = []; foreach ($data->videos as $v) { if (empty($data->action) || $data->action == 'insert') { $publishedAt = date('Y-m-d H:i:s', strtotime($v->publishedAt)); $v = (object) array_map(function ($val) { return is_null($val) ? "" : $val; }, (array) $v); $video = [ 'Title' => $v->title, 'Thumbnail' => $v->thumbnails->high->url, 'Description' => $v->description, 'Category' => $data->categoryTitle, 'VideoId' => $v->id, 'UpdatedAt' => $publishedAt, 'CreatedAt' => date('Y-m-d H:i:s') ]; }else $video = (array)$v; if (!$this->db->where('VideoId', $video['VideoId'])->get($this->table)->num_rows()) { $this->db->insert($this->table, $video); array_push($inserted, $this->db->insert_id()); } else { $this->db->where('VideoId', $video['VideoId'])->update($this->table, $video); array_push($updated, $video['VideoId']); } } return ['inserted' => $inserted, 'updated' => $updated]; } public function get($data) { return $this->db->offset($data->offset)->limit(empty($data->limit) ? 10 : $data->limit)->get($this->table)->result(); } public function delete($data) { $deleted = []; foreach($data->videos as $video) { $this->db->where('VideoId', $video->VideoId)->delete($this->table); array_push($deleted, $video->VideoId); } return $deleted; } }