108 lines
3.7 KiB
PHP
108 lines
3.7 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Models\Customers;
|
|
use App\Models\Forum;
|
|
use App\Models\ForumAnswers;
|
|
use App\Models\ForumThemes;
|
|
use App\Models\ShareAddress;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Auth;
|
|
|
|
class ForumController extends Controller
|
|
{
|
|
public function index() {
|
|
Forum::orderBy('created_at', 'DESC')->limit(10)->get();
|
|
// TODO : Return la view
|
|
}
|
|
|
|
public function show($id) {
|
|
$forum = Forum::find($id);
|
|
// TODO : Return la view
|
|
}
|
|
|
|
public function create(Request $request) {
|
|
$request->validate([
|
|
'title' => 'required|string|max:255',
|
|
'content' => 'required'
|
|
]);
|
|
|
|
$customerId = Auth::guard('customer')->user()->id;
|
|
$themeId = filter_var($request->theme_id, FILTER_SANITIZE_NUMBER_INT);
|
|
if (!ForumThemes::find($themeId))
|
|
return back()->withErrors("Les données envoyées sont incorrects, merci de réessayer.");
|
|
$title = filter_var($request->title, FILTER_SANITIZE_STRING);
|
|
$content = filter_var($request->content, FILTER_SANITIZE_STRING);
|
|
|
|
$forum = new Forum();
|
|
$forum->customer_id = $customerId;
|
|
$forum->theme_id = $themeId;
|
|
$forum->title = $title;
|
|
$forum->content = $content;
|
|
$forum->save();
|
|
|
|
return back()->with('success', 'Votre post a bien été créer, il est désormais visible.');
|
|
}
|
|
|
|
public function answer(Request $request) {
|
|
$request->validate([
|
|
'content' => 'required',
|
|
]);
|
|
|
|
$customerId = Auth::guard('customer')->user()->id;
|
|
$forumId = filter_var($request->forum_id, FILTER_SANITIZE_NUMBER_INT);
|
|
if (!Forum::find($forumId))
|
|
return back()->withErrors("Les données envoyées sont incorrects, merci de réessayer.");
|
|
$content = filter_var($request->content, FILTER_SANITIZE_STRING);
|
|
|
|
$answer = new ForumAnswers();
|
|
$answer->customer_id = $customerId;
|
|
$answer->forum_id = $forumId;
|
|
$answer->content = $content;
|
|
$answer->save();
|
|
|
|
return back()->with('success', 'Votre réponse a bien été envoyée, elle est désormais visible.');
|
|
}
|
|
|
|
// Supprimer un forum et toutes ses réponses
|
|
public function delete($forumId) {
|
|
// Sécurité admin
|
|
if (!Auth::check())
|
|
return back();
|
|
|
|
$forum = Forum::findOrFail($forumId);
|
|
$forum->answers()->delete();
|
|
$forum->delete();
|
|
|
|
return back()->with('success', 'Le forum a bien été supprimer');
|
|
}
|
|
|
|
public function shareAddress($customerId) {
|
|
$sender = Customers::findOrFail(Auth::guard('customer')->user()->id);
|
|
$receiver = Customers::findOrFail($customerId);
|
|
|
|
/** @var \LDCCRM\ApiV1 */
|
|
$crm = app('crmApi');
|
|
$crmCustomer = $crm->getCustomer($sender->crm_id);
|
|
if ($crmCustomer->status === "OK") {
|
|
if ($crmCustomer->address === null || $crmCustomer->postcode === null || $crmCustomer->city === null) {
|
|
// TODO : Renvoyer vers le profil pour compléter les infos manquantes avec un message (complété vos infos)
|
|
}
|
|
} else {
|
|
switch ($crmCustomer->code) {
|
|
case 101:
|
|
return back()->withErrors("Une erreur est survenue, veuillez réessayer.");
|
|
default:
|
|
return back()->withErrors("Une erreur est survenue, veuillez réessayer.");
|
|
}
|
|
}
|
|
|
|
$shareAddress = new ShareAddress();
|
|
$shareAddress->sender_id = $sender->id;
|
|
$shareAddress->receiver_id = $receiver->id;
|
|
$shareAddress->save();
|
|
|
|
return back()->with('success', "Votre adresse a bien été partagé.");
|
|
}
|
|
}
|