1
0
Fork 0
mirror of synced 2024-10-04 12:15:14 +13:00

feat: code cleanup

This commit is contained in:
Christy Jacob 2021-03-12 23:39:25 +05:30
parent d0c3111844
commit b1c58e2fc4

View file

@ -207,12 +207,12 @@ class Builder {
} }
/** /**
* Function to initialise the typeMapping array with the base cases of the recursion * Function to check if a model
* *
* @param string $a * @param string $a
* @return void * @return void
*/ */
protected static function isModel($response, Model $model) { protected static function isModel($response, Model $model): bool {
foreach ($model->getRules() as $key => $rule) { foreach ($model->getRules() as $key => $rule) {
if (!isset($response[$key])) { if (!isset($response[$key])) {
@ -229,82 +229,73 @@ class Builder {
* @return void * @return void
*/ */
public static function buildSchema($utopia, $response, $register) { public static function buildSchema($utopia, $response, $register) {
self::init();
var_dump("[INFO] Building GraphQL Schema..."); var_dump("[INFO] Building GraphQL Schema...");
$start = microtime(true); $start = microtime(true);
self::init();
$queryFields = []; $queryFields = [];
$mutationFields = []; $mutationFields = [];
foreach($utopia->getRoutes() as $method => $routes ){ foreach($utopia->getRoutes() as $method => $routes ){
foreach($routes as $route) { foreach($routes as $route) {
$namespace = $route->getLabel('sdk.namespace', ''); $namespace = $route->getLabel('sdk.namespace', '');
$methodName = $namespace.'_'.$route->getLabel('sdk.method', '');
if ($namespace == 'database' || true) { $responseModelName = $route->getLabel('sdk.response.model', "");
$methodName = $namespace.'_'.$route->getLabel('sdk.method', ''); if ( $responseModelName !== "" && $responseModelName !== Response::MODEL_NONE ) {
$responseModelName = $route->getLabel('sdk.response.model', ""); $responseModel = $response->getModel($responseModelName);
if ( $responseModelName !== "" && $responseModelName !== Response::MODEL_NONE ) { self::createTypeMapping($responseModel, $response);
$responseModel = $response->getModel($responseModelName); $type = self::$typeMapping[$responseModel->getType()];
self::createTypeMapping($responseModel, $response); $args = self::getArgs($route->getParams(), $utopia);
$type = self::$typeMapping[$responseModel->getType()];
$args = self::getArgs($route->getParams(), $utopia);
$field = [ $field = [
'type' => $type, 'type' => $type,
'description' => $route->getDesc(), 'description' => $route->getDesc(),
'args' => $args, 'args' => $args,
'resolve' => function ($type, $args, $context, $info) use (&$register, $route) { 'resolve' => function ($type, $args, $context, $info) use (&$register, $route) {
$utopia = $register->get('__app'); $utopia = $register->get('__app');
$response = $register->get('__response'); $response = $register->get('__response');
$utopia->setRoute($route); $utopia->setRoute($route);
$utopia->execute($route, $args); $utopia->execute($route, $args);
$result = $response->getPayload(); $result = $response->getPayload();
if (self::isModel($result, $response->getModel(Response::MODEL_ERROR)) || self::isModel($result, $response->getModel(Response::MODEL_ERROR_DEV))) { if (self::isModel($result, $response->getModel(Response::MODEL_ERROR)) || self::isModel($result, $response->getModel(Response::MODEL_ERROR_DEV))) {
var_dump("***** There has been an exception.. *****"); var_dump("***** There has been an exception.. *****");
unset($result['trace']); unset($result['trace']);
// var_dump($result); // var_dump($result);
throw new MySafeException($result['message'], $result['code']); throw new MySafeException($result['message'], $result['code']);
}
return $result;
} }
];
return $result;
if ($method == 'GET') {
$queryFields[$methodName] = $field;
} else if ($method == 'POST' || $method == 'PUT' || $method == 'PATCH' || $method == 'DELETE') {
$mutationFields[$methodName] = $field;
} }
];
if ($method == 'GET') {
$queryFields[$methodName] = $field;
} else if ($method == 'POST' || $method == 'PUT' || $method == 'PATCH' || $method == 'DELETE') {
$mutationFields[$methodName] = $field;
} }
} }
} }
} }
ksort($queryFields); ksort($queryFields);
ksort($mutationFields); ksort($mutationFields);
$queryType = new ObjectType([ $queryType = new ObjectType([
'name' => 'Query', 'name' => 'Query',
'description' => 'The root of all your queries', 'description' => 'The root of all your queries',
'fields' => $queryFields 'fields' => $queryFields
]); ]);
$mutationType = new ObjectType([ $mutationType = new ObjectType([
'name' => 'Mutation', 'name' => 'Mutation',
'description' => 'The root of all your mutations', 'description' => 'The root of all your mutations',
'fields' => $mutationFields 'fields' => $mutationFields
]); ]);
$schema = new Schema([ $schema = new Schema([
'query' => $queryType, 'query' => $queryType,
'mutation' => $mutationType 'mutation' => $mutationType
]); ]);
$time_elapsed_secs = microtime(true) - $start; $time_elapsed_secs = microtime(true) - $start;
var_dump("[INFO] Time Taken To Build Schema : ${time_elapsed_secs}s"); var_dump("[INFO] Time Taken To Build Schema : ${time_elapsed_secs}s");
return $schema; return $schema;
} }
} }