Skip to content

Commit eb060eb

Browse files
committed
fix(prompts) consolidate all count arrays for prompt limits into one function in the model
1 parent 31b02ec commit eb060eb

4 files changed

Lines changed: 31 additions & 33 deletions

File tree

app/Http/Controllers/Admin/SubmissionController.php

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -65,12 +65,6 @@ public function getSubmission($id) {
6565
}
6666

6767
$prompt = $submission->prompt;
68-
$count['all'] = Submission::submitted($prompt->id, $submission->user_id)->count();
69-
$count['Hour'] = Submission::submitted($prompt->id, $submission->user_id)->where('created_at', '>=', now()->startOfHour())->count();
70-
$count['Day'] = Submission::submitted($prompt->id, $submission->user_id)->where('created_at', '>=', now()->startOfDay())->count();
71-
$count['Week'] = Submission::submitted($prompt->id, $submission->user_id)->where('created_at', '>=', now()->startOfWeek())->count();
72-
$count['Month'] = Submission::submitted($prompt->id, $submission->user_id)->where('created_at', '>=', now()->startOfMonth())->count();
73-
$count['Year'] = Submission::submitted($prompt->id, $submission->user_id)->where('created_at', '>=', now()->startOfYear())->count();
7468

7569
if ($prompt->limit_character) {
7670
$limit = $prompt->limit * Character::visible()->where('is_myo_slot', 0)->where('user_id', $submission->user_id)->count();
@@ -92,7 +86,7 @@ public function getSubmission($id) {
9286
'currencies' => Currency::where('is_user_owned', 1)->orderBy('name')->pluck('name', 'id'),
9387
'tables' => LootTable::orderBy('name')->pluck('name', 'id'),
9488
'raffles' => Raffle::where('rolled_at', null)->where('is_active', 1)->orderBy('name')->pluck('name', 'id'),
95-
'count' => $count,
89+
'count' => $prompt->filterCount($submission->user),
9690
'limit' => $limit,
9791
] : []));
9892
}

app/Http/Controllers/Users/SubmissionController.php

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -210,13 +210,6 @@ public function getPromptInfo($id) {
210210
return response(404);
211211
}
212212

