/** * Execute the console command. * * @return mixed */ public function fire() { Log::alert('Executed Cron Job to send weekly mail for pending karma note and meeting requests.'); $KarmaNotePending = ""; $KarmaNotePending = Meetingrequest::whereIn('status', array('pending', 'accepted'))->get(); if (!empty($KarmaNotePending)) { $test_id = ""; $test_id = Adminoption::Where('option_name', '=', 'Test User Emails')->first(); $test_user_id = $getfintrorecords = array(); if (!empty($test_id)) { $test_user_id = explode(',', $test_id->option_value); } $introducer = $giver = $receiver = $connidgiver = ''; foreach ($KarmaNotePending as $key => $value) { $diffDate = KarmaHelper::dateDiff(date("Y-m-d H:i:s"), $value->created_at); if (isset($value->user_id_giver)) { $giver = in_array($value->user_id_giver, $test_user_id); } if (isset($value->user_id_receiver)) { $receiver = in_array($value->user_id_receiver, $test_user_id); } if (isset($value->connection_id_giver)) { $connidgiver = in_array($value->connection_id_giver, $test_user_id); } if (isset($value->user_id_introducer)) { $introducer = in_array($value->user_id_introducer, $test_user_id); } if ($giver != 1 && $receiver != 1 && $connidgiver != 1 && $introducer != 1) { if ($diffDate->days > 7) { $meetingtimezone = $value->meetingtimezone; $meetingdatetime = $value->meetingdatetime; $user_id_giver = $value->user_id_giver; $user_id_receiver = $value->user_id_receiver; $meetingId = $value->id; $status = $value->status; $CurrentTimeWithZone = KarmaHelper::calculateTime($meetingtimezone); if ($CurrentTimeWithZone > $meetingdatetime && $status == 'accepted') { Queue::push('MessageSender', array('type' => '4', 'user_id_giver' => $user_id_giver, 'user_id_receiver' => $user_id_receiver, 'meetingId' => $meetingId)); } if ($status == 'pending') { //echo"<pre>";print_r($value->id);echo"</pre>"; if (isset($value->user_id_giver)) { Queue::push('MessageSender', array('type' => '1', 'user_id_giver' => $user_id_giver, 'user_id_receiver' => $user_id_receiver, 'meetingId' => $meetingId)); } else { Queue::push('MessageSender', array('type' => '2', 'user_id_giver' => $value->connection_id_giver, 'user_id_receiver' => $user_id_receiver, 'meetingId' => $meetingId)); } } } } } } }
/** * Execute the console command. * * @return mixed */ public function fire() { Log::alert('Executed Cron Job'); $KarmaNotePending = Meetingrequest::where('status', '=', 'confirmed')->where('cronjobflag', '=', '0')->get(); if (!empty($KarmaNotePending)) { foreach ($KarmaNotePending as $key => $value) { $meetingtimezone = $value->meetingtimezone; $meetingdatetime = $value->meetingdatetime; $user_id_giver = $value->user_id_giver; $user_id_receiver = $value->user_id_receiver; $meetingId = $value->id; $CurrentTimeWithZone = KarmaHelper::calculateTime($meetingtimezone); //echo "<pre>";print_r($meetingdatetime);echo "</pre>"; //echo "<pre>";print_r($meetingdatetime);echo "</pre>";die(); if ($CurrentTimeWithZone > $meetingdatetime) { $diffDate = KarmaHelper::dateDiff($CurrentTimeWithZone, $meetingdatetime); $diffDate = $diffDate->days * 24 + $diffDate->h; $EmailTriggerTime = Adminoption::where('option_name', '=', 'KarmaNote Email Trigger Time')->first(); if (!empty($EmailTriggerTime)) { $EmailTriggerTime = $EmailTriggerTime->toArray(); $EmailTriggerTime = $EmailTriggerTime['option_value']; } else { $EmailTriggerTime = '24'; } if ($diffDate >= $EmailTriggerTime) { //$date = Carbon::now()->addMinutes(5); Queue::push('MessageSender', array('type' => '4', 'user_id_giver' => $user_id_giver, 'user_id_receiver' => $user_id_receiver, 'meetingId' => $meetingId)); $Meetingrequest = Meetingrequest::find($meetingId); $Meetingrequest->cronjobflag = '1'; $Meetingrequest->status = 'over'; $Meetingrequest->save(); DB::table('users_mykarma')->where('entry_id', '=', $meetingId)->update(array('status' => 'over', 'unread_flag' => 'true', 'entry_updated_on' => Carbon::now())); $messageData = new Message(); $messageData->request_id = $meetingId; $messageData->sender_id = $user_id_giver; $messageData->giver_id = $user_id_giver; $messageData->receiver_id = $user_id_receiver; $messageData->message_type = 'system'; $messageText = 'Meeting should be over now.'; $messageData->messageText = $messageText; $messageData->save(); //Queue::push('UpdateUser', array('id' => $user_id,'result' => $result)); } } } } }
public function loginWithLinkedin() { // get data from input $code = Input::get('code'); $linkedinService = OAuth::consumer('Linkedin'); if (!empty($code)) { // This was a callback request from linkedin, get the token $token = $linkedinService->requestAccessToken($code); //$token="7ee85959-1809-4899-a10d-626740702f5d"; // Send a request with it. Please note that XML is the default format. $result = json_decode($linkedinService->request('/people/~:(id,first-name,last-name,skills,headline,summary,industry,member-url-resources,picture-urls::(original),location,public-profile-url,email-address,site-standard-profile-request)?format=json'), true); $linkedinid = $result['id']; //echo "<pre>";print_r($token->getAccessToken());echo "</pre>"; //echo $token->accessToken;die; //die(); if (!empty($token)) { //$user = User::where('linkedinid', '=', $linkedinid)->first(); $user = User::where('linkedinid', '=', $linkedinid)->first(); if (!empty($user)) { $user_data = $user->toArray(); $user_id = $user_data['id']; $user_info = User::find($user_id); $user = User::find($user_id); $user->token = $token->getAccessToken(); $user->save(); $CurrentDate = KarmaHelper::currentDate(); $profileupdatedate = $user_info->profileupdatedate; $diffDate = KarmaHelper::dateDiff($CurrentDate, $profileupdatedate); $diffDate = $diffDate->days * 24 + $diffDate->h; $refreshTime = Adminoption::where('option_name', '=', 'connection refresh time')->first(); //echo "<pre>";print_r($refreshTime);echo "</pre>";die(); $InsConnection = KarmaHelper::updateUserProfile($user, $result); if (!empty($refreshTime)) { $refreshTime = $refreshTime->toArray(); $refreshTime = $refreshTime['option_value']; } else { $refreshTime = '360'; } if ($diffDate >= $refreshTime) { $date = Carbon::now()->addMinutes(5); Queue::push('UpdateUser', array('id' => $user_id, 'result' => $result)); } //echo "<pre>";print_r($user);echo "</pre>";die(); if (Auth::loginUsingId($user_id)) { if ($user['registrationstatus'] == '0') { return Redirect::to('register'); } else { return Redirect::to('dashboard'); } } else { return Redirect::route('/'); } } else { if (!isset($result['publicProfileUrl']) || $result['publicProfileUrl'] == '') { $publicProfileUrl = $result['siteStandardProfileRequest']['url']; } else { $publicProfileUrl = $result['publicProfileUrl']; } $user = new User(); $user->fname = $result['firstName']; $user->lname = @$result['lastName']; $user->email = $result['emailAddress']; $user->piclink = @$result['pictureUrls']['values'][0]; $user->linkedinid = $result['id']; $user->summary = @$result['summary']; $user->location = @$result['location']['name']; $user->industry = @$result['industry']; $user->headline = @$result['headline']; $user->linkedinurl = @$publicProfileUrl; $user->token = $token->getAccessToken(); $user->profileupdatedate = date('Y-m-d H:i:s'); $user->save(); $user = $user; $user_id = $user->id; $InsTag = KarmaHelper::insertUsertag($user, $result); Queue::push('MessageSender@newUserEmail', array('user_id' => $user_id)); $InsConnection = KarmaHelper::insertUserConnection($user); if (Auth::loginUsingId($user_id)) { return Redirect::to('dashboard'); } else { return Redirect::route('/'); } } } } else { // get linkedinService authorization $url = $linkedinService->getAuthorizationUri(array('state' => 'DCEEFWF45453sdffef424')); // return to linkedin login url return Redirect::to((string) $url); } }
public function fire() { //fetch all users $getusers = DB::table('users')->select(array('users.*'))->where('users.userstatus', '=', 'approved')->orderBy('created_at', 'DESC')->get(); //process for the records found if (!empty($getusers)) { $queryOfferHelp = array(); foreach ($getusers as $user_info) { $diffDate = KarmaHelper::dateDiff(date("Y-m-d H:i:s"), $user_info->created_at); if ($diffDate->days > -1) { $user_id = $user_info->id; $location = $user_info->location; /*$myKarmaDataOfInCompleteState= DB::select(DB::raw("SELECT COUNT( * ) AS AGGREGATE FROM `users_mykarma` WHERE `status` = 'completed' AND `user_id` =".$user_id." AND created_at > DATE_SUB(NOW(), INTERVAL 1 DAY)")); $myKarmaDataOfInCompleteState= DB::select(DB::raw("SELECT COUNT( * ) AS AGGREGATE FROM `users_mykarma` WHERE `status` != 'completed' AND `user_id` =".$user_id." AND created_at > DATE_SUB(NOW(), INTERVAL 1 DAY)"));*/ $myKarmaDataOfCompleteState = Mykarma::where('status', '=', 'completed')->where('user_id', '=', $user_id)->where('unread_flag', '=', 'true')->where('created_at', '>=', Carbon::now()->subDay(1))->count(); $myKarmaDataOfInCompleteState = Mykarma::where('status', '!=', 'completed')->where('user_id', '=', $user_id)->where('entry_type', '=', 'Meeting')->where('unread_flag', '=', 'true')->where('created_at', '>=', Carbon::now()->subDay(1))->count(); $myKarmaDataOfQuery = Mykarma::where('user_id', '=', $user_id)->where('entry_type', '=', 'Query')->get(); foreach ($myKarmaDataOfQuery as $key => $value) { $allQuery[] = $value->entry_id; } if (!empty($allQuery)) { $queryOfferHelp = Mykarma::whereIn('entry_id', $allQuery)->where('users_role', '=', 'OfferedHelp')->where('unread_flag', '=', 'true')->where('created_at', '>=', Carbon::now()->subDay(1))->count(); } // fetch user connections on KC $getUserConnection = KarmaHelper::getUserConnection($user_id, $location); $user_connection_onkc = 0; if (!empty($getUserConnection)) { foreach ($getUserConnection as $key => $value) { if (isset($value->con_user_id)) { $user_connection_onkc++; } } } // fetch pending karmanote requests $totalPendingRequest = 0; $PendingRequest = array(); $PendingRequest = KarmaHelper::getPendingKarmaNotes($user_info->id); if (!empty($PendingRequest)) { $totalPendingRequest = count($PendingRequest); } //fetch pending KM requests only received no read no unread $totalReceivedRequest = 0; $GiverInMeeting = User::find($user_info->id)->Giver()->where('status', 'pending')->orderBy('updated_at', 'DESC')->get(); if (!empty($GiverInMeeting)) { $totalReceivedRequest = count($GiverInMeeting); } //fetch pending karma intros $totalintroductionInitiated = 0; $IntroducerInitiated = User::find($user_info->id)->Introducer; if (!empty($IntroducerInitiated)) { foreach ($IntroducerInitiated as $key => $value) { $value['user_id_receiver'] = User::find($value['user_id_receiver'])->toArray(); if (!empty($value['user_id_giver'])) { $value['user_id_giver'] = User::find($value['user_id_giver'])->toArray(); } else { $value['user_id_giver'] = Connection::find($value['connection_id_giver'])->toArray(); } if ($value->status == 'pending') { $totalintroductionInitiated++; } } } // fetch queries that have been posted in the last 7 days within common groups including both public & private. $Usergroup = User::find($user_info->id)->Groups; $All_groups = ''; $group_question = 0; $totagroupquestion = 0; $yesterday = Carbon::now()->subDays(1); $one_week_ago = Carbon::now()->subWeeks(1); if (!$Usergroup->isEmpty()) { foreach ($Usergroup as $key => $value) { $All_groups[] = $value->id; } if (!empty($All_groups)) { $group_question = DB::table('group_questions')->join('questions', 'group_questions.question_id', '=', 'questions.id')->select(array('questions.id'))->whereIn('group_questions.group_id', $All_groups)->where('questions.user_id', '!=', $user_info->id)->where('questions.queryStatus', '=', 'open')->where('questions.created_at', '>=', $one_week_ago)->where('questions.created_at', '<=', $yesterday)->orderBy('questions.created_at', 'DESC')->groupBy('question_id')->get(); if (!empty($group_question)) { $totagroupquestion = count($group_question); } } } // fetch weekly suggestion option value set from admin $weekly_suggestion = "KarmaNote"; $weekly_suggestion = Adminoption::Where("option_name", "=", "Weekly Suggestion")->select("option_value")->first(); if (!empty($weekly_suggestion)) { $weekly_suggestion = $weekly_suggestion->option_value; } $getkcUser = $getsuggestion = array(); if ($weekly_suggestion == "KarmaMeeting") { // fetch a random users on KC platform with a common group of logged in user $getkcUser = KarmaHelper::fetchUserGroup($user_id); if (!empty($getkcUser)) { $getkcUser = $getkcUser[0]; } } else { // fetch a user connection either KC or NON KC $getsuggestion = KarmaHelper::getUserConnection($user_id, $location); //get test users id $getUser = KarmaHelper::getTestUsers(); if (!empty($getsuggestion)) { foreach ($getsuggestion as $key => $value) { $test_match = in_array($value->con_user_id, $getUser); if ($value->con_user_id != "" && $test_match != 1) { $getKc = DB::table('users as u')->select(array('u.userstatus', 'u.id', 'u.fname', 'u.lname', 'u.linkedinurl', 'u.piclink', 'u.headline', 'u.email', 'u.karmascore', 'u.location'))->where('u.id', '=', $value->con_user_id)->where('u.userstatus', '=', 'approved')->get(); if (!empty($getKc)) { $value->networkid = $getKc; } } } $getsuggestion = $getsuggestion[array_rand($getsuggestion)]; } } //fetch random 5 unique notes $getKarmanote = ""; $getKarmanote = KarmaHelper::getKarmanote(); $type = 19; $meetingIncomplete = $myKarmaDataOfInCompleteState; $meetingComplete = $myKarmaDataOfCompleteState; $offeredHelp = $queryOfferHelp; $user_id = $user_id; $user_connection_onkc = $user_connection_onkc; $totalPendingRequest = $totalPendingRequest; $totalReceivedRequest = $totalReceivedRequest; $totalintroductionInitiated = $totalintroductionInitiated; $totagroupquestion = $totagroupquestion; $getsuggestion = $getsuggestion; $getkcUser = $getkcUser; $getKarmanote = $getKarmanote; // call a function to send email if ($meetingIncomplete > 0 || $meetingComplete > 0 || $offeredHelp > 0) { $sendLinkedinMessage = MessageHelper::dailyUpdateMykarmaScreen($type, $user_id, $meetingIncomplete, $meetingComplete, $offeredHelp, $user_connection_onkc, $totalPendingRequest, $totalReceivedRequest, $totalintroductionInitiated, $totagroupquestion, $getsuggestion, $getkcUser, $getKarmanote); } /*Queue::push('MessageSender@MyKarmaDailyUpdateScreen',array('type' =>19,'meetingIncomplete'=>$myKarmaDataOfInCompleteState,'meetingComplete'=>$myKarmaDataOfCompleteState,'offeredHelp'=>$queryOfferHelp,'user_id' => $user_id,'user_connection_onkc'=>$user_connection_onkc,'totalPendingRequest' => $totalPendingRequest,'totalReceivedRequest'=>$totalReceivedRequest,'totalintroductionInitiated'=>$totalintroductionInitiated,'totagroupquestion'=>$totagroupquestion,'getsuggestion'=>$getsuggestion,'getkcUser'=>$getkcUser,'getKarmanote'=>$getKarmanote));*/ } } //endforeach } // endif Log::alert('Executed Daily Cron Job'); }
/** * Execute the console command. * * @return mixed */ public function fire() { Log::alert('Executed Cron Job to update user data daily.'); $getusers = DB::table('users')->select(array('users.*'))->where('users.userstatus', '=', 'approved')->orderBy('created_at', 'DESC')->get(); if (!empty($getusers)) { foreach ($getusers as $user_info) { $diffDate = KarmaHelper::dateDiff(date("Y-m-d H:i:s"), $user_info->profileupdatedate); if ($diffDate->days < 60) { $user_data = User::find($user_info->id); $token = $user_data->token; //$result = json_decode(file_get_contents("https://api.linkedin.com/v1/people/~:(id,first-name,last-name,skills,headline,summary,industry,member-url-resources,picture-urls::(original),location,public-profile-url,email-address)?format=json&oauth2_access_token=$token")); $curl_handle = curl_init(); curl_setopt($curl_handle, CURLOPT_URL, 'https://api.linkedin.com/v1/people/~:(id,first-name,last-name,skills,headline,summary,industry,member-url-resources,picture-urls::(original),location,public-profile-url,email-address)?format=json&oauth2_access_token=$token'); curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2); curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl_handle, CURLOPT_USERAGENT, 'Your application name'); $result = curl_exec($curl_handle); curl_close($curl_handle); $publicProfileUrl = ""; if (isset($result->id)) { $InsTag = KarmaHelper::insertUsertag($user_data, $result); // Close insertUserConnection due to linkedIn changes //$InsConnection = KarmaHelper::insertUserConnection($user_data); $InsConnection = KarmaHelper::updateUserProfile($user_info->id, $result); //update user profile details if (!isset($result->publicProfileUrl) || $result->publicProfileUrl == '') { $publicProfileUrl = $result->siteStandardProfileRequest['url']; } else { $publicProfileUrl = $result->publicProfileUrl; } $imageurl = ""; if (isset($result->pictureUrls->values[0])) { $imageurl = $result->pictureUrls->values[0]; } $user = User::find($user_info->id); $user->email = $result->emailAddress; if (isset($imageurl)) { $user->piclink = $imageurl; } if (isset($result->summary)) { $user->summary = $result->summary; } if (!empty($result->location)) { $user->location = $result->location->name; } if (isset($result->industry)) { $user->industry = $result->industry; } if (isset($result->headline)) { $user->headline = $result->headline; } if ($publicProfileUrl != "") { $user->linkedinurl = $publicProfileUrl; } $user->profileupdatedate = date('Y-m-d H:i:s'); $user->save(); } sleep('2'); } } } }
/** * Function to save user information. * * @return Response */ public function saveuserInfo() { $result = Request::all(); $rules = Validator::make(Request::all(), ['fname' => 'required', 'lname' => 'required', 'email' => 'required', 'linkedinid' => 'required', 'token' => 'required', 'linkedinurl' => 'required']); if ($rules->fails()) { $this->status = 'failure'; $this->message = 'There is something missing So user cant be registered'; return Response::json(array('status' => $this->status, 'message' => $this->message)); } else { $linkedinid = Request::get('linkedinid'); $email = Request::get('email'); $user = User::where('linkedinid', '=', $linkedinid)->orWhere('email', '=', $email)->first(); $randNumber = ApiController::getGUID(); if (!empty($user)) { //This code will execute when user will already register. $user_id = $user->id; $user_data = $user->toArray(); $user_id = $user_data['id']; $user_info = User::find($user_id); $user = User::find($user_id); $user->token = $result['token']; $user->site_token = $randNumber; $user->save(); $CurrentDate = KarmaHelper::currentDate(); $profileupdatedate = $user_info->profileupdatedate; $diffDate = KarmaHelper::dateDiff($CurrentDate, $profileupdatedate); $diffDate = $diffDate->days * 24 + $diffDate->h; $refreshTime = Adminoption::where('option_name', '=', 'connection refresh time')->first(); if (!empty($refreshTime)) { $refreshTime = $refreshTime->toArray(); $refreshTime = $refreshTime['option_value']; } else { $refreshTime = '360'; } if ($diffDate >= $refreshTime) { $date = Carbon::now()->addMinutes(5); Queue::push('UpdateUser', array('id' => $user_id, 'result' => $result)); } $this->status = 'Success'; $this->message = 'You are already registered'; $userStatus = User::where('linkedinid', '=', $linkedinid)->orWhere('email', '=', $email)->select('userstatus')->first(); $userStatus = $userStatus->userstatus; } else { //This code will execute when new user will register. $user = new User(); $user->fname = $result['fname']; $user->lname = @$result['lname']; $user->email = $result['email']; $user->piclink = @$result['piclink']; $user->linkedinid = $result['linkedinid']; $user->summary = @$result['summary']; $user->location = @$result['location']; $user->industry = @$result['industry']; $user->headline = @$result['headline']; $user->linkedinurl = @$result['linkedinurl']; $user->token = @$result['token']; $user->termsofuse = 1; $user->userstatus = 'ready for approval'; $user->noofmeetingspm = 2; $user->profileupdatedate = date('Y-m-d H:i:s'); $user->site_token = $randNumber; $user->save(); $user = $user; $user_id = $user->id; Queue::push('MessageSender@newUserEmail', array('user_id' => $user_id)); //funtion to save data on connections table. $InsConnection = KarmaHelper::insertUserConnection($user); $this->status = 'Success'; $this->message = 'User successfully registered'; $userStatus = User::where('linkedinid', '=', $result['linkedinid'])->orWhere('email', '=', $result['email'])->select('userstatus')->first(); $userStatus = $userStatus->userstatus; } return Response::json(array('status' => $this->status, 'message' => $this->message, 'UserId' => $user_id, 'UserAccesstoken' => $user->site_token, 'UserStatus' => $userStatus)); } }