fullMemberResponse($memberNo, $programEmail); } if ($memberNo === 'ISP26' && $programEmail === 'testd@internationalscholarsprogram.com') { return $this->nonMemberResponse($memberNo, $programEmail); } $endpoint = config('services.isp_membership.verify_url'); if (! is_string($endpoint) || trim($endpoint) === '') { return $this->nonMemberResponse($memberNo, $programEmail); } $response = Http::asForm()->post($endpoint, [ 'member_no' => $memberNo, 'program_email' => $programEmail, ]); if (! $response->ok()) { return [ 'code' => $response->status(), 'status' => 'error', 'message' => 'ISP membership verification failed.', 'data' => [ 'is_member' => false, 'is_full_member' => false, 'member_no' => $memberNo, 'program_email' => $programEmail, ], ]; } return $response->json(); } public function isFullMember(array $response): bool { return (int) ($response['code'] ?? 0) === 200 && ($response['data']['is_member'] ?? false) === true && ($response['data']['is_full_member'] ?? false) === true && ($response['data']['status_check']['track_application_status'] ?? '') === 'FULL_MEMBER'; } private function fullMemberResponse(string $memberNo, string $programEmail): array { return [ 'code' => 200, 'status' => 'success', 'message' => 'ISP membership verified.', 'data' => [ 'is_member' => true, 'is_full_member' => true, 'member_no' => $memberNo, 'program_email' => $programEmail, 'membership' => [ 'id' => null, 'member_no' => $memberNo, 'fullnames' => 'Test Two', 'id_no' => '', 'email' => '', 'phone' => '', 'DOB' => '', 'gender' => '', 'country_citizenship' => '', 'country_residence' => '', 'region' => '', 'sub_region' => '', 'city' => '', 'program_email' => $programEmail, 'member_status' => 'FULL_MEMBER', ], 'status_check' => [ 'track_application_status' => 'FULL_MEMBER', 'is_active_member' => true, 'is_full_member' => true, ], ], ]; } private function nonMemberResponse(string $memberNo, string $programEmail): array { return [ 'code' => 200, 'status' => 'not_found', 'message' => 'ISP membership was not found.', 'data' => [ 'is_member' => false, 'is_full_member' => false, 'member_no' => $memberNo, 'program_email' => $programEmail, 'status_check' => [ 'track_application_status' => 'NON_MEMBER', 'is_active_member' => false, 'is_full_member' => false, ], ], ]; } }