REDROOM
PHP 8.2.30
Path:
Logout
Edit File
Size: 3.50 KB
Close
/home/byroehnu/easetack.com/app/Repositories/Frontend/TicketRepository.php
Text
Base64
<?php namespace App\Repositories\Frontend; use App\Helpers\IDGenerator; use App\Models\Ticket; use App\Repositories\Traits\ModelRepositoryTraits; use Illuminate\Http\Request; use Illuminate\Pagination\LengthAwarePaginator; use Illuminate\Support\Facades\Auth; class TicketRepository { use ModelRepositoryTraits; /** * Object model will be used to modify tickets table */ protected Ticket $model; /** * Constructor for Ticket repository */ public function __construct(Ticket $ticket) { $this->model = $ticket; } /** * Get search result with pagination */ public function paginateSearchResult(): LengthAwarePaginator { $query = $this->model->with(['replies.user', 'user'])->where('user_id', Auth::user()->id)->newQuery(); return $query->paginate(10); } /** * Create a new ticket */ public function create(Request $request): void { /** store file **/ $filePaths = []; if ($request->hasFile('documents')) { foreach ($request->file('documents') as $file) { $originalFileName = $file->getClientOriginalName(); $fileName = $this->generateFileName($originalFileName); $filePath = $file->storeAs('tickets', $fileName); $filePaths[] = $filePath; } } /** generate ticket id **/ $maxId = $this->model->max('id'); $IDGenerator = new IDGenerator; /** assign tickets **/ $this->model->create([ 'user_id' => Auth::user()->id, 'generate_id' => $IDGenerator->generate($maxId), 'subject' => $request->input('subject'), 'properly' => $request->input('properly'), 'message' => $request->input('message'), 'documents' => json_encode($filePaths), 'is_viewed' => 0, 'is_client_viewed' => 0, 'status' => 'pending', ]); } /** * Generate File Original name */ public function generateFileName($originalFileName): mixed { /** check if the file with the same name already exist **/ if ($this->model->where('original_file_name', $originalFileName)->exists()) { $maxSerial = $this->model->where('original_file_name', $originalFileName)->count() + 1; $fileName = pathinfo($originalFileName, PATHINFO_FILENAME).'-'.$maxSerial.'.'.pathinfo($originalFileName, PATHINFO_EXTENSION); } else { $fileName = $originalFileName; } return $fileName; } /** * Create a reply for a ticket with file attachment */ public function createReply(Request $request, Ticket $ticket): void { $filePaths = []; if ($request->hasFile('documents')) { foreach ($request->file('documents') as $file) { $originalFileName = $file->getClientOriginalName(); $fileName = $this->generateFileName($originalFileName); $filePath = $file->storeAs('tickets', $fileName); $filePaths[] = $filePath; } } $ticket->replies()->create([ 'user_id' => Auth::id(), 'reply' => $request->input('message'), 'documents' => json_encode($filePaths), ]); } /** * Bulk delete tickets */ public function bulkDelete(Request $request): void { $ids = explode(',', $request->ids); Ticket::whereIn('id', $ids)->delete(); } }
Save
Close
Exit & Reset
Text mode: syntax highlighting auto-detects file type.
Directory Contents
Dirs: 0 × Files: 9
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
BlogRepository.php
2.62 KB
lrw-rw-rw-
2025-04-19 04:22:15
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
CheckoutRepository.php
8.26 KB
lrw-rw-rw-
2025-05-15 11:24:11
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
PageRepository.php
1.45 KB
lrw-rw-rw-
2025-04-19 04:22:15
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
PricingPlanRepository.php
6.38 KB
lrw-rw-rw-
2025-05-08 12:05:13
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ProductRepository.php
2.52 KB
lrw-rw-rw-
2025-04-26 11:30:31
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ProfileRepository.php
1.77 KB
lrw-rw-rw-
2025-04-15 10:33:57
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ReviewRepository.php
829 B
lrw-rw-rw-
2025-04-19 04:22:16
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
SearchRepository.php
5.46 KB
lrw-rw-rw-
2025-04-24 11:21:09
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
TicketRepository.php
3.50 KB
lrw-rw-rw-
2025-04-13 07:02:31
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).