continue on collection create logic

This commit is contained in:
Jonathan Martz
2025-01-27 20:09:15 +01:00
parent d90cda9613
commit b0a0cf6f1f
2 changed files with 15 additions and 10 deletions

View File

@@ -69,10 +69,10 @@ class Collection
$response = curl_exec($ch); $response = curl_exec($ch);
} }
public function authAsUser(string $email, string $password): string public function authAsUser(string $email, string $password): array
{ {
$result = $this->doRequest($this->url . "/api/collections/users/auth-with-password", 'POST', ['identity' => $email, 'password' => $password]); $result = $this->doRequest($this->url . "/api/collections/users/auth-with-password", 'POST', ['identity' => $email, 'password' => $password]);
var_dump($result); $result = json_decode($result, JSON_FORCE_OBJECT);
if (!empty($result['token'])) { if (!empty($result['token'])) {
self::$token = $result['token']; self::$token = $result['token'];
} }
@@ -106,6 +106,7 @@ class Collection
public function create(array $bodyParams = [], array $queryParams = []): string public function create(array $bodyParams = [], array $queryParams = []): string
{ {
// TODO query params ?
return $this->doRequest($this->url . "/api/collections/" . $this->collection . "/records", 'POST', $bodyParams); return $this->doRequest($this->url . "/api/collections/" . $this->collection . "/records", 'POST', $bodyParams);
} }
@@ -192,6 +193,4 @@ class Collection
$this->collection = $collection; $this->collection = $collection;
return $this; return $this;
} }
} }

View File

@@ -16,14 +16,20 @@ class CollectionCreateTest extends TestCase
} }
public function testCreateCollectionItem(){ public function testCreateCollectionItem(){
// $this->expectException(ClientException::class); $this->expectException(ClientException::class);
// $this->collection->create(['name' => 'Hallo Welt']); $this->expectExceptionCode(403);
$this->collection->create(['name' => 'Hallo Welt']);
} }
public function testCreateCollectionItemAuthed(){ public function testCreateCollectionItemAuthed(){
$this->collection->authAsUser('admin@jmartz.de', 'rockt123?!'); $this->collection->authAsUser('admin@jmartz.de', 'rockt123?!');#
self::assertNotEmpty($this->collection); self::assertNotEmpty($this->collection->getAuthToken());
// $response = $this->collection->create(['name' => 'Hallo Welt']); }
// var_dump($response);
public function testCreateCollectionItemAuthedAdmin(){
$this->collection->authAsAdmin('admin@jonathan-martz.de', 'rockt123?!');
$response = $this->collection->create(['email' => 'test@jonathan-martz.de','password' => 'rockt123?!','passwordConfirm' => 'rockt123?!']);
var_dump($response);
self::assertNotEmpty($this->collection->getAuthToken());
} }
} }