/**
  * Get most recent id's for Twitter & Facebook
  *
  * @return void
  */
 private function initIds()
 {
     $message = new Message();
     if (isTwitterLinked()) {
         $mentionId = $this->twitterContent->newestMentionId();
         $directId = $this->twitterContent->newestDirectId();
         if ($mentionId) {
             $message->tweet_id = $mentionId;
         }
         if ($directId) {
             $message->direct_id = $directId;
         }
     }
     if (isFacebookLinked()) {
         $postId = $this->facebookContent->newestPostId();
         $conversationId = $this->facebookContent->newestConversationId();
         if ($postId) {
             $message->fb_post_id = $postId;
         }
         if ($conversationId) {
             $message->fb_private_id = $conversationId;
         }
     }
     $message->post_date = Carbon::now();
     $message->save();
     $this->log->updateLog('fetching');
 }
 /**
  * Update config file with followers
  * @return void
  */
 public function updateTwitterDashboardStats()
 {
     $followers = $this->twitterContent->fetchFollowers();
     $config = $this->config->first();
     $config->twitter_followers = $followers['followers_count'];
     $config->save();
 }
 /**
  * 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']);
     }
 }
 /**
  * Publish Tweet and/or Facebook post
  *
  * @param  Request $request
  *
  * @return view
  */
 public function publish(Request $request)
 {
     $this->validate($request, ['content' => 'required', 'social' => 'required']);
     $content = rawurlencode($request->input('content'));
     if (in_array(self::TYPE_TWITTER, $request->input('social'))) {
         $publishment = $this->twitterContent->publishTweet($content);
         $this->insertPublishment(self::TYPE_TWITTER, $publishment, $content);
     }
     if (in_array(self::TYPE_FACEBOOK, $request->input('social'))) {
         $publishment = $this->facebookContent->publishPost($content);
         $this->insertPublishment(self::TYPE_FACEBOOK, $publishment, $content);
     }
     return back();
 }