Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
7a8dd3a
Resolve merge conflicts
mohanad69 Feb 9, 2026
3995a07
review site pages
mohanad69 Feb 10, 2026
8acc4cf
fix courses issues
mohanad69 Feb 15, 2026
e31230b
dashboard, profile, dark mode, password change
mohanad69 Feb 18, 2026
b4e445e
Refactor AppSidebar and AppLayout components, adding new navigation i…
aemaddin Feb 18, 2026
22d73a0
fixing sidebar, my profile, glossary, my books, my courses
mohanad69 Feb 23, 2026
df9fcd7
fixing sidebar, my profile, glossary, my books, my courses
mohanad69 Feb 23, 2026
9e06a36
fixing
mohanad69 Mar 2, 2026
eeb1191
refactor cobtroller
mohanad69 Mar 3, 2026
6af3907
book controller refactor
mohanad69 Mar 3, 2026
7cee2b5
kashier config, book controller policy fix, faqs head, course section…
mohanad69 Mar 4, 2026
8a27630
fix download book path issue
mohanad69 Mar 4, 2026
99f924a
book policy remove db logic, fix send direct link download, fix order…
mohanad69 Mar 5, 2026
b6ec83e
email verification, send direct download link, translation issues in …
mohanad69 Mar 8, 2026
af656fc
fix nav menu, kashier test, my orders, remove vendor fees, make href …
mohanad69 Mar 9, 2026
e4726aa
fixing
mohanad69 Mar 10, 2026
9b15e15
fixing issues in github
mohanad69 Mar 11, 2026
3bd8eb1
country dropdown phone
mohanad69 Mar 12, 2026
4e829bf
alaphet error fix in glossarues, start edit email templates design
mohanad69 Mar 15, 2026
0a952a2
registered users fix, edit profile phone code, send book link email
mohanad69 Mar 17, 2026
9e30af7
make config file for site settings, aabic input names validation tran…
mohanad69 Mar 24, 2026
b6d9849
translation manager
mohanad69 Mar 25, 2026
654f68e
send download test
mohanad69 Mar 26, 2026
018d4ba
fixing course progress
mohanad69 Mar 29, 2026
a3b0398
fix slides, save video progress
mohanad69 Mar 30, 2026
5104337
fixing responsive style
mohanad69 Apr 1, 2026
4b7ed1b
remove comments, use tailwind css and remove unimportant css files
mohanad69 Apr 1, 2026
2aef72a
redesign books page, show book details
mohanad69 Apr 1, 2026
d6ea72d
fix run build
mohanad69 Apr 1, 2026
7518dd5
fix dashboard book orders redirect to book details, books slug
mohanad69 Apr 1, 2026
14b0eec
fix nav active links, dashboard issue, change style in books page
mohanad69 Apr 2, 2026
73e62fb
fix book links
mohanad69 Apr 2, 2026
54ec927
fixing
mohanad69 Apr 5, 2026
aafde50
edit nova admin
mohanad69 Apr 6, 2026
11b6f14
remove unneeded (goals, magazines with slides and items, revision, to…
mohanad69 Apr 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
32 changes: 32 additions & 0 deletions app/Actions/Auth/CreateZohoLeadAction.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
<?php

namespace App\Actions\Auth;

use Asciisd\ZohoV8\Models\ZohoLead;
use Illuminate\Support\Facades\Log;

class CreateZohoLeadAction
{
/**
* Create a Zoho lead
*/
public function execute(array $data): mixed
{
try {
return ZohoLead::create([
'First_Name' => $data['first_name'],
'Last_Name' => $data['last_name'],
'Email' => $data['email'],
'Phone' => $data['phone'],
'Lead_Source' => $data['lead_source'],
]);
} catch (\Throwable $e) {
Log::channel('zoho_sync')->error('ZohoLead creation failed', [
'email' => $data['email'] ?? null,
'error' => $e->getMessage(),
]);

return null;
}
}
}
62 changes: 62 additions & 0 deletions app/Actions/Books/GenerateBookDownloadUrl.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
<?php

namespace App\Actions\Books;

use App\Models\Book;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\Log;

class GenerateBookDownloadUrl
{
/**
* Generate a temporary download URL for a book
*/
public function execute(Book $book, int $minutesValid = 30): ?string
{
try {
// Check if file_src exists
if (!$book->file_src) {
Log::warning('Book file_src is empty', ['book_id' => $book->id]);
return null;
}

$path = $this->extractPath($book->file_src);

if (!$path) {
Log::warning('Could not extract path from file_src', [
'book_id' => $book->id,
'file_src' => $book->file_src
]);
return null;
}

return Storage::disk('s3_public')->temporaryUrl(
$path,
now()->addMinutes($minutesValid)
);

} catch (\Exception $e) {
Log::error('Failed to generate book download URL', [
'book_id' => $book->id,
'error' => $e->getMessage()
]);
return null;
}
}

/**
* Extract path from file_src (supports both JSON and plain string)
*/
private function extractPath(string $fileSrc): ?string
{
// Try to decode as JSON first
$decoded = json_decode($fileSrc);

if (json_last_error() === JSON_ERROR_NONE && is_object($decoded) && isset($decoded->path)) {
return $decoded->path;
}

// If not JSON, treat as plain path
return trim($fileSrc) ?: null;
}
}
19 changes: 0 additions & 19 deletions app/Events/GoalComplete.php

This file was deleted.

19 changes: 0 additions & 19 deletions app/Events/GoalStart.php

This file was deleted.

19 changes: 0 additions & 19 deletions app/Events/GoalUpdate.php

This file was deleted.

19 changes: 0 additions & 19 deletions app/Events/MagazineComplete.php

This file was deleted.

19 changes: 0 additions & 19 deletions app/Events/MagazineStart.php

This file was deleted.

19 changes: 0 additions & 19 deletions app/Events/MagazineUpdate.php

This file was deleted.

19 changes: 0 additions & 19 deletions app/Events/QuickScanComplete.php

This file was deleted.

19 changes: 0 additions & 19 deletions app/Events/QuickScanStart.php

This file was deleted.

19 changes: 0 additions & 19 deletions app/Events/QuickScanUpdate.php

This file was deleted.

19 changes: 0 additions & 19 deletions app/Events/RevisionComplete.php

This file was deleted.

19 changes: 0 additions & 19 deletions app/Events/RevisionStart.php

This file was deleted.

19 changes: 0 additions & 19 deletions app/Events/RevisionUpdate.php

This file was deleted.

19 changes: 0 additions & 19 deletions app/Events/TodoComplete.php

This file was deleted.

19 changes: 0 additions & 19 deletions app/Events/TodoStart.php

This file was deleted.

19 changes: 0 additions & 19 deletions app/Events/TodoUpdate.php

This file was deleted.

Loading
Loading