Migrasi ke Laravel dan penambahan dokumentasi

This commit is contained in:
GuavaPopper
2026-05-02 14:03:04 +07:00
parent 7759b83638
commit 6f108afdba
83 changed files with 12004 additions and 3 deletions
+8
View File
@@ -0,0 +1,8 @@
<?php
namespace App\Http\Controllers;
abstract class Controller
{
//
}
+50
View File
@@ -0,0 +1,50 @@
<?php
namespace App\Http\Controllers;
use App\Models\RumahIbadah;
use Illuminate\Http\Request;
class IbadahController extends Controller
{
public function index()
{
return response()->json(RumahIbadah::all());
}
public function store(Request $request)
{
$validated = $request->validate([
'nama' => 'required|string',
'alamat' => 'required|string',
'latitude' => 'required|numeric',
'longitude' => 'required|numeric',
'radius' => 'nullable|integer',
]);
$ibadah = RumahIbadah::create($validated);
return response()->json(['success' => true, 'data' => $ibadah]);
}
public function update(Request $request, $id)
{
$ibadah = RumahIbadah::findOrFail($id);
$validated = $request->validate([
'nama' => 'required|string',
'alamat' => 'required|string',
'latitude' => 'required|numeric',
'longitude' => 'required|numeric',
'radius' => 'required|integer',
]);
$ibadah->update($validated);
return response()->json(['success' => true, 'data' => $ibadah]);
}
public function destroy($id)
{
$ibadah = RumahIbadah::findOrFail($id);
$ibadah->delete();
return response()->json(['success' => true]);
}
}
+51
View File
@@ -0,0 +1,51 @@
<?php
namespace App\Http\Controllers;
use App\Models\RumahMiskin;
use Illuminate\Http\Request;
class MiskinController extends Controller
{
public function index()
{
return response()->json(RumahMiskin::all());
}
public function store(Request $request)
{
$validated = $request->validate([
'id_rumah' => 'required|string|unique:rumah_miskin,id_rumah',
'alamat' => 'required|string',
'jumlah_kk' => 'required|integer',
'jumlah_orang' => 'required|integer',
'latitude' => 'required|numeric',
'longitude' => 'required|numeric',
]);
$miskin = RumahMiskin::create($validated);
return response()->json(['success' => true, 'data' => $miskin]);
}
public function update(Request $request, $id_rumah)
{
$miskin = RumahMiskin::findOrFail($id_rumah);
$validated = $request->validate([
'alamat' => 'required|string',
'jumlah_kk' => 'required|integer',
'jumlah_orang' => 'required|integer',
'latitude' => 'required|numeric',
'longitude' => 'required|numeric',
]);
$miskin->update($validated);
return response()->json(['success' => true, 'data' => $miskin]);
}
public function destroy($id_rumah)
{
$miskin = RumahMiskin::findOrFail($id_rumah);
$miskin->delete();
return response()->json(['success' => true]);
}
}
+15
View File
@@ -0,0 +1,15 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class RumahIbadah extends Model
{
/** @use HasFactory<\Database\Factories\RumahIbadahFactory> */
use HasFactory;
protected $table = 'rumah_ibadah';
protected $fillable = ['nama', 'alamat', 'latitude', 'longitude', 'radius'];
}
+18
View File
@@ -0,0 +1,18 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class RumahMiskin extends Model
{
/** @use HasFactory<\Database\Factories\RumahMiskinFactory> */
use HasFactory;
protected $table = 'rumah_miskin';
protected $primaryKey = 'id_rumah';
public $incrementing = false;
protected $keyType = 'string';
protected $fillable = ['id_rumah', 'alamat', 'jumlah_kk', 'jumlah_orang', 'latitude', 'longitude'];
}
+32
View File
@@ -0,0 +1,32 @@
<?php
namespace App\Models;
// use Illuminate\Contracts\Auth\MustVerifyEmail;
use Database\Factories\UserFactory;
use Illuminate\Database\Eloquent\Attributes\Fillable;
use Illuminate\Database\Eloquent\Attributes\Hidden;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
#[Fillable(['name', 'email', 'password'])]
#[Hidden(['password', 'remember_token'])]
class User extends Authenticatable
{
/** @use HasFactory<UserFactory> */
use HasFactory, Notifiable;
/**
* Get the attributes that should be cast.
*
* @return array<string, string>
*/
protected function casts(): array
{
return [
'email_verified_at' => 'datetime',
'password' => 'hashed',
];
}
}
+24
View File
@@ -0,0 +1,24 @@
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
/**
* Register any application services.
*/
public function register(): void
{
//
}
/**
* Bootstrap any application services.
*/
public function boot(): void
{
//
}
}