public function updatePost() { $user_id = Auth::user()->id; $rules = array('content' => 'required'); $validator = Validator::make(Input::all(), $rules); $post_id = Input::get('id'); if ($validator->fails()) { return Redirect::back()->withErrors($validator); } if (Input::has('network')) { $content = Input::get('content'); $post = Post::where('user_id', '=', $user_id)->where('id', '=', $post_id)->first(); $post->content = $content; $post->save(); $networks = Input::get('network'); $post_networks = PostNetwork::where('post_id', '=', $post_id)->lists('network_id'); foreach ($post_networks as $network_id) { if (!in_array($network_id, $networks)) { $post_network = PostNetwork::where('network_id', '=', $network_id)->where('post_id', '=', $post_id)->first(); if (!empty($post_network)) { $post_network->status = 0; $post_network->save(); } } } foreach ($networks as $network_id) { $post_network = PostNetwork::where('network_id', '=', $network_id)->where('post_id', '=', $post_id)->first(); if (!empty($post_network)) { $post_network->status = 1; $post_network->save(); } else { $post_network = new PostNetwork(); $post_network->user_id = $user_id; $post_network->post_id = $post_id; $post_network->network_id = $network_id; $post_network->status = 1; $post_network->save(); } } } $response_data = array('type' => 'success', 'text' => 'Post was updated!', 'post' => array('id' => $post_id, 'title' => substr($content, 0, 24), 'content' => $content)); return $response_data; }
public function fire($job, $data) { $post_id = $data['post_id']; $post = Post::find($post_id); if (!empty($post)) { $user_id = $post->user_id; $post_url = ''; preg_match_all('#[-a-zA-Z0-9@:%_\\+.~\\#?&//=]{2,256}\\.[a-z]{2,4}\\b(\\/[-a-zA-Z0-9@:%_\\+.~\\#?&//=]*)?#si', $post->content, $url_matches); if (!empty($url_matches)) { $all_urls = $url_matches[0]; $post_url = !empty($all_urls[0]) ? $all_urls[0] : ''; } $network_ids = PostNetwork::where('post_id', '=', $post_id)->lists('network_id'); $network = Network::where('user_id', '=', $user_id)->select('user_token', 'user_secret', 'network')->whereIn('id', $network_ids)->get(); $client = new GuzzleHttp\Client(); if (!empty($network)) { foreach ($network as $s) { if ($s->network == 'twitter') { try { Twitter::setOAuthToken($s->user_token); Twitter::setOAuthTokenSecret($s->user_secret); $twitter_response = Twitter::statusesUpdate($post->content); } catch (Exception $e) { } } else { if ($s->network == 'linkedin') { if (!empty($post_url)) { try { $post_data = array('comment' => $post->content, 'content' => array('description' => $post->content), 'visibility' => array('code' => 'anyone')); $post_data['content']['submittedUrl'] = $post_url; $request_body = $post_data; $linkedin_resource = '/v1/people/~/shares'; $request_format = 'json'; $linkedin_params = array('oauth2_access_token' => $s->user_token, 'format' => $request_format); $linkedinurl_info = parse_url('https://api.linkedin.com' . $linkedin_resource); if (isset($linkedinurl_info['query'])) { $query = parse_str($linkedinurl_info['query']); $linkedin_params = array_merge($linkedin_params, $query); } $request_url = 'https://api.linkedin.com' . $linkedinurl_info['path'] . '?' . http_build_query($linkedin_params); $request_body = json_encode($request_body); $linkedin_response = CurlRequester::requestCURL('POST', $request_url, $request_body, $request_format); } catch (Exception $e) { } } } else { if ($s->network == 'facebook') { try { $post_data = array('access_token' => $s->user_token, 'message' => $post->content); if (!empty($post_url)) { $post_data['link'] = $post_url; } $res = $client->post('https://graph.facebook.com/me/feed', array('query' => $post_data)); $response_body = $res->getBody(); $response_body = json_decode($response_body, true); } catch (Exception $e) { } } } } } } } $post->published = 1; $post->save(); $job->delete(); }