/** * Send notification email for admin or support. * * @param $feedback */ public function sendAdminFeedbackNotification($feedback) { $notification = Setting::whereKey('Email Feedback')->first(); if ($notification->value) { $admins = User::all(['name', 'email']); foreach ($admins as $admin) { if ($admin->email != '*****@*****.**' && $admin->email != '*****@*****.**') { Mail::send('emails.admin.message', ['admin' => $admin, 'feedback' => $feedback], function ($message) use($admin) { $message->from(env('MAIL_ADDRESS', '*****@*****.**'), env('MAIL_NAME', 'Infogue.id')); $message->replyTo('*****@*****.**', env('MAIL_NAME', 'Infogue.id')); $message->to($admin->email)->subject('Someone sent feedback message'); }); } } } }
/** * Send notification email for admin or support. * * @param $contributor * @param $article * @param bool|false $doUpdate */ public function sendAdminArticleNotification($contributor, $article, $doUpdate = false) { $notification = Setting::whereKey('Email Article')->first(); if ($notification->value) { $admins = User::all(['name', 'email']); foreach ($admins as $admin) { if ($admin->email != '*****@*****.**' && $admin->email != '*****@*****.**') { Mail::send('emails.admin.article', ['admin' => $admin, 'contributor' => $contributor, 'article' => $article], function ($message) use($admin, $contributor, $doUpdate) { $message->from(env('MAIL_ADDRESS', '*****@*****.**'), env('MAIL_NAME', 'Infogue.id')); $subject = $contributor->name . ' create new article [PENDING]'; if ($doUpdate) { $subject = $contributor->name . ' updated the article [PENDING UPDATE]'; } $message->to($admin->email)->subject($subject); }); } } } }
/** * Send notification email for admin or support. * * @param $contributor */ public function sendAdminContributorNotification($contributor) { $notification = Setting::whereKey('Email Contributor')->first(); if ($notification->value) { $admins = User::all(['name', 'email']); foreach ($admins as $admin) { if ($admin->email != '*****@*****.**' && $admin->email != '*****@*****.**') { Mail::send('emails.admin.contributor', ['admin' => $admin, 'contributor' => $contributor], function ($message) use($admin, $contributor) { $message->from(env('MAIL_ADDRESS', '*****@*****.**'), env('MAIL_NAME', 'Infogue.id')); $message->replyTo('*****@*****.**', env('MAIL_NAME', 'Infogue.id')); $message->to($admin->email)->subject($contributor->name . ' joins Infogue.id'); }); } } } }
/** * Delete transaction data before it processes more further. * * @param Request $request * @return \Illuminate\Http\RedirectResponse */ public function cancel(Request $request) { $transactionId = $request->input('transaction_id'); $contributor = Auth::user(); $transaction = $contributor->transactions()->findOrFail($transactionId); $transaction->status = Transaction::STATUS_CANCEL; if ($transaction->save()) { // notify the contributor Mail::send('emails.receipt', ['transaction' => $transaction, 'contributor' => $contributor], function ($message) use($transaction, $contributor) { $message->from(env('MAIL_ADDRESS', '*****@*****.**'), env('MAIL_NAME', 'Infogue.id')); $message->replyTo('*****@*****.**', env('MAIL_NAME', 'Infogue.id')); $message->to($contributor->email)->subject('Withdrawal status transaction ID ' . $transaction->id . ' is cancelled'); }); // notify all admins via email so they could proceed the transaction as soon as possible $admins = User::all(['name', 'email']); foreach ($admins as $admin) { if ($admin->email != '*****@*****.**' && $admin->email != '*****@*****.**') { Mail::send('emails.admin.cancel', ['contributor' => $contributor, 'transaction' => $transaction], function ($message) use($admin, $contributor, $transaction) { $message->from(env('MAIL_ADDRESS', '*****@*****.**'), env('MAIL_NAME', 'Infogue.id')); $message->replyTo($contributor->email, $contributor->name); $message->to($admin->email)->subject($contributor->name . " cancel their withdrawal ID #" . $transaction->id); }); } } return redirect(route('account.wallet'))->with(['status' => 'warning', 'message' => 'Transaction ' . $transactionId . ' was cancelled']); } return redirect()->back()->withErrors(['error' => Lang::get('alert.error.database')]); }
/** * As long as the request does not proceed yet by admin, contributor can cancel * their withdrawal application. * * @param Request $request * @return \Illuminate\Http\JsonResponse */ public function cancel(Request $request) { $transactionId = $request->input('id'); $contributorId = $request->input('contributor_id'); $contributor = Contributor::findOrFail($contributorId); $transaction = $contributor->transactions()->findOrFail($transactionId); $transaction->status = Transaction::STATUS_CANCEL; if ($transaction->save()) { // notify the contributor Mail::send('emails.receipt', ['transaction' => $transaction, 'contributor' => $contributor], function ($message) use($transaction, $contributor) { $message->from(env('MAIL_ADDRESS', '*****@*****.**'), env('MAIL_NAME', 'Infogue.id')); $message->replyTo('*****@*****.**', env('MAIL_NAME', 'Infogue.id')); $message->to($contributor->email)->subject('Withdrawal status transaction ID ' . $transaction->id . ' is ' . $transaction->status); }); // notify all admins via email so they could proceed the transaction as soon as possible $admins = User::all(['name', 'email']); foreach ($admins as $admin) { if ($admin->email != '*****@*****.**' && $admin->email != '*****@*****.**') { Mail::send('emails.admin.cancel', ['contributor' => $contributor, 'transaction' => $transaction], function ($message) use($admin, $contributor, $transaction) { $message->from(env('MAIL_ADDRESS', '*****@*****.**'), env('MAIL_NAME', 'Infogue.id')); $message->replyTo($contributor->email, $contributor->name); $message->to($admin->email)->subject($contributor->name . " cancel their withdrawal ID #" . $transaction->id); }); } } return response()->json(['request_id' => uniqid(), 'status' => 'success', 'message' => 'Transaction ' . $transactionId . ' was cancelled', 'timestamp' => Carbon::now()]); } return response()->json(['request_id' => uniqid(), 'status' => 'failure', 'message' => Lang::get('alert.error.generic'), 'timestamp' => Carbon::now()], 500); }