1
0
Fork 0
mirror of synced 2024-10-02 10:16:27 +13:00

Match class names instead of strings

This commit is contained in:
Jake Barnby 2022-09-29 19:28:41 +13:00
parent b176929557
commit df651c3c78
No known key found for this signature in database
GPG key ID: C437A8CC85B96E9C

View file

@ -2,12 +2,55 @@
namespace Appwrite\GraphQL;
use Appwrite\Auth\Validator\Password;
use Appwrite\Event\Validator\Event;
use Appwrite\Network\Validator\CNAME;
use Appwrite\Network\Validator\Domain;
use Appwrite\Network\Validator\Email;
use Appwrite\Network\Validator\Host;
use Appwrite\Network\Validator\IP;
use Appwrite\Network\Validator\Origin;
use Appwrite\Network\Validator\URL;
use Appwrite\Task\Validator\Cron;
use Appwrite\Utopia\Database\Validator\CustomId;
use Appwrite\Utopia\Database\Validator\Queries;
use Appwrite\Utopia\Database\Validator\Queries\Base;
use Appwrite\Utopia\Database\Validator\Queries\Buckets;
use Appwrite\Utopia\Database\Validator\Queries\Collections;
use Appwrite\Utopia\Database\Validator\Queries\Databases;
use Appwrite\Utopia\Database\Validator\Queries\Deployments;
use Appwrite\Utopia\Database\Validator\Queries\Documents;
use Appwrite\Utopia\Database\Validator\Queries\Executions;
use Appwrite\Utopia\Database\Validator\Queries\Files;
use Appwrite\Utopia\Database\Validator\Queries\Functions;
use Appwrite\Utopia\Database\Validator\Queries\Memberships;
use Appwrite\Utopia\Database\Validator\Queries\Projects;
use Appwrite\Utopia\Database\Validator\Queries\Teams;
use Appwrite\Utopia\Database\Validator\Queries\Users;
use Appwrite\Utopia\Database\Validator\Queries\Variables;
use Appwrite\Utopia\Response\Model\Attribute;
use Exception;
use GraphQL\Type\Definition\Type;
use Utopia\App;
use Utopia\Database\Validator\Authorization;
use Utopia\Database\Validator\Key;
use Utopia\Database\Validator\Permissions;
use Utopia\Database\Validator\Roles;
use Utopia\Database\Validator\UID;
use Utopia\Route;
use Utopia\Storage\Validator\File;
use Utopia\Validator;
use Utopia\Validator\ArrayList;
use Utopia\Validator\Assoc;
use Utopia\Validator\Boolean;
use Utopia\Validator\FloatValidator;
use Utopia\Validator\HexColor;
use Utopia\Validator\Integer;
use Utopia\Validator\JSON;
use Utopia\Validator\Numeric;
use Utopia\Validator\Range;
use Utopia\Validator\Text;
use Utopia\Validator\WhiteList;
class TypeMapper
{
@ -31,32 +74,50 @@ class TypeMapper
? \call_user_func_array($validator, $utopia->getResources($injections))
: $validator;
switch ((!empty($validator)) ? \get_class($validator) : '') {
case 'Appwrite\Auth\Validator\Password':
case 'Appwrite\Event\Validator\Event':
case 'Appwrite\Network\Validator\CNAME':
case 'Appwrite\Network\Validator\Domain':
case 'Appwrite\Network\Validator\Email':
case 'Appwrite\Network\Validator\Host':
case 'Appwrite\Network\Validator\IP':
case 'Appwrite\Network\Validator\Origin':
case 'Appwrite\Network\Validator\URL':
case 'Appwrite\Task\Validator\Cron':
case 'Appwrite\Utopia\Database\Validator\CustomId':
case 'Utopia\Database\Validator\Key':
case 'Utopia\Database\Validator\CustomId':
case 'Utopia\Database\Validator\UID':
case 'Utopia\Validator\HexColor':
case 'Utopia\Validator\Length':
case 'Utopia\Validator\Text':
case 'Utopia\Validator\WhiteList':
switch ((!empty($validator)) ? $validator::class : '') {
case CNAME::class:
case Cron::class:
case CustomId::class:
case Domain::class:
case Email::class:
case Event::class:
case HexColor::class:
case Host::class:
case IP::class:
case Key::class:
case Origin::class:
case Password::class:
case Text::class:
case UID::class:
case URL::class:
case WhiteList::class:
default:
$type = Type::string();
break;
case 'Utopia\Validator\Boolean':
case Authorization::class:
case Base::class:
case Buckets::class:
case Collections::class:
case Databases::class:
case Deployments::class:
case Documents::class:
case Executions::class:
case Files::class:
case Functions::class:
case Memberships::class:
case Permissions::class:
case Projects::class:
case Queries::class:
case Roles::class:
case Teams::class:
case Users::class:
case Variables::class:
$type = Type::listOf(Type::string());
break;
case Boolean::class:
$type = Type::boolean();
break;
case 'Utopia\Validator\ArrayList':
case ArrayList::class:
/** @noinspection PhpPossiblePolymorphicInvocationInspection */
$type = Type::listOf(self::fromRouteParameter(
$utopia,
@ -65,39 +126,19 @@ class TypeMapper
$injections
));
break;
case 'Utopia\Validator\Numeric':
case 'Utopia\Validator\Integer':
case 'Utopia\Validator\Range':
case Integer::class:
case Numeric::class:
case Range::class:
$type = Type::int();
break;
case 'Utopia\Validator\FloatValidator':
case FloatValidator::class:
$type = Type::float();
break;
case 'Utopia\Database\Validator\Authorization':
case 'Utopia\Database\Validator\Permissions':
case 'Utopia\Database\Validator\Roles':
case 'Appwrite\Utopia\Database\Validator\Queries':
case 'Appwrite\Utopia\Database\Validator\Queries\Base':
case 'Appwrite\Utopia\Database\Validator\Queries\Buckets':
case 'Appwrite\Utopia\Database\Validator\Queries\Collections':
case 'Appwrite\Utopia\Database\Validator\Queries\Databases':
case 'Appwrite\Utopia\Database\Validator\Queries\Deployments':
case 'Appwrite\Utopia\Database\Validator\Queries\Documents':
case 'Appwrite\Utopia\Database\Validator\Queries\Executions':
case 'Appwrite\Utopia\Database\Validator\Queries\Files':
case 'Appwrite\Utopia\Database\Validator\Queries\Functions':
case 'Appwrite\Utopia\Database\Validator\Queries\Memberships':
case 'Appwrite\Utopia\Database\Validator\Queries\Projects':
case 'Appwrite\Utopia\Database\Validator\Queries\Teams':
case 'Appwrite\Utopia\Database\Validator\Queries\Users':
case 'Appwrite\Utopia\Database\Validator\Queries\Variables':
$type = Type::listOf(Type::string());
break;
case 'Utopia\Validator\Assoc':
case 'Utopia\Validator\JSON':
case Assoc::class:
case JSON::class:
$type = TypeRegistry::json();
break;
case 'Utopia\Storage\Validator\File':
case File::class:
$type = TypeRegistry::inputFile();
break;
}