Rubenwouters\CrmLauncher\Updates\UpdateAllCases::collectDirectMessages PHP Метод

collectDirectMessages() публичный Метод

Gets all direct (private) messages on Twitter
public collectDirectMessages ( ) : void
Результат 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']);
        }
    }

Usage Example

Пример #1
0
 /**
  * Execute the console command.
  *
  * @return mixed
  */
 public function handle()
 {
     if (isFacebookLinked()) {
         $this->update->collectPrivateConversations();
         $this->update->collectPosts();
     }
     if (isTwitterLinked()) {
         $this->update->collectMentions();
         $this->update->collectDirectMessages();
     }
     $this->log->updateLog('fetching');
 }