From abe67c9734a970cdb9e9836c86c8432ac68458eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20Jaussoin?= Date: Thu, 28 Aug 2025 09:08:04 +0000 Subject: [PATCH] Fix FLEXIAPI-378 Return a valid JSON containing the vCard and not the raw... --- CHANGELOG.md | 1 + .../Api/Admin/VcardsStorageController.php | 4 ++-- .../Feature/ApiAccountVcardsStorageTest.php | 22 ++++++++++++++----- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5ad2f69..d884604 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ v2.1 - Fix FLEXIAPI-374 Improve CardDav credentials form - Fix FLEXIAPI-376 Rename domain to realm in CardDav credentials - Fix FLEXIAPI-375 Fix VcardsStorage table UUID size, recover the UUID from the stored vCard +- Fix FLEXIAPI-378 Return a valid JSON containing the vCard and not the raw vCard in VcardsStorage controller v2.0 ---- diff --git a/flexiapi/app/Http/Controllers/Api/Admin/VcardsStorageController.php b/flexiapi/app/Http/Controllers/Api/Admin/VcardsStorageController.php index fe91ca3..f565369 100644 --- a/flexiapi/app/Http/Controllers/Api/Admin/VcardsStorageController.php +++ b/flexiapi/app/Http/Controllers/Api/Admin/VcardsStorageController.php @@ -59,7 +59,7 @@ class VcardsStorageController extends Controller $vcard->vcard = preg_replace('/\r\n?/', "\n", $vcardo->serialize()); $vcard->save(); - return $vcard->vcard; + return $vcard; } public function update(Request $request, int $accountId, string $uuid) @@ -78,7 +78,7 @@ class VcardsStorageController extends Controller $vcard->vcard = preg_replace('/\r\n?/', "\n", $vcardo->serialize()); $vcard->save(); - return $vcard->vcard; + return $vcard; } public function destroy(int $accountId, string $uuid) diff --git a/flexiapi/tests/Feature/ApiAccountVcardsStorageTest.php b/flexiapi/tests/Feature/ApiAccountVcardsStorageTest.php index f0211f9..a7493f1 100644 --- a/flexiapi/tests/Feature/ApiAccountVcardsStorageTest.php +++ b/flexiapi/tests/Feature/ApiAccountVcardsStorageTest.php @@ -101,13 +101,23 @@ VERSION:4.0 FN:Simon Perreault UID:' . $uid . ' END:VCARD' - ])->assertStatus(200); + ])->assertJsonFragment([ + 'vcard' => +'BEGIN:VCARD +VERSION:4.0 +FN:Simon Perreault +UID:' . $uid . ' +END:VCARD +' + ])->assertStatus(201); // Admin create $this->keyAuthenticated($admin) ->json($this->method, $adminRoute, [ 'vcard' => $thirdVcard]) - ->assertStatus(200); + ->assertJson([ + 'vcard' => $thirdVcard + ])->assertStatus(201); // Again... $this->keyAuthenticated($account) @@ -123,7 +133,7 @@ END:VCARD' $this->keyAuthenticated($account) ->json($this->method, $this->route, [ 'vcard' => $secondVcard - ])->assertStatus(200); + ])->assertStatus(201); $this->assertDatabaseHas('vcards_storage', [ 'uuid' => $uid @@ -141,6 +151,8 @@ END:VCARD' $this->keyAuthenticated($account) ->json('PUT', $this->route . '/' . $uid, [ 'vcard' => $lastVcard + ])->assertJsonFragment([ + 'vcard' => $lastVcard ])->assertStatus(200); // Update with wrong UID @@ -167,7 +179,7 @@ END:VCARD' $this->keyAuthenticated($account) ->get($this->route . '/' . $uid) ->assertStatus(200) - ->assertJson([ + ->assertJsonFragment([ 'vcard' => $lastVcard ]); @@ -175,7 +187,7 @@ END:VCARD' $this->keyAuthenticated($admin) ->get($adminRoute . '/' . $uid) ->assertStatus(200) - ->assertJson([ + ->assertJsonFragment([ 'vcard' => $lastVcard ]);