<?php // this Code is Cracked by dharunMods-YouTube-Channel namespace App\Services; use App\Traits\PingServer; use Illuminate\Support\Collection; use Illuminate\Support\Facades\Cache; class LearnService { use PingServer; public function __construct() { // } public function categories(): Collection| array { if (Cache::has('categories')) { return collect(Cache::get('categories')); } $response = $this->fetctApi('/categories'); if ($response->failed()) { return [ 'error' => true, 'errorMessage' => $response['message'] ?? 'Something went wrong', ]; } $categories = $response['data']['categories']; Cache::put('categories', $categories, now()->addHour()); return collect($categories); } // courses public function courses(): Collection| array { if (Cache::has('courses')) { return collect(Cache::get('courses')); } $response = $this->fetctApi('/courses'); if ($response->failed()) { return [ 'error' => true, 'errorMessage' => $response['message'] ?? 'Something went wrong', ]; } $courses = $response['data']; Cache::put('courses', $courses, now()->addHour()); return collect($courses); } // lessons for course with id public function lessons(string $coursId): Collection| array { if (Cache::has('lessons' . $coursId)) { return collect(Cache::get('lessons' . $coursId)); } $response = $this->fetctApi('/courses-lessons/' . $coursId); if ($response->failed()) { return [ 'error' => true, 'errorMessage' => $response['message'] ?? 'Something went wrong', ]; } $lessons = $response['data']; Cache::put('lessons' . $coursId, $lessons, now()->addHour()); return collect($lessons); } // lessons without a course public function lessonWithoutCourse(): Collection| array { if (Cache::has('lessonsNoCourse')) { return collect(Cache::get('lessonsNoCourse')); } $response = $this->fetctApi('/lessons-without-course'); if ($response->failed()) { return [ 'error' => true, 'errorMessage' => $response['message'] ?? 'Something went wrong', ]; } $lessons = $response['data']; Cache::put('lessonsNoCourse', $lessons, now()->addHour()); return collect($lessons); } public function course(string $courseId): Collection| array { if (Cache::has('course' . $courseId)) { return collect(Cache::get('course' . $courseId)); } $response = $this->fetctApi('/course', [ 'courseId' => $courseId, ]); if ($response->failed()) { return [ 'error' => true, 'errorMessage' => $response['message'] ?? 'Something went wrong', 'course' => [], 'lessons' => [], 'usersWhoPurchased' => [], ]; } $course = $response['data']; Cache::put('course' . $courseId, $course, now()->addHour()); return collect($course); } public function myCourses(): Collection| array { if (Cache::has('purchased' . auth()->user()->id)) { return collect(Cache::get('purchased' . auth()->user()->id)); } $response = $this->fetctApi('/user-courses', [ 'userId' => auth()->user()->id, ]); if ($response->failed()) { return [ 'error' => true, 'errorMessage' => $response['message'] ?? 'Something went wrong', ]; } $courses = $response['data']['courses']; Cache::put('purchased' . auth()->user()->id, $courses, now()->addHour()); return collect($courses); } }