change response json

This commit is contained in:
Muhammad Fajar
2022-11-03 10:50:27 +07:00
parent c6f5d129c2
commit b96c6726e9
10 changed files with 62 additions and 123 deletions

View File

@@ -2,6 +2,7 @@
namespace Modules\Linksehat\Http\Controllers\Api;
use App\Helpers\Helper;
use App\Http\Controllers\Controller;
use App\Models\Person;
use App\Models\User;
@@ -10,6 +11,7 @@ use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use Laravel\Socialite\Facades\Socialite;
use Modules\Linksehat\Transformers\UserProfileResource;
use Symfony\Component\HttpFoundation\Response;
use Validator;
class AuthController extends Controller
@@ -60,11 +62,9 @@ class AuthController extends Controller
}
if (!$user) {
return response()->json([
'message' => filter_var($request->phone_or_email, FILTER_VALIDATE_EMAIL) ?
"User dengan alamat email " . $request->phone_or_email . " tidak ditemukan" :
"User dengan nomor telepon " . $request->phone_or_email . " tidak ditemukan"
], 404);
$message = filter_var($request->phone_or_email, FILTER_VALIDATE_EMAIL) ? "User dengan alamat email " . $request->phone_or_email . " tidak ditemukan" : "User dengan nomor telepon " . $request->phone_or_email . " tidak ditemukan";
return Helper::responseJson(statusCode: Response::HTTP_NOT_FOUND, message: $message);
}
// TODO Send the OTP
@@ -74,13 +74,10 @@ class AuthController extends Controller
// Send Whatsapp
}
return response()->json([
'message' => 'OTP Terkirim',
'data' => [
'otp' => $user->otp,
'otp_valid_until' => $user->otp_created_at->addMinutes(config('linksehat.otp_valid_minutes'))
]
]);
return Helper::responseJson(data: [
'otp' => $user->otp,
'otp_valid_until' => $user->otp_created_at->addMinutes(config('linksehat.otp_valid_minutes'))
], message: 'OTP Terkirim');
}
public function login(Request $request)
@@ -124,11 +121,7 @@ class AuthController extends Controller
return response(['message' => 'Mode Login Tidak Dikenal'], 403);
}
return response([
'message' => 'Selamat Datang',
'user' => UserProfileResource::make($user),
'token' => $user->createToken('app')->plainTextToken
]);
return Helper::responseJson(data: ['token' => $user->createToken('app')->plainTextToken], message: 'Selamat Datang');
}
public function register(Request $request)
@@ -148,19 +141,14 @@ class AuthController extends Controller
])->validate();
try {
$user = User::create([
User::create([
'email' => $request->email,
'password' => Hash::make($request->password),
]);
return response()->json([
'message' => 'Akun berhasil dibuat, silahkan cek E-mail untuk konfirmasi'
], 201);
return Helper::responseJson(statusCode: Response::HTTP_CREATED, message: 'Akun berhasil dibuat, silahkan cek E-mail untuk konfirmasi');
} catch (\Exception $e) {
return response()->json([
'message' => 'Terjadi masalah ketika mendaftar',
'error_message' => $e->getMessage()
], 403);
return Helper::responseJson(['error_message' => $e->getMessage()], Response::HTTP_FORBIDDEN, 'Terjadi masalah ketika mendaftar');
}
}
@@ -169,7 +157,7 @@ class AuthController extends Controller
$token = $request->bearerToken();
Auth::user()->tokens()->where('id', $token)->delete();
return response(['message' => 'Berhasil Logout.']);
return Helper::responseJson(message: 'Behasil Logout.');
}
public function mockOtp(Request $request)
@@ -178,23 +166,12 @@ class AuthController extends Controller
'phone_or_email' => 'required'
]);
$user = User::where((filter_var($request->phone_or_email, FILTER_VALIDATE_EMAIL) ? 'email' : 'phone'), $request->phone_or_email)->first();
$user = User::query()->where((filter_var($request->phone_or_email, FILTER_VALIDATE_EMAIL) ? 'email' : 'phone'), $request->phone_or_email)->firstOrFail();
if ($user) {
return response()->json([
'message' => 'OTP Anda',
'data' => [
'otp' => $user->otp,
'otp_valid_until' => $user->otp_created_at ? $user->otp_created_at->addMinutes(config('linksehat.otp_valid_minutes')) : null
]
]);
}
if (!$user) {
return response()->json([
'message' => 'User Tidak Ditemukan'
], 404);
}
return Helper::responseJson(data: [
'otp' => $user->otp,
'otp_valid_until' => $user->otp_created_at ? $user->otp_created_at->addMinutes(config('linksehat.otp_valid_minutes')) : null
], message: 'OTP Anda');
}
public function redirectSocialLogin($provider)
@@ -224,10 +201,9 @@ class AuthController extends Controller
]);
}
return response([
'message' => 'Selamat Datang',
return Helper::responseJson(data: [
'user' => UserProfileResource::make($user),
'token' => $user->createToken('app')->plainTextToken
]);
], message: 'Selamat Datang');
}
}

