+ Update "Adherer à un groupe" method
This commit is contained in:
parent
5a953b33b6
commit
71ede45247
|
@ -125,24 +125,12 @@ class UserGroupController extends Controller
|
|||
}
|
||||
|
||||
public function validateGroupDemand(Request $request)
|
||||
{
|
||||
$this->validate($request, [
|
||||
'type' => 'required|in:creation,suppression',
|
||||
]);
|
||||
|
||||
if ($request->type == 'creation')
|
||||
return $this->validateGroupCreationDemand($request);
|
||||
if ($request->type == 'suppression')
|
||||
return $this->validateDeletingGroupDemand($request);
|
||||
}
|
||||
|
||||
|
||||
private function validateGroupCreationDemand(Request $request)
|
||||
{
|
||||
$this->validate($request, [
|
||||
'id_demande' => 'required|integer|min:0|not_in:0',
|
||||
'id_user' => 'required|integer|min:0|not_in:0'
|
||||
]);
|
||||
|
||||
$demande = UsersGroupsDemandesValidation::findOrFail($request->id_demande);
|
||||
if ($demande->statut != 0)
|
||||
return $this->errorResponse(trans('errors.treated_group_demand'));
|
||||
|
@ -150,6 +138,19 @@ class UserGroupController extends Controller
|
|||
if ($demande->id_sponsor != $request->id_user)
|
||||
return $this->errorResponse(trans('errors.not_group_sponsor'));
|
||||
|
||||
if ($demande->type == 'creation')
|
||||
return $this->validateGroupCreationDemand($request, $demande);
|
||||
if ($demande->type == 'suppression')
|
||||
return $this->validateDeletingGroupDemand($request, $demande);
|
||||
if ($demande->type == 'adhesion')
|
||||
return $this->validateMembershipGroupDemand($request, $demande);
|
||||
|
||||
}
|
||||
|
||||
|
||||
private function validateGroupCreationDemand(Request $request, UsersGroupsDemandesValidation $demande)
|
||||
{
|
||||
|
||||
$sponsor = User::findOrFail($request->id_user);
|
||||
$group = UsersGroup::findOrFail($demande->id_group);
|
||||
|
||||
|
@ -187,7 +188,6 @@ class UserGroupController extends Controller
|
|||
$this->validate($request, [
|
||||
'id_demande' => 'required|integer|min:0|not_in:0',
|
||||
'id_user' => 'required|integer|min:0|not_in:0',
|
||||
'type' => 'required|in:creation,suppression',
|
||||
]);
|
||||
$demande = UsersGroupsDemandesValidation::findOrFail($request->id_demande);
|
||||
if ($demande->statut != 0)
|
||||
|
@ -209,20 +209,28 @@ class UserGroupController extends Controller
|
|||
$data->data = new \stdClass();;
|
||||
$data->data->id = $request->id_demande;
|
||||
|
||||
if ($request->type == 'creation') {
|
||||
if ($demande->type == 'creation') {
|
||||
$this->sendPushNotificationToUser($group->createur->user_code,
|
||||
trans('notifications.refused_group_validation_request', ['name' => $sponsor->lastname . ' ' . $sponsor->firstname]), $data);
|
||||
|
||||
return $this->successResponse(trans('messages.successful_refused_group_validation'));
|
||||
}
|
||||
|
||||
if ($request->type == 'suppression') {
|
||||
if ($demande->type == 'suppression') {
|
||||
$this->sendPushNotificationToUser($group->createur->user_code,
|
||||
trans('notifications.refused_group_deleting_request', ['name' => $sponsor->lastname . ' ' . $sponsor->firstname]), $data);
|
||||
|
||||
return $this->successResponse(trans('messages.successful_refused_group_deleting'));
|
||||
}
|
||||
|
||||
if ($demande->type == 'adhesion') {
|
||||
$user = User::findOrFail($demande->id_user);
|
||||
$this->sendPushNotificationToUser($user->user_code,
|
||||
trans('notifications.successful_canceled_group_membership_request', ['name' => $sponsor->lastname . ' ' . $sponsor->firstname]), $data);
|
||||
|
||||
return $this->successResponse(trans('messages.successful_refused_group_deleting'));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function updateGroup(Request $request)
|
||||
|
@ -328,7 +336,7 @@ class UserGroupController extends Controller
|
|||
}
|
||||
|
||||
|
||||
public function sendNotificationToSponsor($id_group, $id_sponsor, $sponsor_code, User $sender, $type = 'creation')
|
||||
private function sendNotificationToSponsor($id_group, $id_sponsor, $sponsor_code, User $sender, $type = 'creation')
|
||||
{
|
||||
$demande = new UsersGroupsDemandesValidation();
|
||||
$demande->id_group = $id_group;
|
||||
|
@ -336,19 +344,32 @@ class UserGroupController extends Controller
|
|||
$demande->date_creation = new \DateTime();
|
||||
$demande->statut = false;
|
||||
$demande->type = $type;
|
||||
$demande->save();
|
||||
|
||||
|
||||
$data = new \stdClass();
|
||||
$data->screen = $type == 'creation' ? "demandeValidationGroupe" : "demandeSuppressionGroupe";
|
||||
|
||||
if ($type == 'creation') {
|
||||
$data->screen = "demandeValidationGroupe";
|
||||
$message_id = 'notifications.group_validation_request';
|
||||
} else if ($type == 'suppression') {
|
||||
$data->screen = "demandeSuppressionGroupe";
|
||||
$message_id = 'notifications.group_deleting_request';
|
||||
} else if ($type == 'adhesion') {
|
||||
$demande->id_user = $sender->id;
|
||||
$data->screen = "demandJoinGroup";
|
||||
$message_id = 'notifications.group_membership_request';
|
||||
} else {
|
||||
$data->screen = "notificationview";
|
||||
$message_id = 'notifications.group_deleting_request';
|
||||
}
|
||||
|
||||
$demande->save();
|
||||
$data->data = new \stdClass();
|
||||
$data->data->id = $demande->id;
|
||||
|
||||
if ($type == 'creation')
|
||||
$this->sendPushNotificationToUser($sponsor_code,
|
||||
trans('notifications.group_validation_request', ['name' => $sender->lastname . ' ' . $sender->firstname]), $data);
|
||||
else
|
||||
$this->sendPushNotificationToUser($sponsor_code,
|
||||
trans('notifications.group_deleting_request', ['name' => $sender->lastname . ' ' . $sender->firstname]), $data);
|
||||
trans($message_id, ['name' => $sender->lastname . ' ' . $sender->firstname]), $data);
|
||||
|
||||
}
|
||||
|
||||
public function getGroupDemand($id_demand)
|
||||
|
@ -387,7 +408,7 @@ ug.date_creation , ug.createur , ug.sponsor1 , ug.sponsor2 , ug.sponsor3, ug.cou
|
|||
|
||||
$sponsor = User::where('user_code', $request->code_sponsor)->firstOrFail();
|
||||
if (!in_array($sponsor->id, [$group->id_sponsor1, $group->id_sponsor2, $group->id_sponsor3]))
|
||||
return $this->errorResponse(trans('errors.not_group_sponsor'));
|
||||
return $this->errorResponse(trans('errors.sponsor_code_not_match'));
|
||||
|
||||
$user = User::findOrFail($request->id_user);
|
||||
if (isset($user->group_id))
|
||||
|
@ -403,13 +424,39 @@ ug.date_creation , ug.createur , ug.sponsor1 , ug.sponsor2 , ug.sponsor3, ug.cou
|
|||
if (!($identfication instanceof Identification))
|
||||
return $identfication;
|
||||
|
||||
// Notifier le sponsor
|
||||
$this->sendNotificationToSponsor($group->id, $sponsor->id, $sponsor->user_code, $user, 'adhesion');
|
||||
return $this->successResponse(trans('messages.successful_group_membership_request'));
|
||||
|
||||
}
|
||||
|
||||
private function validateMembershipGroupDemand(Request $request, UsersGroupsDemandesValidation $demande)
|
||||
{
|
||||
|
||||
$sponsor = User::findOrFail($request->id_user);
|
||||
$group = UsersGroup::findOrFail($demande->id_group);
|
||||
if (!in_array($demande->id_sponsor, [$group->id_sponsor1, $group->id_sponsor2, $group->id_sponsor3]))
|
||||
return $this->errorResponse(trans('errors.not_group_sponsor'));
|
||||
|
||||
$user = User::findOrFail($demande->id_user);
|
||||
$user->group_id = $group->id;
|
||||
$user->date_adhesion = new \DateTime();
|
||||
$user->save();
|
||||
++$group->nombre_utilisateurs;
|
||||
$group->save();
|
||||
// Notifier les determinants
|
||||
return $this->successResponse(trans('messages.successful_group_adhesion'));
|
||||
|
||||
$demande->statut = true;
|
||||
$demande->date_validation = new \DateTime();
|
||||
$demande->save();
|
||||
// Notififier l'utilisateur
|
||||
$data = new \stdClass();
|
||||
$data->screen = "notificationview";
|
||||
$data->data = new \stdClass();;
|
||||
$data->data->id = $request->id_demande;
|
||||
$this->sendPushNotificationToUser($user->user_code,
|
||||
trans('notifications.accepted_group_membership_request', ['name' => $sponsor->lastname . ' ' . $sponsor->firstname]), $data);
|
||||
|
||||
return $this->successResponse(trans('messages.successful_accepted_group_membership_request'));
|
||||
|
||||
}
|
||||
|
||||
|
@ -432,19 +479,8 @@ ug.date_creation , ug.createur , ug.sponsor1 , ug.sponsor2 , ug.sponsor3, ug.cou
|
|||
|
||||
}
|
||||
|
||||
private function validateDeletingGroupDemand(Request $request)
|
||||
private function validateDeletingGroupDemand(Request $request, UsersGroupsDemandesValidation $demande)
|
||||
{
|
||||
$this->validate($request, [
|
||||
'id_demande' => 'required|integer|min:0|not_in:0',
|
||||
'id_user' => 'required|integer|min:0|not_in:0'
|
||||
]);
|
||||
|
||||
$demande = UsersGroupsDemandesValidation::findOrFail($request->id_demande);
|
||||
if ($demande->statut != 0)
|
||||
return $this->errorResponse(trans('errors.treated_group_demand'));
|
||||
|
||||
if ($demande->id_sponsor != $request->id_user)
|
||||
return $this->errorResponse(trans('errors.not_group_sponsor'));
|
||||
|
||||
$sponsor = User::findOrFail($request->id_user);
|
||||
$group = UsersGroup::findOrFail($demande->id_group);
|
||||
|
|
|
@ -15,6 +15,7 @@ use Illuminate\Database\Eloquent\Model;
|
|||
* @property int $id
|
||||
* @property int $id_group
|
||||
* @property int $id_sponsor
|
||||
* @property int $id_user
|
||||
* @property int $statut
|
||||
* @property Carbon $date_validation
|
||||
* @property Carbon $date_creation
|
||||
|
@ -30,6 +31,7 @@ class UsersGroupsDemandesValidation extends Model
|
|||
protected $casts = [
|
||||
'id_group' => 'int',
|
||||
'id_sponsor' => 'int',
|
||||
'id_user' => 'int',
|
||||
'statut' => 'int'
|
||||
];
|
||||
|
||||
|
@ -41,6 +43,7 @@ class UsersGroupsDemandesValidation extends Model
|
|||
protected $fillable = [
|
||||
'id_group',
|
||||
'id_sponsor',
|
||||
'id_user',
|
||||
'statut',
|
||||
'date_validation',
|
||||
'date_creation',
|
||||
|
|
|
@ -52,5 +52,6 @@ Paying network : :network :country',
|
|||
"nano_credit_not_found" => "This nano credit request does not exist",
|
||||
"nano_credit_not_individual" => "This nano credit request is not individual",
|
||||
"last_nano_credit_not_refunded" => "Your last nano credit request was not refunded",
|
||||
"nano_credit_already_refunded" => "Repayment of credit already made"
|
||||
"nano_credit_already_refunded" => "Repayment of credit already made",
|
||||
"sponsor_code_not_match" => "This sponsor code does not match to this group",
|
||||
];
|
||||
|
|
|
@ -152,7 +152,7 @@ Your new identification has been taken into account. Contact an iLink World agen
|
|||
Regards,
|
||||
iLinkWorld team.',
|
||||
'successful_user_group_modificated' => 'The group has been modified successfully. Awaiting validation from new sponsors to activate it',
|
||||
'successful_group_adhesion' => 'Vous êtes désormais membre de ce groupe',
|
||||
'successful_group_membership_request' => "Your membership request has been sent to the sponsor",
|
||||
'successful_user_group_deleted' => 'The group will be deleted after validation of the 3 sponsors',
|
||||
'successful_group_deleting' => 'Group deletion accepted. More than :count delete validation remaining | Group delete accepted. More than :count remaining delete validations',
|
||||
'successful_refused_group_validation' => 'Group validation refused',
|
||||
|
@ -208,4 +208,6 @@ Request Information:
|
|||
- Credit amount: :amount
|
||||
- Fees: :fees
|
||||
- Net amount received: :net",
|
||||
'successful_accepted_group_membership_request' => "Membership request accepted",
|
||||
'successful_canceled_group_membership_request' => "Membership request refused",
|
||||
];
|
||||
|
|
|
@ -6,4 +6,7 @@ return [
|
|||
"accepted_group_deleting_request" => ":name has accepted your group deleting request",
|
||||
"refused_group_validation_request" => ":name has refused your group validation request",
|
||||
"refused_group_deleting_request" => ":name has refused your group deleting request",
|
||||
"group_membership_request" => ":name has sent you a group membership request",
|
||||
"accepted_group_membership_request" => ":name has accepted your group membership request",
|
||||
"refused_group_membership_request" => ":name has refused your group membership request",
|
||||
];
|
||||
|
|
|
@ -52,5 +52,6 @@ Réseau payeur : :network :country',
|
|||
"nano_credit_not_found" => "Cette demande de nano crédit n'existe pas",
|
||||
"nano_credit_not_individual" => "Cette demande de nano crédit n'est pas individuelle",
|
||||
"last_nano_credit_not_refunded" => "Votre derniere demande de nano crédit n'a pas été remboursée",
|
||||
"nano_credit_already_refunded" => "Remboursement de crédit deja effectué"
|
||||
"nano_credit_already_refunded" => "Remboursement de crédit deja effectué",
|
||||
"sponsor_code_not_match" => "Ce code sponsor ne correspond pas à ce groupe",
|
||||
];
|
||||
|
|
|
@ -152,7 +152,7 @@ Votre nouvelle identification a bien été bien prise en compte. Rapprochez vous
|
|||
Cordialement,
|
||||
Equipe iLinkWorld.',
|
||||
'successful_user_group_modificated' => 'Le groupe a été modifié avec succes. En attente de validation des nouveaux sponsors pour l\'activer',
|
||||
'successful_group_adhesion' => 'Vous êtes désormais membre de ce groupe',
|
||||
'successful_group_membership_request' => "Votre demande d'adhésion a été envoyé au sponsor",
|
||||
'successful_user_group_deleted' => 'Le groupe sera supprimé après validation des 3 sponsors',
|
||||
'successful_group_deleting' => 'Suppression du groupe acceptée. Plus que :count validation de suppression restante|Suppression du groupe acceptée. Plus que :count validations de suppression restantes',
|
||||
'successful_refused_group_validation' => 'Validation du groupe refusée',
|
||||
|
@ -208,4 +208,6 @@ Informations de la demande :
|
|||
- Montant du crédit : :amount
|
||||
- Frais : :fees
|
||||
- Montant net à percu : :net",
|
||||
'successful_accepted_group_membership_request' => "Demande d'adhésion acceptée",
|
||||
'successful_canceled_group_membership_request' => "Demande d'adhésion refusée",
|
||||
];
|
||||
|
|
|
@ -6,4 +6,7 @@ return [
|
|||
"accepted_group_deleting_request" => ":name a accepté votre demande de suppression de groupe",
|
||||
"refused_group_deleting_request" => ":name a refusé votre demande de suppression de groupe",
|
||||
"refused_group_validation_request" => ":name a refusé votre demande de validation de groupe",
|
||||
"group_membership_request" => ":name vous a envoyé une demande d'adhésion de groupe",
|
||||
"accepted_group_membership_request" => ":name a accepté votre demande d'adhésion de groupe",
|
||||
"refused_group_membership_request" => ":name a refusé votre demande d'adhésion de groupe",
|
||||
];
|
||||
|
|
Loading…
Reference in New Issue