Edit File: TicketController.php
<?php namespace App\Http\Controllers\Api; use App\Http\Controllers\Controller; use App\Traits\ApiTrait; use App\Traits\GeneralTrait; use App\Traits\Uploadable; use Illuminate\Http\Request; use App\Http\Requests\Api\Ticket\StoreRequest; use App\Http\Requests\Api\Ticket\CancelRequest; use App\Http\Requests\Api\Ticket\EvaluateRequest; use Illuminate\Support\Facades\Validator; use App\Models\Ticket; use App\Models\Ticketimage; use App\Models\Order; use App\Http\Resources\TicketsResource; use App\Http\Resources\TicketResource; use DB; class TicketController extends Controller { use ApiTrait, GeneralTrait, Uploadable; public function createTicket(StoreRequest $request){ $user = auth('api')->user(); // $order = Order::where('id',$request['order_id'])->where('user_id',$user->id)->orwhere('id',$request['order_id'])->where('delegate_id',$user->id)->first(); // if(!$order){ // $msg = trans('order.not_available'); // return $this->failMsg($msg); // } // create ticket $request['user_id'] = $user->id; $ticket = Ticket::create($request->validated() + ['user_id' => $user->id]); // store images if($request['images']){ foreach($request['images'] as $i){ $image = $this->uploadFile($i,'tickets'); Ticketimage::create(['ticket_id'=>$ticket->id,'image'=>$image]); } } $msg = trans('ticket.successfully_created'); $data['ticket_id'] = $ticket->id; return $this->successReturn($msg,$data); // return response()->json(['msg' => $msg , 'data' => $data]); } public function getTickets(Request $request){ // user $user = auth('api')->user(); // fetch tickets $tickets = $user->tickets()->orderBy('created_at','desc')->get(); // response data $data = []; $data['tickets'] = TicketsResource::collection($tickets); return $this->dataReturn($data); } public function singleTicket(Request $request){ $user = auth('api')->user(); $ticket = $user->tickets()->where('id',$request['ticket_id'])->first(); if(!$ticket){ $msg = trans('ticket.not_available'); return $this->failMsg($msg); } $data['tickets'] = new TicketResource($ticket); return $this->dataReturn($data); } public function cancelTicket(CancelRequest $request){ $user = auth('api')->user(); $ticket = $user->tickets()->where('id',$request['ticket_id'])->where('status','open')->first(); if(!$ticket){ $msg = trans('ticket.not_available'); return $this->failMsg($msg); } $ticket->update(['status'=>'canceled']); $msg = trans('ticket.successfully_canceled'); return $this->successMsg($msg); } public function evaluateTicket(EvaluateRequest $request){ $user = auth('api')->user(); $ticket = $user->tickets()->where('id',$request['ticket_id'])->first(); if(!$ticket){ $msg = trans('ticket.not_available'); return $this->failMsg($msg); } $ticket->update(['satisfied'=>$request['satisfied']]); $msg = trans('ticket.successfully_evaluated'); return $this->successMsg($msg); } }
Back to File Manager