View File

@@ -2,6 +2,7 @@
namespace Modules\Linksehat\Http\Controllers\Api;
use App\Helpers\Helper;
use App\Models\Organization;
use App\Models\PractitionerRole;
use Illuminate\Routing\Controller;
@@ -58,11 +59,6 @@ class DashboardController extends Controller
$data = ArticleResource::collection(json_decode(Http::get('https://linksehat.com/api/medical-assistance-articles')));
}
return response()->json([
'status' => 'success',
'statusCode' => Response::HTTP_OK,
'message' => 'Data berhasil di ambil',
'data' => $data,
]);
return Helper::responseJson($data);
}
}

View File

@@ -10,8 +10,7 @@ use DB;
use Illuminate\Contracts\Support\Renderable;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
use Modules\Linksehat\Transformers\DoctorResource;
use Modules\Linksehat\Transformers\Doctors\DoctorResourceDetail;
use Modules\Linksehat\Transformers\Doctor\DoctorResourceDetail;
use Modules\Linksehat\Transformers\PractitionerRoleToDoctorResource;
class DoctorController extends Controller
@@ -61,7 +60,7 @@ class DoctorController extends Controller
$doctors = $doctors->paginate($limit);
return Helper::makeJsonResponse(Helper::paginateResources(PractitionerRoleToDoctorResource::collection($doctors)));
return Helper::responseJson(Helper::paginateResources(PractitionerRoleToDoctorResource::collection($doctors)));
}
/**
@@ -105,6 +104,7 @@ class DoctorController extends Controller
$doctor = DoctorResourceDetail::make($queryDoctor);
$doctor['day_available'] = Helper::dailyAvailabilities($queryAvailables);
// return Helper::responseJson();
return response()->json(compact('doctor'));
}

View File

@@ -2,6 +2,7 @@
namespace Modules\Linksehat\Http\Controllers\Api;
use App\Helpers\Helper;
use App\Models\Organization;
use Illuminate\Contracts\Support\Renderable;
use Illuminate\Database\Eloquent\Builder;
@@ -115,7 +116,7 @@ class HospitalController extends Controller
});
$queryHospitals = $queryHospitals->orderBy('organizations.name', 'asc')->findOrFail($id);
return HospitalResource::make($queryHospitals);
return Helper::responseJson(new HospitalResource($queryHospitals));
}
/**

View File

@@ -2,6 +2,7 @@
namespace Modules\Linksehat\Http\Controllers\Api;
use App\Helpers\Helper;
use App\Models\File;
use App\Models\Person;
use Auth;
@@ -28,7 +29,7 @@ class PersonController extends Controller
unset($currentUserPerson->families);
$families->prepend($currentUserPerson);
return PersonResource::collection($families);
return Helper::responseJson(PersonResource::collection($families));
}
/**
@@ -68,14 +69,7 @@ class PersonController extends Controller
$personModel = Person::query()->create($personData);
return response()->json([
'status' => 'success',
'statusCode' => Response::HTTP_CREATED,
'message' => 'Data Berhasil di buat',
'data' => [
'person' => $personModel,
],
], Response::HTTP_CREATED);
return Helper::responseJson(['person' => $personModel], Response::HTTP_CREATED, 'Data berhasil di buat');
}
/**
@@ -85,14 +79,7 @@ class PersonController extends Controller
*/
public function show(Person $person)
{
return response()->json([
'status' => 'success',
'statusCode' => Response::HTTP_OK,
'message' => 'Data Person dengan nama ' . $person->name . ' berhasil di ambil',
'data' => [
'person' => new PersonResource($person),
],
]);
return Helper::responseJson(data: new PersonResource($person), message: 'Data Person dengan nama ' . $person->name . ' berhasil di ambil');
}
/**
@@ -126,8 +113,6 @@ class PersonController extends Controller
'domicile_address_id',
]);
return Person::query()->with('families')->find(auth()->user()->person_id);
$person->update($personData);
if ($request->hasFile('user_avatar')) {
@@ -167,14 +152,7 @@ class PersonController extends Controller
]);
}
return response()->json([
'status' => 'success',
'statusCode' => Response::HTTP_OK,
'message' => 'Data Berhasil di update',
'data' => [
'person' => $person,
],
]);
return Helper::responseJson(data: $person, message: 'Data Berhasil di update');
}
/**

View File

@@ -2,10 +2,12 @@
namespace Modules\Linksehat\Http\Controllers\Api;
use App\Helpers\Helper;
use App\Models\User;
use Illuminate\Contracts\Support\Renderable;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
use Illuminate\Support\Facades\Auth;
use Modules\Linksehat\Transformers\UserProfileResource;
class ProfileController extends Controller
@@ -16,12 +18,9 @@ class ProfileController extends Controller
*/
public function index()
{
$user = auth()->user();
$user->load('person');
$user = Auth::user()->load('person');
return response()->json([
'user' => UserProfileResource::make($user)
]);
return Helper::responseJson(new UserProfileResource($user));
}
/**
@@ -84,7 +83,7 @@ class ProfileController extends Controller
'preferred_lang' => 'in:id,en'
]);
$user = auth()->user();
$user = Auth::user();
if ($user->person) { // Update Profile
$user->person->fill($request->only([
'nik', 'name_prefix', 'name', 'name_suffix', 'gender', 'birth_date', 'deceased_at', 'marital_status'
@@ -109,7 +108,7 @@ class ProfileController extends Controller
$newPerson = $user->person()->create($newPerson);
$user->person_id = $newPerson->id;
$user->save();
if ($request->has('preferred_lang')) {
$user->metas()->updateOrCreate([
'type' => 'preferred_lang'
@@ -122,7 +121,7 @@ class ProfileController extends Controller
}
$user = User::find($user->id); // ReLoad User Data
return response()->json(UserProfileResource::make($user));
return Helper::responseJson(new UserProfileResource($user));
}
/**

View File

@@ -2,6 +2,7 @@
namespace Modules\Linksehat\Http\Controllers\Api;
use App\Helpers\Helper;
use App\Models\Organization;
use App\Models\Practice;
use App\Models\PractitionerRole;
@@ -32,14 +33,7 @@ class SearchController extends Controller
->where('organization_id', $request->organization_id)
->get(['persons.name AS person_name', 'specialities.name AS speciality_name', 'practitioner_id', 'practitioner_roles.id']);
return response()->json([
'status' => 'success',
'statusCode' => Response::HTTP_OK,
'message' => 'Data Berhasil di ambil',
'data' => [
'doctors' => SpecialityResource::collection($doctors)
]
]);
return Helper::responseJson(SpecialityResource::collection($doctors));
}
public function searchHospital(Request $request)
@@ -74,11 +68,6 @@ class SearchController extends Controller
->groupBy(['practitioner_roles.organization_id', 'practitioner_roles.speciality_id'])
->get();
return response()->json([
'status' => 'success',
'statusCode' => Response::HTTP_OK,
'message' => 'Data rumah sakit berhasil di ambil',
'data' => HospitalResource::collection($queryHospitals)
]);
return Helper::responseJson(data: HospitalResource::collection($queryHospitals), message: 'Data rumah sakit berhasil di ambil');
}
}

View File

@@ -2,6 +2,7 @@
namespace Modules\Linksehat\Http\Controllers\Api;
use App\Helpers\Helper;
use App\Models\Practice;
use App\Models\PractitionerRole;
use App\Models\Speciality;
@@ -42,26 +43,16 @@ class SpecialityController extends Controller
$specialisName = $doctor->speciality->name;
}
return response()->json([
'status' => 'success',
'statusCode' => Response::HTTP_OK,
'message' => 'Data Berhasil di ambil',
'data' => [
'title' => 'Spesialis ' . $specialisName,
'doctors' => SpecialityResource::collection($doctors)
]
return Helper::responseJson([
'title' => 'Spesialis ' . $specialisName,
'doctors' => SpecialityResource::collection($doctors)
]);
}
public function listSpeciality()
{
$specialities = Speciality::query()->get(['name']);
$querySpecialities = Speciality::query()->get(['name']);
return response()->json([
'status' => 'success',
'statusCode' => Response::HTTP_OK,
'message' => 'Data Berhasil di ambil',
'data' => SpecialityResource::collection($specialities)
]);
return Helper::responseJson(SpecialityResource::collection($querySpecialities));
}
}

View File

@@ -1,11 +1,11 @@
<?php
namespace Modules\Linksehat\Transformers\Doctors;
namespace Modules\Linksehat\Transformers\Doctor;
use App\Helpers\Helper;
use App\Models\Organization;
use Illuminate\Http\Resources\Json\JsonResource;
use Modules\Linksehat\Transformers\Dashboard\HospitalResource;
use Modules\Linksehat\Transformers\Hospital\HospitalResource;
class DoctorResourceDetail extends JsonResource
{

View File

@@ -4,6 +4,7 @@ namespace App\Helpers;
use Carbon\Carbon;
use Carbon\CarbonPeriod;
use Illuminate\Http\JsonResponse;
use Symfony\Component\HttpFoundation\Response;
class Helper
@@ -144,12 +145,20 @@ class Helper
return (object) $schedules;
}
public static function currencyIdrFormat($price)
public static function currencyIdrFormat(int $price)
{
return "Rp. " . number_format($price, 0, ',', '.');
}
public static function responseJson($data = [], $statusCode = Response::HTTP_OK, $message = 'Data berhasil di ambil')
/**
* Helper Response Json.
*
* @param array|object $data
* @param int $statusCode
* @param string $message
* @return JsonResponse
*/
public static function responseJson(array|object $data = [], int $statusCode = Response::HTTP_OK, string $message = 'Data berhasil di ambil'): JsonResponse
{
return response()->json([
'status' => $statusCode != 200 ? 'error' : 'success',