add hook controller

This commit is contained in:
Hesabix 2024-01-12 21:54:34 +00:00
parent dd42972e38
commit 6367677956
3 changed files with 112 additions and 37 deletions

View file

@ -545,41 +545,4 @@ class BusinessController extends AbstractController
]; ];
return $this->json($response); return $this->json($response);
} }
#[Route('hooks/setting/SetChangeHook', name: 'api_business_SetChangeHook')]
public function api_business_SetChangeHook(Access $access,Log $log,Request $request,EntityManagerInterface $entityManager): JsonResponse
{
$api = $entityManager->getRepository(APIToken::class)->findOneBy([
'token' => $request->headers->get('api-key'),
]);
$params = [];
if ($content = $request->getContent()) {
$params = json_decode($content, true);
}
$hook = $entityManager->getRepository(Hook::class)->findOneBy([
'url'=> $params['url'],
'password'=> $params['hookPassword'],
'bid' => $api->getBid(),
'submitter'=>$this->getUser()
]);
if(!$hook){
$hook = new Hook();
$hook->setBid($api->getBid());
$hook->setSubmitter($this->getUser());
$hook->setPassword($params['hookPassword']);
$hook->setUrl($params['url']);
$entityManager->persist($hook);
$entityManager->flush();
}
$year = $entityManager->getRepository(Year::class)->findOneBy(['bid'=>$api->getBid(),'head'=>true])->getId();
return $this->json([
'Success'=>true,
'bid' => $api->getBid()->getId(),
'year' => $year,
'money' => $api->getBid()->getMoney()->getId()
]);
}
} }

View file

@ -0,0 +1,92 @@
<?php
namespace App\Controller;
use App\Entity\APIToken;
use App\Entity\BankAccount;
use App\Entity\Commodity;
use App\Entity\HesabdariDoc;
use App\Entity\HesabdariRow;
use App\Entity\Money;
use App\Entity\Permission;
use App\Entity\Person;
use App\Entity\Plugin;
use App\Entity\User;
use App\Entity\Business;
use App\Entity\Hook;
use App\Entity\Year;
use App\Service\Access;
use App\Service\Jdate;
use App\Service\Log;
use App\Service\Provider;
use Doctrine\ORM\EntityManagerInterface;
use ReflectionException;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Security\Core\Exception\UserNotFoundException;
use Symfony\Component\Security\Http\Attribute\CurrentUser;
class HookController extends AbstractController
{
#[Route('hooks/setting/SetChangeHook', name: 'api_hook_SetChangeHook')]
public function api_hook_SetChangeHook(Access $access,Log $log,Request $request,EntityManagerInterface $entityManager): JsonResponse
{
$api = $entityManager->getRepository(APIToken::class)->findOneBy([
'token' => $request->headers->get('api-key'),
]);
$params = [];
if ($content = $request->getContent()) {
$params = json_decode($content, true);
}
$hook = $entityManager->getRepository(Hook::class)->findOneBy([
'url'=> $params['url'],
'password'=> $params['hookPassword'],
'bid' => $api->getBid(),
'submitter'=>$this->getUser()
]);
if(!$hook){
$hook = new Hook();
$hook->setBid($api->getBid());
$hook->setSubmitter($this->getUser());
$hook->setPassword($params['hookPassword']);
$hook->setUrl($params['url']);
$entityManager->persist($hook);
$entityManager->flush();
}
$year = $entityManager->getRepository(Year::class)->findOneBy(['bid'=>$api->getBid(),'head'=>true])->getId();
return $this->json([
'Success'=>true,
'bid' => $api->getBid()->getId(),
'year' => $year,
'money' => $api->getBid()->getMoney()->getId()
]);
}
#[Route('hooks/setting/getCurrency', name: 'api_hooks_getcurrency')]
public function api_hooks_getcurrency(Access $access,Log $log,Request $request,EntityManagerInterface $entityManager): JsonResponse
{
$api = $entityManager->getRepository(APIToken::class)->findOneBy([
'token' => $request->headers->get('api-key'),
]);
if(!$api)
throw $this->createNotFoundException();
return $this->json([
'Success'=>true,
'ErrorCode' => 0,
'ErrorMessage' => '',
'Result' =>[
'moneyId' => $api->getBid()->getMoney()->getId(),
'moneyName' => $api->getBid()->getMoney()->getName(),
'moneylabel' => $api->getBid()->getMoney()->getLabel()
]
]);
}
}

View file

@ -0,0 +1,20 @@
{% extends 'base.html.twig' %}
{% block title %}Hello HookController!{% endblock %}
{% block body %}
<style>
.example-wrapper { margin: 1em auto; max-width: 800px; width: 95%; font: 18px/1.5 sans-serif; }
.example-wrapper code { background: #F5F5F5; padding: 2px 6px; }
</style>
<div class="example-wrapper">
<h1>Hello {{ controller_name }}! ✅</h1>
This friendly message is coming from:
<ul>
<li>Your controller at <code><a href="{{ '/var/www/next.hesabix.ir/hesabixCore/src/Controller/HookController.php'|file_link(0) }}">src/Controller/HookController.php</a></code></li>
<li>Your template at <code><a href="{{ '/var/www/next.hesabix.ir/hesabixCore/templates/hook/index.html.twig'|file_link(0) }}">templates/hook/index.html.twig</a></code></li>
</ul>
</div>
{% endblock %}