- Diposting oleh:
- Diposting pada:
- Kategori:
LKSLKS - Sistem:
Tidak diketahui - Harga:
USD 0 - Dilihat:
1440
Membuat Controller upload
Pertama, buatlah controller dengan nama gamesController terlebih dahulu. Buka terminal dan ketikkan kode di bawah ini.
php artisan make:controller uploadController
Kemudian masuk ke app/Http/Controllers/uploadController.php
Sebelum itu mari kita ubah storage default nya ke public, buka terminal lalu ketik kode di bawah dan tekan enter.
php artisan storage:link
Membuat Fungsi upload
Sekarang, kita akan membuat fungsi upload . Saya sudah menyiapkan kodenya. Anda bisa menyalin kode di bawah ini.
public function uploadfile($slug, Request $request)
{
try {
$request->validate([
'zipfile'=>'required|file',
'thumbnail'=>'nullable|file'
]);
$zip = $request->file('zipfile');
$thumbnail = $request->file('thumbnail');
if ($zip == null) {
return response()->json([
'status'=>'invalid',
'message'=>'the zipfile is null'
]);
}
$games = games::where('slug',$slug)->with('game_version')->first();
$path = gameversion::where('game_id',$games->id)->get()->last()->storage_path;
if ($thumbnail) {
$thumbnail->move(public_path($path),'thumbnail.png');
}
$zipname = $games->title . '.zip';
$zip->move(public_path($path),$zipname);
return response()->json([
'status'=>'success',
'content'=>$path
]);
} catch (\Throwable $th) {
return response()->json(['status' => 'error', 'message' => $th->getMessage()], 422);
}
}
Kemudian masuk kedalam routes/api.php
lalu ketikkan kode dibawah untuk membuat routing api nya.
Route::post('/v1/games/{slug}/upload',[uploadController::class,'uploadfile']);
Tambahkan routing di atas ke dalam middleware yang telah kita buat sebelumnya.
Mari kita coba, jika berhasil maka responnya seperti ini yaa!
Membuat controller score
Pertama, buatlah controller dengan nama gamesController terlebih dahulu. Buka terminal dan ketikkan kode di bawah ini.
php artisan make:controller scoreController
Kemudian masuk ke app/Http/Controllers/scoreController.php
Membuat fungsi showscore
Sekarang, kita akan membuat fungsi show. Saya sudah menyiapkan kodenya. Anda bisa menyalin kode di bawah ini.
public function show($slug)
{
try {
$games = games::where('slug', $slug)->first();
$gamver = gameversion::where('game_id', $games->id)->get();
$temp = [];
foreach ($gamver as $key => $value) {
$score = score::where('game_version_id',$value->id)->get();
foreach ($score as $key => $val) {
$val['username'] = society::where('id',$val->user_id)->first()->username;
$val['timestamps'] = $val->created_at;
}
$temp = $score;
}
return response()->json(['scores'=>$temp->makeHidden(['user_id','game_version_id','updated_at','id','created_at'])],200);
} catch (\Throwable $th) {
return response()->json(['status' => 'error', 'message' => $th->getMessage()], 422);
}
}
Kemudian masuk kedalam routes/api.php
lalu ketikkan kode dibawah untuk membuat routing api nya.
Route::get('/v1/games/{slug}/scores',[scoreController::class, 'show']);
Mari kita coba, jika berhasil maka responnya seperti ini yaa!
Membuat fungsi postscore
Sekarang, kita akan membuat fungsi post. Saya sudah menyiapkan kodenya. Anda bisa menyalin kode di bawah ini.
public function postscore($slug,Request $request){
try {
$request->validate([
'score'=>'required|decimal:0,100'
]);
$games = games::where('slug',$slug)->first();
$gamver = gameversion::where('game_id',$games->id)->get()->last();
$score = new score();
$score->score = $request->score;
$score->game_version_id = $gamver->id;
$score->user_id = $request->user()->id;
$score->save();
return response()->json(['status'=>'success'],200);
} catch (\Throwable $th) {
return response()->json(['status' => 'error', 'message' => $th->getMessage()], 422);
}
}
Kemudian masuk kedalam routes/api.php
lalu ketikkan kode dibawah untuk membuat routing api nya.
Route::post('v1/games/{slug}/scores',[scoreController::class, 'postscore']);
Tambahkan routing di atas ke dalam middleware yang telah kita buat sebelumnya.
Mari kita coba, jika berhasil maka responnya seperti ini yaa!
Dengan demikian, melalui diskusi modul Web Technologies Server, diharapkan Anda akan mendapatkan pemahaman yang lebih dalam tentang konsep-konsep kunci serta praktik terbaik untuk mengembangkan manajemen server Kami percaya bahwa pengetahuan yang diperoleh akan menjadi dasar yang kuat untuk perjalanan Anda di dunia teknologi Terus mengeksplorasi, terus belajar, dan tetap terhubung dengan perkembangan terbaru di industri Semoga sukses denganmu .