mirror of
https://github.com/ConjureETS/Interface-Admin.git
synced 2026-03-24 04:21:06 +00:00
75 lines
2.0 KiB
PHP
75 lines
2.0 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Models\CommunicationMethod;
|
|
use App\Models\Interest;
|
|
use App\Models\Member;
|
|
use App\Models\Program;
|
|
use App\Rules\PhoneRule;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Validator;
|
|
|
|
class InscriptionController extends Controller
|
|
{
|
|
/**
|
|
* Create a new controller instance.
|
|
*
|
|
* @return void
|
|
*/
|
|
public function __construct(){ }
|
|
|
|
/**
|
|
* Show the application dashboard.
|
|
*
|
|
* @return \Illuminate\Contracts\Support\Renderable
|
|
*/
|
|
public function getInscription()
|
|
{
|
|
return view('inscription')->with([
|
|
"programs" => Program::all(),
|
|
"interests" => Interest::all(),
|
|
"communicationMethods" => CommunicationMethod::all()
|
|
]);
|
|
}
|
|
|
|
public function postInscription(Request $request)
|
|
{
|
|
$this->validator($request->all())->validate();
|
|
|
|
$member = $this->create($request->all());
|
|
|
|
(new MailController())->sendInscriptionMail($member);
|
|
|
|
return view('inscription')->with([
|
|
'member' => $member
|
|
]);
|
|
}
|
|
|
|
protected function validator(array $data)
|
|
{
|
|
return Validator::make($data, [
|
|
'first_name' => ['required', 'string', 'max:255'],
|
|
'last_name' => ['required', 'string', 'max:255'],
|
|
'email' => ['required', 'string', 'email', 'max:255', 'unique:members'],
|
|
'universal_code' => ['required', 'string', 'max:255'],
|
|
'phone' => ['sometimes', new PhoneRule],
|
|
'program_id' => ['required', 'integer']
|
|
]);
|
|
}
|
|
|
|
protected function create(array $data)
|
|
{
|
|
return Member::create([
|
|
'first_name' => $data['first_name'],
|
|
'last_name' => $data['last_name'],
|
|
'email' => $data['email'],
|
|
'universal_code' => $data['universal_code'],
|
|
'start_semester' => Member::getSemesterLetter().date("Y"),
|
|
'activity' => 1,
|
|
'phone' => $data['phone'],
|
|
'program_id' => $data['program_id']
|
|
]);
|
|
}
|
|
}
|