85 lines
2.8 KiB
PHP
85 lines
2.8 KiB
PHP
<?php
|
|
use GraphQL\Type\Definition\ObjectType;
|
|
use GraphQL\Type\Definition\Type;
|
|
|
|
require "./queries/skills.php";
|
|
require "./queries/blogPost.php";
|
|
require "./queries/comments.php";
|
|
require "./queries/mailAddress.php";
|
|
require "./queries/ebayKleinanzeigen.php";
|
|
|
|
|
|
$queryType = new ObjectType([
|
|
'name' => 'Query',
|
|
'fields' => [
|
|
'sitekey' => [
|
|
'type' => Type::string(),
|
|
'resolve' => fn ($rootValue, $args) => $sitekey,
|
|
],
|
|
'mailAddress' => [
|
|
'type' => Type::string(),
|
|
"args" => [
|
|
"hCaptchaResponse" => Type::string()
|
|
],
|
|
'resolve' => fn ($rootValue, $args) => mailAddress($args["hCaptchaResponse"]),
|
|
],
|
|
'skills' => [
|
|
'type' => Type::listOf(Type::string()),
|
|
'resolve' => fn ($rootValue, $args) => getSkills(),
|
|
],
|
|
'blogPost' => [
|
|
"type" => $blogPostFields,
|
|
'args' => [
|
|
'id' => Type::nonNull(Type::string()),
|
|
],
|
|
'resolve' => fn ($rootValue, $args) => blogPost($args["id"], $rootValue["db"]),
|
|
],
|
|
'blogPosts' => [
|
|
"type" => Type::listOf($blogPostFields),
|
|
"args" => [
|
|
"count" => Type::nonNull(Type::int()),
|
|
"contentLength" => [
|
|
"type" => Type::int(),
|
|
"defaultValue" => null
|
|
]
|
|
|
|
],
|
|
'resolve' => fn ($rootValue, $args) => blogPosts($args["count"], $args["contentLength"], $rootValue["db"]),
|
|
],
|
|
'comments' => [
|
|
"type" => Type::listOf($commentField),
|
|
"args" => [
|
|
"article" => Type::nonNull(Type::string()),
|
|
],
|
|
'resolve' => fn ($rootValue, $args) => comments($args["article"], $rootValue["db"]),
|
|
],
|
|
'ebayKleinanzeigen' => [
|
|
"type" => $ebayKleinanzeigenFields,
|
|
"args" => [
|
|
"imageCount" => [
|
|
"type" => Type::int(),
|
|
"defaultValue" => 0
|
|
]
|
|
],
|
|
'resolve' => fn ($rootValue, $args) => ebayKleinanzeigen($args["imageCount"]),
|
|
]
|
|
|
|
]
|
|
]);
|
|
|
|
$mutationType = new ObjectType([
|
|
'name' => 'Mutation',
|
|
'fields' => [
|
|
"comment" => [
|
|
"type" => Type::string(),
|
|
"args" => [
|
|
"article" => Type::string(),
|
|
"name" => Type::string(),
|
|
"email" => Type::string(),
|
|
"comment" => Type::string(),
|
|
"hCaptchaResponse" => Type::string()
|
|
],
|
|
'resolve' => fn ($rootValue, $args) => newComment($rootValue["db"], $args["article"], $args["name"], $args["email"], $args["comment"], $args["hCaptchaResponse"]),
|
|
],
|
|
]
|
|
]);
|