+ 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)
|
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, [
|
$this->validate($request, [
|
||||||
'id_demande' => 'required|integer|min:0|not_in:0',
|
'id_demande' => 'required|integer|min:0|not_in:0',
|
||||||
'id_user' => 'required|integer|min:0|not_in:0'
|
'id_user' => 'required|integer|min:0|not_in:0'
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$demande = UsersGroupsDemandesValidation::findOrFail($request->id_demande);
|
$demande = UsersGroupsDemandesValidation::findOrFail($request->id_demande);
|
||||||
if ($demande->statut != 0)
|
if ($demande->statut != 0)
|
||||||
return $this->errorResponse(trans('errors.treated_group_demand'));
|
return $this->errorResponse(trans('errors.treated_group_demand'));
|
||||||
|
@ -150,6 +138,19 @@ class UserGroupController extends Controller
|
||||||
if ($demande->id_sponsor != $request->id_user)
|
if ($demande->id_sponsor != $request->id_user)
|
||||||
return $this->errorResponse(trans('errors.not_group_sponsor'));
|
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);
|
$sponsor = User::findOrFail($request->id_user);
|
||||||
$group = UsersGroup::findOrFail($demande->id_group);
|
$group = UsersGroup::findOrFail($demande->id_group);
|
||||||
|
|
||||||
|
@ -187,7 +188,6 @@ class UserGroupController extends Controller
|
||||||
$this->validate($request, [
|
$this->validate($request, [
|
||||||
'id_demande' => 'required|integer|min:0|not_in:0',
|
'id_demande' => 'required|integer|min:0|not_in:0',
|
||||||
'id_user' => '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);
|
$demande = UsersGroupsDemandesValidation::findOrFail($request->id_demande);
|
||||||
if ($demande->statut != 0)
|
if ($demande->statut != 0)
|
||||||
|
@ -209,20 +209,28 @@ class UserGroupController extends Controller
|
||||||
$data->data = new \stdClass();;
|
$data->data = new \stdClass();;
|
||||||
$data->data->id = $request->id_demande;
|
$data->data->id = $request->id_demande;
|
||||||
|
|
||||||
if ($request->type == 'creation') {
|
if ($demande->type == 'creation') {
|
||||||
$this->sendPushNotificationToUser($group->createur->user_code,
|
$this->sendPushNotificationToUser($group->createur->user_code,
|
||||||
trans('notifications.refused_group_validation_request', ['name' => $sponsor->lastname . ' ' . $sponsor->firstname]), $data);
|
trans('notifications.refused_group_validation_request', ['name' => $sponsor->lastname . ' ' . $sponsor->firstname]), $data);
|
||||||
|
|
||||||
return $this->successResponse(trans('messages.successful_refused_group_validation'));
|
return $this->successResponse(trans('messages.successful_refused_group_validation'));
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($request->type == 'suppression') {
|
if ($demande->type == 'suppression') {
|
||||||
$this->sendPushNotificationToUser($group->createur->user_code,
|
$this->sendPushNotificationToUser($group->createur->user_code,
|
||||||
trans('notifications.refused_group_deleting_request', ['name' => $sponsor->lastname . ' ' . $sponsor->firstname]), $data);
|
trans('notifications.refused_group_deleting_request', ['name' => $sponsor->lastname . ' ' . $sponsor->firstname]), $data);
|
||||||
|
|
||||||
return $this->successResponse(trans('messages.successful_refused_group_deleting'));
|
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)
|
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 = new UsersGroupsDemandesValidation();
|
||||||
$demande->id_group = $id_group;
|
$demande->id_group = $id_group;
|
||||||
|
@ -336,19 +344,32 @@ class UserGroupController extends Controller
|
||||||
$demande->date_creation = new \DateTime();
|
$demande->date_creation = new \DateTime();
|
||||||
$demande->statut = false;
|
$demande->statut = false;
|
||||||
$demande->type = $type;
|
$demande->type = $type;
|
||||||
$demande->save();
|
|
||||||
|
|
||||||
$data = new \stdClass();
|
$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 = new \stdClass();
|
||||||
$data->data->id = $demande->id;
|
$data->data->id = $demande->id;
|
||||||
|
|
||||||
if ($type == 'creation')
|
$this->sendPushNotificationToUser($sponsor_code,
|
||||||
$this->sendPushNotificationToUser($sponsor_code,
|
trans($message_id, ['name' => $sender->lastname . ' ' . $sender->firstname]), $data);
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getGroupDemand($id_demand)
|
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();
|
$sponsor = User::where('user_code', $request->code_sponsor)->firstOrFail();
|
||||||
if (!in_array($sponsor->id, [$group->id_sponsor1, $group->id_sponsor2, $group->id_sponsor3]))
|
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);
|
$user = User::findOrFail($request->id_user);
|
||||||
if (isset($user->group_id))
|
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))
|
if (!($identfication instanceof Identification))
|
||||||
return $identfication;
|
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->group_id = $group->id;
|
||||||
$user->date_adhesion = new \DateTime();
|
$user->date_adhesion = new \DateTime();
|
||||||
$user->save();
|
$user->save();
|
||||||
++$group->nombre_utilisateurs;
|
++$group->nombre_utilisateurs;
|
||||||
$group->save();
|
$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);
|
$sponsor = User::findOrFail($request->id_user);
|
||||||
$group = UsersGroup::findOrFail($demande->id_group);
|
$group = UsersGroup::findOrFail($demande->id_group);
|
||||||
|
|
|
@ -15,6 +15,7 @@ use Illuminate\Database\Eloquent\Model;
|
||||||
* @property int $id
|
* @property int $id
|
||||||
* @property int $id_group
|
* @property int $id_group
|
||||||
* @property int $id_sponsor
|
* @property int $id_sponsor
|
||||||
|
* @property int $id_user
|
||||||
* @property int $statut
|
* @property int $statut
|
||||||
* @property Carbon $date_validation
|
* @property Carbon $date_validation
|
||||||
* @property Carbon $date_creation
|
* @property Carbon $date_creation
|
||||||
|
@ -30,6 +31,7 @@ class UsersGroupsDemandesValidation extends Model
|
||||||
protected $casts = [
|
protected $casts = [
|
||||||
'id_group' => 'int',
|
'id_group' => 'int',
|
||||||
'id_sponsor' => 'int',
|
'id_sponsor' => 'int',
|
||||||
|
'id_user' => 'int',
|
||||||
'statut' => 'int'
|
'statut' => 'int'
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -41,6 +43,7 @@ class UsersGroupsDemandesValidation extends Model
|
||||||
protected $fillable = [
|
protected $fillable = [
|
||||||
'id_group',
|
'id_group',
|
||||||
'id_sponsor',
|
'id_sponsor',
|
||||||
|
'id_user',
|
||||||
'statut',
|
'statut',
|
||||||
'date_validation',
|
'date_validation',
|
||||||
'date_creation',
|
'date_creation',
|
||||||
|
|
|
@ -52,5 +52,6 @@ Paying network : :network :country',
|
||||||
"nano_credit_not_found" => "This nano credit request does not exist",
|
"nano_credit_not_found" => "This nano credit request does not exist",
|
||||||
"nano_credit_not_individual" => "This nano credit request is not individual",
|
"nano_credit_not_individual" => "This nano credit request is not individual",
|
||||||
"last_nano_credit_not_refunded" => "Your last nano credit request was not refunded",
|
"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,
|
Regards,
|
||||||
iLinkWorld team.',
|
iLinkWorld team.',
|
||||||
'successful_user_group_modificated' => 'The group has been modified successfully. Awaiting validation from new sponsors to activate it',
|
'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_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_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',
|
'successful_refused_group_validation' => 'Group validation refused',
|
||||||
|
@ -208,4 +208,6 @@ Request Information:
|
||||||
- Credit amount: :amount
|
- Credit amount: :amount
|
||||||
- Fees: :fees
|
- Fees: :fees
|
||||||
- Net amount received: :net",
|
- 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",
|
"accepted_group_deleting_request" => ":name has accepted your group deleting request",
|
||||||
"refused_group_validation_request" => ":name has refused your group validation request",
|
"refused_group_validation_request" => ":name has refused your group validation request",
|
||||||
"refused_group_deleting_request" => ":name has refused your group deleting 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_found" => "Cette demande de nano crédit n'existe pas",
|
||||||
"nano_credit_not_individual" => "Cette demande de nano crédit n'est pas individuelle",
|
"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",
|
"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,
|
Cordialement,
|
||||||
Equipe iLinkWorld.',
|
Equipe iLinkWorld.',
|
||||||
'successful_user_group_modificated' => 'Le groupe a été modifié avec succes. En attente de validation des nouveaux sponsors pour l\'activer',
|
'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_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_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',
|
'successful_refused_group_validation' => 'Validation du groupe refusée',
|
||||||
|
@ -208,4 +208,6 @@ Informations de la demande :
|
||||||
- Montant du crédit : :amount
|
- Montant du crédit : :amount
|
||||||
- Frais : :fees
|
- Frais : :fees
|
||||||
- Montant net à percu : :net",
|
- 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",
|
"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_deleting_request" => ":name a refusé votre demande de suppression de groupe",
|
||||||
"refused_group_validation_request" => ":name a refusé votre demande de validation 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