public function create_event($data) { $errors = $this->validate($data); if ($errors) { return ['errors' => $errors, 'data' => $data]; } $info = $this->gm->geoPlaceInfo($data['place_id']); if (!$info) { $errors['place_id'] = sprintf(lang('invalid_field'), ucfirst(lang('place_id'))); return ['errors' => $errors, 'data' => $data]; } else { $data['place_info'] = json_encode(['name' => $info->result->name, 'address' => $info->result->formatted_address, 'icon' => $info->result->icon, 'phone' => $info->result->international_phone_number, 'website' => $info->result->website, 'rating' => $info->result->rating]); $data['lat'] = $info->result->geometry->location->lat; $data['lng'] = $info->result->geometry->location->lng; } $data['id'] = $this->add($data); $this->join_event($data['id'], $data['users_id']); return ['errors' => [], 'data' => $data]; }