1
0
Fork 0
mirror of synced 2024-10-02 18:26:49 +13:00

Fix custom entity tests

This commit is contained in:
Jake Barnby 2022-07-06 17:12:12 +12:00
parent 8bbe5abd72
commit 81265ab458
3 changed files with 896 additions and 868 deletions

View file

@ -473,6 +473,7 @@ class Builder
$count += count($attrs);
go(function () use ($utopia, $request, $response, $dbForProject, &$collections, &$queryFields, &$mutationFields, $limit, &$offset, $attrs, $userId, $wg) {
foreach ($attrs as $attr) {
$databaseId = $attr->getAttribute('databaseId');
$collectionId = $attr->getAttribute('collectionId');
if ($attr->getAttribute('status') !== 'available') {
@ -502,27 +503,27 @@ class Builder
$queryFields[$collectionId . 'Get'] = [
'type' => $objectType,
'args' => self::$defaultDocumentArgs['id'],
'resolve' => self::resolveDocumentGet($utopia, $request, $response, $dbForProject, $collectionId)
'resolve' => self::resolveDocumentGet($utopia, $request, $response, $dbForProject, $databaseId, $collectionId)
];
$queryFields[$collectionId . 'List'] = [
'type' => $objectType,
'args' => self::$defaultDocumentArgs['list'],
'resolve' => self::resolveDocumentList($utopia, $request, $response, $dbForProject, $collectionId)
'resolve' => self::resolveDocumentList($utopia, $request, $response, $dbForProject, $databaseId, $collectionId)
];
$mutationFields[$collectionId . 'Create'] = [
'type' => $objectType,
'args' => $attributes,
'resolve' => self::resolveDocumentMutate($utopia, $request, $response, $dbForProject, $collectionId, 'POST')
'resolve' => self::resolveDocumentMutate($utopia, $request, $response, $dbForProject, $databaseId, $collectionId, 'POST')
];
$mutationFields[$collectionId . 'Update'] = [
'type' => $objectType,
'args' => $attributes,
'resolve' => self::resolveDocumentMutate($utopia, $request, $response, $dbForProject, $collectionId, 'PATCH')
'resolve' => self::resolveDocumentMutate($utopia, $request, $response, $dbForProject, $databaseId, $collectionId, 'PATCH')
];
$mutationFields[$collectionId . 'Delete'] = [
'type' => $objectType,
'args' => self::$defaultDocumentArgs['id'],
'resolve' => self::resolveDocumentDelete($utopia, $request, $response, $dbForProject, $collectionId)
'resolve' => self::resolveDocumentDelete($utopia, $request, $response, $dbForProject, $databaseId, $collectionId)
];
}
$wg->done();
@ -545,19 +546,21 @@ class Builder
Request $request,
Response $response,
Database $dbForProject,
string $databaseId,
string $collectionId
): callable {
return fn($type, $args, $context, $info) => new CoroutinePromise(
function (callable $resolve, callable $reject) use ($utopia, $request, $response, $dbForProject, $collectionId, $type, $args) {
function (callable $resolve, callable $reject) use ($utopia, $request, $response, $dbForProject, $databaseId, $collectionId, $type, $args) {
try {
$swoole = $request->getSwoole();
$swoole->post = [
'databaseId' => $databaseId,
'collectionId' => $collectionId,
'documentId' => $args['id'],
];
$swoole->server['request_method'] = 'GET';
$swoole->server['request_uri'] = "/v1/database/collections/$collectionId/documents/{$args['id']}";
$swoole->server['path_info'] = "/v1/database/collections/$collectionId/documents/{$args['id']}";
$swoole->server['request_uri'] = "/v1/databases/$databaseId/collections/$collectionId/documents/{$args['id']}";
$swoole->server['path_info'] = "/v1/databases/$databaseId/collections/$collectionId/documents/{$args['id']}";
self::resolve($utopia, $swoole, $response, $resolve, $reject);
} catch (\Throwable $e) {
@ -573,12 +576,14 @@ class Builder
Request $request,
Response $response,
Database $dbForProject,
string $collectionId
string $databaseId,
string $collectionId,
): callable {
return fn($type, $args, $context, $info) => new CoroutinePromise(
function (callable $resolve, callable $reject) use ($utopia, $request, $response, $dbForProject, $collectionId, $type, $args) {
function (callable $resolve, callable $reject) use ($utopia, $request, $response, $dbForProject, $databaseId, $collectionId, $type, $args) {
$swoole = $request->getSwoole();
$swoole->post = [
'databaseId' => $databaseId,
'collectionId' => $collectionId,
'limit' => $args['limit'],
'offset' => $args['offset'],
@ -588,8 +593,8 @@ class Builder
'orderType' => $args['orderType'],
];
$swoole->server['request_method'] = 'GET';
$swoole->server['request_uri'] = "/v1/database/collections/$collectionId/documents";
$swoole->server['path_info'] = "/v1/database/collections/$collectionId/documents";
$swoole->server['request_uri'] = "/v1/databases/$databaseId/collections/$collectionId/documents";
$swoole->server['path_info'] = "/v1/databases/$databaseId/collections/$collectionId/documents";
self::resolve($utopia, $swoole, $response, $resolve, $reject);
}
@ -601,11 +606,12 @@ class Builder
Request $request,
Response $response,
Database $dbForProject,
string $databaseId,
string $collectionId,
string $method,
): callable {
return fn($type, $args, $context, $info) => new CoroutinePromise(
function (callable $resolve, callable $reject) use ($utopia, $request, $response, $dbForProject, $collectionId, $method, $type, $args) {
function (callable $resolve, callable $reject) use ($utopia, $request, $response, $dbForProject, $databaseId, $collectionId, $method, $type, $args) {
$swoole = $request->getSwoole();
$id = $args['id'] ?? 'unique()';
@ -618,6 +624,7 @@ class Builder
// Order must be the same as the route params
$swoole->post = [
'databaseId' => $databaseId,
'documentId' => $id,
'collectionId' => $collectionId,
'data' => $args,
@ -625,8 +632,8 @@ class Builder
'write' => $write,
];
$swoole->server['request_method'] = $method;
$swoole->server['request_uri'] = "/v1/database/collections/$collectionId/documents";
$swoole->server['path_info'] = "/v1/database/collections/$collectionId/documents";
$swoole->server['request_uri'] = "/v1/databases/$databaseId/collections/$collectionId/documents";
$swoole->server['path_info'] = "/v1/databases/$databaseId/collections/$collectionId/documents";
self::resolve($utopia, $swoole, $response, $resolve, $reject);
}
@ -638,18 +645,20 @@ class Builder
Request $request,
Response $response,
Database $dbForProject,
string $databaseId,
string $collectionId
): callable {
return fn($type, $args, $context, $info) => new CoroutinePromise(
function (callable $resolve, callable $reject) use ($utopia, $request, $response, $dbForProject, $collectionId, $type, $args) {
function (callable $resolve, callable $reject) use ($utopia, $request, $response, $dbForProject, $databaseId, $collectionId, $type, $args) {
$swoole = $request->getSwoole();
$swoole->post = [
'databaseId' => $databaseId,
'collectionId' => $collectionId,
'documentId' => $args['id'],
];
$swoole->server['request_method'] = 'DELETE';
$swoole->server['request_uri'] = "/v1/database/collections/$collectionId/documents/{$args['id']}";
$swoole->server['path_info'] = "/v1/database/collections/$collectionId/documents/{$args['id']}";
$swoole->server['request_uri'] = "/v1/databases/$databaseId/collections/$collectionId/documents/{$args['id']}";
$swoole->server['path_info'] = "/v1/databases/$databaseId/collections/$collectionId/documents/{$args['id']}";
self::resolve($utopia, $swoole, $response, $resolve, $reject);
}

View file

@ -412,12 +412,14 @@ trait GraphQLBase
}
}';
case self::$CREATE_CUSTOM_ENTITY:
return 'mutation createActor($name: String!, $age: Int!, $alive: Boolean!, $salary: Float) {
actorsCreate(name: $name, age: $age, alive: $alive, salary: $salary) {
_id
return 'mutation createActor($name: String!, $age: Int!, $alive: Boolean!, $salary: Float, $email: String!, $role: String!, $ip: String, $url: String){
actorsCreate(name: $name, age: $age, alive: $alive, salary: $salary, email: $email, role: $role, ip: $ip, url: $url) {
name
age
alive
salary
email
role
}
}';
case self::$UPDATE_DOCUMENT:

File diff suppressed because it is too large Load diff