get impressum mail from graphQL

This commit is contained in:
Jonas Leder 2022-03-08 12:46:06 +01:00
parent 9b12fe2c94
commit abe8db6e8b
No known key found for this signature in database
GPG key ID: 8A53DD45A7D7B44B
4 changed files with 47 additions and 35 deletions

View file

@ -1,22 +0,0 @@
<?php
include("./lib/config.php");
require("./vendor/autoload.php");
use GuzzleHttp\Client;
$data = array(
'secret' => $secretkey,
'response' => $_POST['h-captcha-response']
);
$client = new Client();
$response = $client->post("https://hcaptcha.com/siteverify", [
"form_params" => $data
]);
$responseData = json_decode($response->getBody());
if($responseData->success) {
echo("$contactmail");
} else {
echo("Failed to verify Captcha");
}

View file

@ -0,0 +1,22 @@
<?php
use GuzzleHttp\Client;
function mailAddress($hCaptchaResponse) {
include("./lib/config.php");
$data = array(
'secret' => $secretkey,
'response' => $hCaptchaResponse
);
$client = new Client();
$response = $client->post("https://hcaptcha.com/siteverify", [
"form_params" => $data
]);
$responseData = json_decode($response->getBody());
if($responseData->success) {
return "$contactmail";
} else {
return "Failed to verify Captcha";
}
}

View file

@ -5,6 +5,7 @@ use GraphQL\Type\Definition\Type;
require "./queries/skills.php";
require "./queries/blogPost.php";
require "./queries/comments.php";
require "./queries/mailAddress.php";
$queryType = new ObjectType([
'name' => 'Query',
@ -13,6 +14,13 @@ $queryType = new ObjectType([
'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(),

View file

@ -49,20 +49,24 @@
<a href="https://hcaptcha.com/privacy">Privacy Policy</a> and
<a href="https://hcaptcha.com/terms">Terms of Service</a> apply.
<script type="text/javascript">
function onSubmit(token) {
let xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
let button = document.getElementById("emailButton");
let emailElement = document.createElement("p");
emailElement.className = "emailBox";
emailElement.innerText = this.responseText;
button.parentNode.replaceChild(emailElement, button);
}
async function onSubmit(token) {
var graphql = JSON.stringify({
query: 'query($hCaptchaResponse: String!) { mailAddress(hCaptchaResponse: $hCaptchaResponse)}',
variables: {
"hCaptchaResponse": token
}
})
var requestOptions = {
method: 'POST',
body: graphql,
};
xmlhttp.open("POST", "/API/getMail.php", true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send("h-captcha-response=" + token);
let mailAddress = (await (await fetch("http://localhost:1234/API/graphql.php", requestOptions)).json()).data.mailAddress;
let button = document.getElementById("emailButton");
let emailElement = document.createElement("p");
emailElement.className = "emailBox";
emailElement.innerText = mailAddress;
button.parentNode.replaceChild(emailElement, button);
}
</script>
</div>