Exemplo n.º 1
0
 public function getAction($post = null, $action = null)
 {
     $post = Post::find($post);
     if (!$post) {
         app()->abort(422);
     }
     if ($action) {
         // Log action and push to queue
         $log = Log::firstOrNew(['reason' => $action, 'market_item_id' => $post->market()->whereAction($action)->first()->id]);
         if (!$log->id) {
             Auth::user()->log()->save($log);
             $job = (new AwaitAction($log))->onQueue('check');
             $this->dispatch($job);
         } else {
             return ['error' => trans('app.action_duplicate')];
         }
     }
     if (!$post) {
         return ['success' => true];
     }
     $url = !$action ? false : $this->social->with($post->provider)->action($action, $post->provider_id);
     if ($url === true) {
         return ['success' => true];
     }
     if (!$url || !parse_url($url)) {
         $url = $post->link;
     }
     return ['success' => true, 'redirect' => $url];
 }