File: /mnt/data/ghayatcom/ghayatcom-api/app/Http/Resources/UserCollection.php
<?php
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\ResourceCollection;
class UserCollection extends ResourceCollection
{
/**
* Transform the resource collection into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
private $code;
private $type;
private $message;
public function __construct($resource, $code = 200, $type = 'List', $message = null)
{
parent::__construct($resource);
$this->code = $code;
$this->type = $type;
$this->message = $message;
}
public function toArray($request)
{
return [
'code' => $this->code,
'message' => (isset($this->message)) ? [$this->message] : [__('digimed_validation.success_response.data_fetch_success')],
'data' => [
$this->type => $this->collection->map(function ($item) {
/**
* @var object $item
*/
$subscriptionLibrary = new \App\Library\SubscriptionLibrary;
// $result = $subscriptionLibrary->status($item->id);
$result = $subscriptionLibrary->newStatus($item->id);
return [
'id' => $item->id,
'country_id' => $item->country_id,
'first_name' => $item->first_name,
'last_name' => $item->last_name,
'country_code' => $item->country_code,
'passport_number' => $item->passport_number,
'biographies' => $item->biographies,
'mobile_number' => $item->mobile_number,
'is_mobile_number_verified' => $item->is_mobile_number_verified,
'email' => $item->email,
// 'email_verification_code' => $item->email_verification_code,
'is_email_verified' => $item->is_email_verified,
'gender' => $item->gender,
'dob' => $item->dob,
'post_code' => $item->post_code,
'address' => $item->address,
'profile_image' => $item->profile_image,
'signature' => $item->signature,
'signature_url' => $item->signatureurl,
'avgratingdoctor' => $item->avgratingdoctor,
'isfavourite' => $item->isfavourite,
'user_completion' => $item->user_completion,
'landing_feature' => $item->landing_feature,
'two_step_verification_type' => $item->two_step_verification_type,
'status' => $item->status,
'unique_id' => $item->unique_id,
'created_at' => $item->created_at,
'appointment_count' => (isset($item->my_doctor_appointment_list_count)) ? $item->my_doctor_appointment_list_count : 0,
'total_income' => (isset($item->my_doctor_appointment_payment_list_sum_consultation_fee)) ? $item->my_doctor_appointment_payment_list_sum_consultation_fee : '0.00',
'patient_total_income' => (isset($item->my_patient_appointment_payment_list_sum_total_amount)) ? $item->my_patient_appointment_payment_list_sum_total_amount : '0.00',
'patient_appointment_count' => (isset($item->my_patient_appointment_list_count)) ? $item->my_patient_appointment_list_count : 0,
'patient_order_count' => (isset($item->my_patient_order_list_count)) ? $item->my_patient_order_list_count : 0,
'dependant_appointment_count' => (isset($item->my_dependant_appointment_list_count)) ? $item->my_dependant_appointment_list_count : 0,
'linked_accounts_count' => (isset($item->dependant_account_holder_count)) ? $item->dependant_account_holder_count : 0,
'dependant_booked_appointment_count' => (isset($item->dependants_booked_appointment_list_count)) ? $item->dependants_booked_appointment_list_count : 0,
'dependant_canceled_appointment_count' => (isset($item->dependants_canceled_appointment_list_count)) ? $item->dependants_canceled_appointment_list_count : 0,
'doctor_document' => $item->doctorDocument,
'user_detail' => $item->userDetail,
// 'sum_sub' => (isset($item->sumSub)) ? $item->sumSub : [],
'rating' => (isset($item->doctorRatings)) ? $item->doctorRatings : [],
'pharmacy' => (isset($item->pharmacy)) ? $item->pharmacy : [],
'dependant_detail' => (isset($item->dependantAccountHolder)) ? $item->dependantAccountHolder : [],
'general_condition_detail' => (isset($item->generalConditionPatientDetail)) ? $item->generalConditionPatientDetail : [],
'subscription' => (isset($result)) ? $result : [],
];
}), ],
];
}
public function withResponse($request, $response)
{
/** @var array $jsonResponse */
$jsonResponse = json_decode($response->getContent(), true);
unset($jsonResponse['links']);
$response->setContent(json_encode($jsonResponse));
}
}