private function searchByKeywords(Request $request)
{
$keywords = $request->input('keywords');
$contacts = $this->contact->where('name', 'LIKE', '%' . $keywords . '%')->get();
if (is_numeric($keywords)) {
$query = $this->case->where('id', $keywords);
} else {
if (strpos($keywords, self::TYPE_TWEET) !== false || strpos($keywords, 'twitter') !== false) {
$query = $this->case->where('origin', 'Twitter mention')->orWhere('origin', 'Twitter direct');
} else {
if (strpos($keywords, 'fb') !== false || strpos($keywords, 'facebook') !== false || strpos($keywords, 'post') !== false) {
$query = $this->case->where('origin', 'Facebook post');
}
}
}
if (strtotime($keywords)) {
$today = date("Y-m-d", strtotime("+0 hours", strtotime($keywords)));
$tomorrow = date("Y-m-d", strtotime("+1 day", strtotime($keywords)));
$query = $this->case->whereHas('messages', function ($q) use($today, $tomorrow) {
$q->orderBy('id', 'ASC')->where('post_date', '>=', $today)->where('post_date', '<', $tomorrow);
});
}
foreach ($contacts as $key => $contact) {
$query = $contact->cases();
}
if (!isset($query)) {
return false;
}
return $query;
}