/**
* Gets all direct (private) messages on Twitter
* @return void
*/
public function collectDirectMessages()
{
$sinceId = latestDirect();
$directs = $this->twitterContent->fetchDirectMessages($sinceId);
foreach ($directs as $key => $direct) {
$date = changeDateFormat($direct['created_at']);
$message = new Message();
if ($this->contact->where('twitter_id', $direct['sender']['id_str'])->exists()) {
$contact = $this->contact->where('twitter_id', $direct['sender']['id_str'])->first();
if (count($contact->cases)) {
$case = $contact->cases()->where('origin', 'Twitter direct')->orderBy('id', 'DESC')->first();
} else {
$case = $this->case->createCase('twitter_direct', $direct, $contact);
}
$message->case_id = $case->id;
$this->case->openCase($case);
} else {
$contact = $this->contact->createContact('twitter_direct', $direct);
$case = $this->case->createCase('twitter_direct', $direct, $contact);
$message->case_id = $case->id;
}
$message->contact_id = $contact->id;
$message->direct_id = $direct['id_str'];
$message->message = filterUrl($direct['text']);
$message->post_date = $date;
$message->save();
$this->media->handleMedia($message->id, $direct, 'twitter');
$this->updateCase($case->id, 'twitter', $direct['id_str']);
}
}