Skip to content

Commit

Permalink
Merge branch 'master/dev' into feature/issue-455-_OTHER_Add_more_test
Browse files Browse the repository at this point in the history
  • Loading branch information
lduf authored Mar 1, 2024
2 parents 3144674 + 7806fae commit 0c23469
Show file tree
Hide file tree
Showing 26 changed files with 827 additions and 167 deletions.
149 changes: 0 additions & 149 deletions .idea/website.iml

This file was deleted.

73 changes: 73 additions & 0 deletions src/app/Http/Controllers/PlaceController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
<?php

namespace App\Http\Controllers;

use App\Http\Requests\StorePlaceRequest;
use App\Http\Requests\UpdatePlaceRequest;
use App\Models\Place;
use \App\Http\Livewire\Forms\Coordinates;

class PlaceController extends Controller
{

/**
* Create the controller instance.
*
* @return void
*/
public function __construct()
{
$this->authorizeResource(Place::class, 'place');
}

public function index()
{
//get all place
$places = Place::all();

//load the view and pass the place
return view('place.index', ['places' => $places]);
}

public function create()
{
return view('place.create');
}

public function store(StorePlaceRequest $request)
{
$place = $request->validated();
$place['coordinates'] = Coordinates::encode($place['coordinates']);
$place = Place::create($place);
$place->save();

return redirect('place');
}

public function show(Place $place)
{
// Your show logic here
return view('place.show', ['place' => $place]);
}

public function edit(Place $place)
{
return view('place.edit', ['place' => $place]);
}

public function update(UpdatePlaceRequest $request, Place $place)
{
$place['coordinates'] = Coordinates::encode($place['coordinates']);
$place->update($request->validated());

return redirect()->route('place.index');
}

public function destroy(Place $place)
{
// Your destroy logic here
$place->delete();

return redirect('place');
}
}
32 changes: 32 additions & 0 deletions src/app/Http/Requests/StorePlaceRequest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;
use App\Http\Livewire\Forms\Coordinates;

class StorePlaceRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}

/**
* Get the validation rules that apply to the request.
*
* @return array<string, mixed>
*/
public function rules()
{
return [
'name' => 'required|string|max:255|unique:places,name',
'description' => 'nullable|string',
] + Coordinates::rules('coordinates');
}
}
32 changes: 32 additions & 0 deletions src/app/Http/Requests/UpdatePlaceRequest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;
use App\Http\Livewire\Forms\Coordinates;

class UpdatePlaceRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}

/**
* Get the validation rules that apply to the request.
*
* @return array<string, mixed>
*/
public function rules()
{
return [
"name" => "required|unique:places,name," . $this->route('place')->id . "|string",
'description' => 'nullable|string',
] + Coordinates::rules('coordinates');
}
}
2 changes: 1 addition & 1 deletion src/app/Models/Permission.php
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ public static function getPolicyRouteNameFromRouteName($route_name)

public static function getRoutesWithPermission()
{
$routes_with_permissions = ["user", "person", "links", "cytoscape", "fields", "lists_control", "duplicate", "api_logs", "crew", "roles", "event", "source"];
$routes_with_permissions = ["user", "person", "links", "cytoscape", "fields", "lists_control", "duplicate", "api_logs", "crew", "roles", "event", "source", "place"];
if (env('APP_DEBUG') or env('APP_ENV') == "testing"){
array_push($routes_with_permissions, "permissions");
}
Expand Down
48 changes: 48 additions & 0 deletions src/app/Models/Place.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
<?php

namespace App\Models;

use App\Traits\Uuids;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;

class Place extends Model
{
use HasFactory, Uuids, SoftDeletes;

/**
* The data type of the auto-incrementing ID.
*
* @var string
*/
protected $keyType = 'string';

/**
* Indicates if the model's ID is auto-incrementing.
*
* @var bool
*/
public $incrementing = false;

/**
* The attributes that aren't mass assignable.
*
* @var array
*/
protected $guarded = [];

/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = ['name', 'coordinates', 'description'];

/**
* The attributes that should be mutated to dates.
*
* @var array
*/
protected $dates = ['deleted_at'];
}
15 changes: 15 additions & 0 deletions src/app/Policies/PlacePolicy.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?php

namespace App\Policies;

use Illuminate\Auth\Access\HandlesAuthorization;

class PlacePolicy extends GlobalPolicy
{
use HandlesAuthorization;

public function __construct($route_name = "place")
{
parent::__construct($route_name);
}
}
26 changes: 26 additions & 0 deletions src/database/factories/PlaceFactory.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
<?php

namespace Database\Factories;

use App\Models\Place;
use Illuminate\Database\Eloquent\Factories\Factory;

class PlaceFactory extends Factory
{
protected $model = Place::class;

public function definition(): array
{

$coordinates = json_encode([
"lat" => $this->faker->latitude,
"long" => $this->faker->longitude,
]);

return [
"name" => $this->faker->unique()->name,
"coordinates" => $coordinates,
"description" => $this->faker->realText,
];
}
}
Loading

0 comments on commit 0c23469

Please sign in to comment.