faqs almost ready

This commit is contained in:
Mahri Ilmedova 2022-08-29 22:44:40 +05:00 committed by ilmedova
parent 0a939ecf1c
commit 7c0123567f
10 changed files with 91 additions and 7 deletions

View File

@ -7,6 +7,8 @@
use App\Models\Country;
use App\Models\Category;
use App\Http\Controllers\Controller;
use App\Http\Resources\QuestionResource;
use App\Models\Question;
class ResourceController extends Controller
{
@ -19,4 +21,8 @@ public function categories(){
return CategoryResource::collection(Category::all());
}
public function faqs(){
return QuestionResource::collection(Question::all());
}
}

View File

@ -21,7 +21,7 @@ public function chat(Request $request){
public function getTicketMessages(Request $request){
if(Ticket::find($request->ticket_id)){
$messages = Message::where('ticket_id', $request->ticket_id)->orderBy('id', 'asc')->get();
$messages = Message::where('ticket_id', $request->ticket_id)->orderBy('id', 'asc')->paginate($request->per_page ?? 10);
return MessageResource::collection($messages);
}
return response()->json([
@ -66,7 +66,7 @@ public function postMessageAdmin(MessageRequest $request){
public function getTickets(Request $request){
$client = $request->user();
$tickets = Ticket::with('status')->where('client_id', $client->id)->orderBy('created_at', 'desc')->get();
$tickets = Ticket::with('status')->where('client_id', $client->id)->orderBy('created_at', 'desc')->paginate($request->per_page ?? 10);
return TicketResource::collection($tickets);
}

View File

@ -39,7 +39,18 @@ public function setup()
*/
protected function setupListOperation()
{
$this->crud->setFromDb();
CRUD::addColumns([
[
'name' => 'question_text',
'type' => 'text',
'label' => 'Question text'
],
[
'name' => 'options',
'type' => 'text',
'label' => 'Options'
]
]);
}
/**
@ -55,7 +66,7 @@ protected function setupCreateOperation()
CRUD::addFields([
[
'name' => 'question_text',
'type' => 'textarea',
'type' => 'text',
'label' => 'Question text'
],
[

View File

@ -0,0 +1,23 @@
<?php
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\JsonResource;
class QuestionResource extends JsonResource
{
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
* @return array|\Illuminate\Contracts\Support\Arrayable|\JsonSerializable
*/
public function toArray($request)
{
return [
'id' => $this->id,
'question_text' => $this->question_text,
'options' => $this->options
];
}
}

View File

@ -3,11 +3,14 @@
namespace App\Models;
use Backpack\CRUD\app\Models\Traits\CrudTrait;
use Backpack\CRUD\app\Models\Traits\SpatieTranslatable\HasTranslations;
use Illuminate\Database\Eloquent\Model;
class Question extends Model
{
use CrudTrait;
use HasTranslations;
/*
|--------------------------------------------------------------------------
@ -25,6 +28,7 @@ class Question extends Model
];
// protected $hidden = [];
// protected $dates = [];
protected $translatable = ['question_text', 'options'];
/*
|--------------------------------------------------------------------------

View File

@ -6,6 +6,6 @@
}
},
"github-oauth": {
"github.com": "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"
"github.com": "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"
}
}

2
composer.lock generated
View File

@ -16,7 +16,7 @@
},
"dist": {
"type": "zip",
"url": "file://C:/MAMP/htdocs/birzha-legalizasia/CRUD-5.zip",
"url": "file:///var/www/birzha-legalizasia/CRUD-5.zip",
"reference": "4539c787a2e052d2e2e2c00188c38432dc2a7ea9",
"shasum": ""
},

View File

@ -41,7 +41,7 @@
<ul class="nav-dropdown-items">
<li class='nav-item'><a class='nav-link' href='{{ backpack_url('country') }}'><i class='nav-icon la la-question'></i> Countries</a></li>
<li class='nav-item'><a class='nav-link' href='{{ backpack_url('answer') }}'><i class='nav-icon la la-question'></i> Answers</a></li>
<li class='nav-item'><a class='nav-link' href='{{ backpack_url('question') }}'><i class='nav-icon la la-question'></i> Questions</a></li>
<li class='nav-item'><a class='nav-link' href='{{ backpack_url('question') }}'><i class='nav-icon la la-question'></i> FAQs</a></li>
</ul>
</li>

View File

@ -21,6 +21,7 @@
Route::post('/verify-email', [AuthController::class, 'verifyEmail']);
Route::get('/countries', [ResourceController::class, 'countries']);
Route::get('/categories', [ResourceController::class, 'categories']);
Route::get('/faqs', [ResourceController::class, 'faqs']);
// Route::post('/prof',[AccountController::class,'storeProfileInfo']);
Route::middleware(['auth.client','auth:api', 'auth:sanctum'])->group(function () {
/**

View File

@ -1105,6 +1105,45 @@
}
}
},
"/api/faqs": {
"get": {
"tags": [
"Resources"
],
"summary": " - Get FAQs list",
"operationId": "564aa61702ec5a6b97507a0505ef1tghh",
"parameters": [
{
"name": "X-Localization",
"in": "header",
"description": "Localization",
"required": false,
"schema": {
"type": "string"
},
"examples": {
"ru": {
"summary": "Russian localization",
"value": "ru"
},
"en": {
"summary": "English localization",
"value": "en"
},
"tm": {
"summary": "Turkmen localization",
"value": "tm"
}
}
}
],
"responses": {
"200": {
"description": "OK"
}
}
}
},
"/api/ticket/my-tickets": {
"get": {
"tags": [