Skip to content

Commit ee3767b

Browse files
committed
Add endpoint to get licenses for an email address
1 parent a227ff7 commit ee3767b

File tree

3 files changed

+33
-0
lines changed

3 files changed

+33
-0
lines changed

app/Http/Controllers/Api/LicenseController.php

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,19 @@
1616

1717
class LicenseController extends Controller
1818
{
19+
public function index(Request $request)
20+
{
21+
$email = $request->query('email');
22+
23+
$user = User::where('email', $email)->firstOrFail();
24+
25+
if ($request->has('source')) {
26+
$licenses = $user->licenses()->where('source', $request->query('source'))->get();
27+
}
28+
29+
return LicenseResource::collection($licenses ?? $user->licenses);
30+
}
31+
1932
public function store(Request $request)
2033
{
2134
$validated = $request->validate([
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?php
2+
3+
namespace App\Http\Resources;
4+
5+
use Illuminate\Http\Request;
6+
use Illuminate\Http\Resources\Json\ResourceCollection;
7+
8+
class LicenseCollection extends ResourceCollection
9+
{
10+
/**
11+
* Transform the resource collection into an array.
12+
*
13+
* @return array<int|string, mixed>
14+
*/
15+
public function toArray(Request $request): array
16+
{
17+
return parent::toArray($request);
18+
}
19+
}

routes/api.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
Route::middleware('auth.api_key')->group(function () {
1919
Route::post('/licenses', [LicenseController::class, 'store']);
2020
Route::get('/licenses/{key}', [LicenseController::class, 'show']);
21+
Route::get('/licenses', [LicenseController::class, 'index']);
2122
});
2223

2324
Route::middleware('auth:sanctum')->group(function () {

0 commit comments

Comments
 (0)