Route::post('password/reset', 'Auth\\PasswordController@postReset'); Route::get('halloween_email', ['as' => 'halloween', function (Request $request) { if ($request->input('email')) { $salted_id = $request->input('email'); $request->session()->put('salted_id', $salted_id); } else { $salted_id = $request->session()->get('salted_id', null); } return view('emails.halloween')->with(['salted_id' => $salted_id, 'email' => false]); }]); Route::get('tracking', ['as' => 'tracking', function (Request $request) { if ($request->input('email')) { $salted_id = $request->input('email'); $email = Email::where('salted_id', '=', $salted_id)->first(); if ($email && $email->trackable) { $action = Action::firstOrCreate(['action' => 'opened', 'contact_id' => $email->contact->id, 'campaign_id' => $email->campaign->id, 'touch_id' => $email->touch_id]); } } return \Image::canvas(10, 10)->encode('gif'); }]); Route::get('emails/{title_slug}', ['as' => 'emails', 'uses' => 'EmailController@renderEmail']); Route::get('ep_vikings_signup', ['as' => 'ep_vikings_signup', 'uses' => 'SignupController@epVikingsSignup']); Route::post('ep_vikings_signup', ['as' => 'ep_vikings_submit', 'uses' => 'SignupController@epVikingsSubmit']); Route::get('engage_signup', ['as' => 'engage_signup_generic', 'uses' => 'SignupController@engageGeneric']); Route::post('engage_signup', ['as' => 'engage_signup_redirect', 'uses' => 'SignupController@engageRedirect']); Route::get('engage_signup/{name}', ['as' => 'engage_signup', 'uses' => 'SignupController@engage']); Route::post('signup', ['as' => 'signup', 'uses' => 'SignupController@signup']); Route::post('signup/forward', ['as' => 'signup.forward', 'uses' => 'SignupController@signupForward']); Route::get('testmail', function () { $campaign = Campaign::find(2); \Mail::send('emails.cwt.engage', ['email' => true, 'campaign' => $campaign, 'salted_id' => 'foo'], function ($mail) {
public function engage($name, Request $request) { $email = $request->input('email') ? Email::where('salted_id', '=', $request->input('email'))->first() : null; $touch = $email ? $email->touch : Touch::where('title_slug', '=', $name)->first(); $campaign = $touch->campaign; if ($email && $email->trackable) { Action::firstOrCreate(['action' => 'clicked register', 'contact_id' => $email->contact->id, 'campaign_id' => $email->campaign->id, 'touch_id' => $email->touch_id]); } return view()->make('signups.engage')->with(['campaign' => $campaign, 'email' => $email]); }