213-
$count['all'] = Submission::submitted($id, Auth::user()->id)->count();
214-
$count['Hour'] = Submission::submitted($id, Auth::user()->id)->where('created_at', '>=', now()->startOfHour())->count();
215-
$count['Day'] = Submission::submitted($id, Auth::user()->id)->where('created_at', '>=', now()->startOfDay())->count();
216-
$count['Week'] = Submission::submitted($id, Auth::user()->id)->where('created_at', '>=', now()->startOfWeek())->count();
217-
$count['Month'] = Submission::submitted($id, Auth::user()->id)->where('created_at', '>=', now()->startOfMonth())->count();
218-
$count['Year'] = Submission::submitted($id, Auth::user()->id)->where('created_at', '>=', now()->startOfYear())->count();
219-
220213
if ($prompt->limit_character) {
221214
$limit = $prompt->limit * Character::visible()->where('is_myo_slot', 0)->where('user_id', Auth::user()->id)->count();
222215
} else {
@@ -225,7 +218,7 @@ public function getPromptInfo($id) {
225218

226219
return view('home._prompt', [
227220
'prompt' => $prompt,
228-
'count' => $count,
221+
'count' => $prompt->filterCount(Auth::user()),
229222
'limit' => $limit,
230223
]);
231224
}

app/Models/Prompt/Prompt.php

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@
44

55
use App\Models\Model;
66
use App\Models\Reward\Reward;
7+
use App\Models\Submission\Submission;
78
use Carbon\Carbon;
9+
use Illuminate\Support\Facades\Auth;
810

911
class Prompt extends Model {
1012
/**
@@ -84,6 +86,31 @@ public function rewards() {
8486
return $this->morphMany(Reward::class, 'object', 'object_model', 'object_id');
8587
}
8688

89+
/**
90+
* Get an array of how many prompts the user has completed in general.
91+
*
92+
* @param mixed $user
93+
*
94+
* @return array
95+
*/
96+
public function filterCount($user) {
97+
if (Auth::check()) {
98+
// filter the submissions by hour/day/week/etc and returns count
99+
$count['all'] = Submission::submitted($this->id, $user->id)->count();
100+
$count['Hour'] = Submission::submitted($this->id, $user->id)->where('created_at', '>=', now()->startOfHour())->count();
101+
$count['Day'] = Submission::submitted($this->id, $user->id)->where('created_at', '>=', now()->startOfDay())->count();
102+
$count['Week'] = Submission::submitted($this->id, $user->id)->where('created_at', '>=', now()->startOfWeek())->count();
103+
$count['BiWeekly'] = Submission::submitted($this->id, $user->id)->where('created_at', '>=', now()->subWeeks(2))->count();
104+
$count['Month'] = Submission::submitted($this->id, $user->id)->where('created_at', '>=', now()->startOfMonth())->count();
105+
$count['BiMonthly'] = Submission::submitted($this->id, $user->id)->where('created_at', '>=', now()->subMonths(2))->count();
106+
$count['Quarter'] = Submission::submitted($this->id, $user->id)->where('created_at', '>=', now()->subMonths(3))->count();
107+
$count['Year'] = Submission::submitted($this->id, $user->id)->where('created_at', '>=', now()->startOfYear())->count();
108+
} else {
109+
$count = null;
110+
}
111+
112+
return $count;
113+
}
87114
/**********************************************************************************************
88115
89116
SCOPES

app/Services/SubmissionManager.php

Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -66,15 +66,7 @@ public function createSubmission($data, $user, $isClaim = false, $isDraft = fals
6666
if ($prompt->limit) {
6767
// check that the user hasn't hit the prompt submission limit
6868
// filter the submissions by hour/day/week/etc and count
69-
$count['all'] = Submission::submitted($prompt->id, $user->id)->count();
70-
$count['Hour'] = Submission::submitted($prompt->id, $user->id)->where('created_at', '>=', now()->startOfHour())->count();
71-
$count['Day'] = Submission::submitted($prompt->id, $user->id)->where('created_at', '>=', now()->startOfDay())->count();
72-
$count['Week'] = Submission::submitted($prompt->id, $user->id)->where('created_at', '>=', now()->startOfWeek())->count();
73-
$count['BiWeekly'] = Submission::submitted($prompt->id, $user->id)->where('created_at', '>=', now()->subWeeks(2))->count();
74-
$count['Month'] = Submission::submitted($prompt->id, $user->id)->where('created_at', '>=', now()->startOfMonth())->count();
75-
$count['BiMonthly'] = Submission::submitted($prompt->id, $user->id)->where('created_at', '>=', now()->subMonths(2))->count();
76-
$count['Quarter'] = Submission::submitted($prompt->id, $user->id)->where('created_at', '>=', now()->subMonths(3))->count();
77-
$count['Year'] = Submission::submitted($prompt->id, $user->id)->where('created_at', '>=', now()->startOfYear())->count();
69+
$count = $prompt->filterCount($user);
7870

7971
// if limit by character is on... multiply by # of chars. otherwise, don't
8072
if ($prompt->limit_character) {
@@ -173,15 +165,7 @@ public function editSubmission($submission, $data, $user, $isClaim = false, $isS
173165
if ($prompt->limit && !($submission->status == 'Draft' && $submission->prompt_id && $submission->staff_comments)) {
174166
// check that the user hasn't hit the prompt submission limit
175167
// filter the submissions by hour/day/week/etc and count
176-
$count['all'] = Submission::submitted($prompt->id, $user->id)->count();
177-
$count['Hour'] = Submission::submitted($prompt->id, $user->id)->where('created_at', '>=', now()->startOfHour())->count();
178-
$count['Day'] = Submission::submitted($prompt->id, $user->id)->where('created_at', '>=', now()->startOfDay())->count();
179-
$count['Week'] = Submission::submitted($prompt->id, $user->id)->where('created_at', '>=', now()->startOfWeek())->count();
180-
$count['BiWeekly'] = Submission::submitted($prompt->id, $user->id)->where('created_at', '>=', now()->subWeeks(2))->count();
181-
$count['Month'] = Submission::submitted($prompt->id, $user->id)->where('created_at', '>=', now()->startOfMonth())->count();
182-
$count['BiMonthly'] = Submission::submitted($prompt->id, $user->id)->where('created_at', '>=', now()->subMonths(2))->count();
183-
$count['Quarter'] = Submission::submitted($prompt->id, $user->id)->where('created_at', '>=', now()->subMonths(3))->count();
184-
$count['Year'] = Submission::submitted($prompt->id, $user->id)->where('created_at', '>=', now()->startOfYear())->count();
168+
$count = $prompt->filterCount($user);
185169

186170
// if limit by character is on... multiply by # of chars. otherwise, don't
187171
if ($prompt->limit_character) {

0 commit comments

Comments
 (0)