Skip to content

Commit cabb9f0

Browse files
author
LDFOUR\luisd
committed
Implemented bulk email sending by chunks for terms and conditions alert
1 parent d475320 commit cabb9f0

2 files changed

Lines changed: 26 additions & 17 deletions

File tree

app/Http/Controllers/Terms/TermsController.php

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -152,18 +152,22 @@ public function create(Request $request): JsonResponse
152152

153153
$terms = $this->terms->create((string) $request->get('version'), $request->get('content'), auth()->user()->id);
154154

155-
$users = $this->users->allNotifiablePublicUsers();
156-
$emails = $users->pluck('email')->implode(',');
157-
$route = route('login');
158-
$subject = trans('terms.email.subject', ['app_name' => config('app.name')]);
159-
$html = $this->mailApiService->buildTermsAndConditionsTemplate($route);
160-
161-
$this->mailApiService->sendMail(
162-
$emails,
163-
$subject,
164-
$html,
165-
true, // Send as bulk email
166-
);
155+
// $users = $this->users->allNotifiablePublicUsers();
156+
// $route = route('login');
157+
// $subject = trans('terms.email.subject', ['app_name' => config('app.name')]);
158+
// $html = $this->mailApiService->buildTermsAndConditionsTemplate($route);
159+
160+
// $users->pluck('email')
161+
// ->chunk(25)
162+
// ->each(function ($emailChunk) use ($subject, $html) {
163+
// $emails = $emailChunk->implode(',');
164+
// $this->mailApiService->sendMail(
165+
// $emails,
166+
// $subject,
167+
// $html,
168+
// true
169+
// );
170+
// });
167171

168172

169173
return TermsResource::make($terms)->response()->setStatusCode(JsonResponse::HTTP_CREATED);

app/Repositories/Access/UserRepository.php

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -237,10 +237,15 @@ public function reactivate(User $user)
237237

238238
public function allNotifiablePublicUsers()
239239
{
240-
return $this->query()->whereHas('roles', function ($query) {
241-
$query->where('all', '=', 0);
242-
$query->doesntHave('permissions'); })->whereHas('userProfile', function ($query) {
243-
$query->where('notifications_enabled', '=', 1);
244-
})->get();
240+
return $this->query()
241+
->where('activated', true)
242+
->whereHas('roles', function ($query) {
243+
$query->where('all', '=', 0)
244+
->doesntHave('permissions');
245+
})
246+
->whereHas('userProfile', function ($query) {
247+
$query->where('notifications_enabled', '=', 1);
248+
})
249+
->get();
245250
}
246251
}

0 commit comments

Comments
 (0)