Code Duplication    Length = 24-26 lines in 3 locations

src/Notifynder/Notifications/NotificationRepository.php 3 locations

@@ 235-260 (lines=26) @@
232
     * @param Closure|null $filterScope
233
     * @return mixed
234
     */
235
    public function getNotRead(
236
        $toId,
237
        $entity,
238
        $limit = null,
239
        $paginate = null,
240
        $orderDate = 'desc',
241
        Closure $filterScope = null
242
    ) {
243
        $query = $this->notification->with('body', 'from')
244
            ->wherePolymorphic($toId, $entity)
245
            ->withNotRead()
246
            ->orderBy('read', 'ASC')
247
            ->orderBy('created_at', $orderDate);
248
249
        if ($limit && ! $paginate) {
250
            $query->limit($limit);
251
        }
252
253
        $query = $this->applyFilter($filterScope, $query);
254
255
        if (is_int(intval($paginate)) && $paginate) {
256
            return $query->paginate($limit);
257
        }
258
259
        return $query->get();
260
    }
261
262
    /**
263
     * Retrieve all notifications, not read
@@ 276-300 (lines=25) @@
273
     * @param Closure   $filterScope
274
     * @return mixed
275
     */
276
    public function getAll(
277
        $toId,
278
        $entity,
279
        $limit = null,
280
        $paginate = null,
281
        $orderDate = 'desc',
282
        Closure $filterScope = null
283
    ) {
284
        $query = $this->notification->with('body', 'from')
285
            ->wherePolymorphic($toId, $entity)
286
            ->orderBy('read', 'ASC')
287
            ->orderBy('created_at', $orderDate);
288
289
        if ($limit && ! $paginate) {
290
            $query->limit($limit);
291
        }
292
293
        $query = $this->applyFilter($filterScope, $query);
294
295
        if (is_int(intval($paginate)) && $paginate) {
296
            return $query->paginate($limit);
297
        }
298
299
        return $query->get();
300
    }
301
302
    /**
303
     * get number Notifications
@@ 392-415 (lines=24) @@
389
     * @param Closure   $filterScope
390
     * @return mixed
391
     */
392
    public function getStack(
393
        $stackId,
394
        $limit = null,
395
        $paginate = null,
396
        $orderDate = 'desc',
397
        Closure $filterScope = null
398
    ) {
399
        $query = $this->notification->with('body', 'from', 'to')
400
            ->byStack($stackId)
401
            ->orderBy('read', 'ASC')
402
            ->orderBy('created_at', $orderDate);
403
404
        if ($limit && ! $paginate) {
405
            $query->limit($limit);
406
        }
407
408
        $query = $this->applyFilter($filterScope, $query);
409
410
        if (is_int(intval($paginate)) && $paginate) {
411
            return $query->paginate($limit);
412
        }
413
414
        return $query->get();
415
    }
416
}
417