mise en place d'un controleur REST
This commit is contained in:
@@ -1,15 +1,11 @@
|
|||||||
# Read the documentation: https://symfony.com/doc/master/bundles/FOSRestBundle/index.html
|
# Read the documentation: https://symfony.com/doc/master/bundles/FOSRestBundle/index.html
|
||||||
fos_rest: null
|
fos_rest:
|
||||||
# param_fetcher_listener: true
|
param_fetcher_listener: true
|
||||||
# allowed_methods_listener: true
|
body_listener: true
|
||||||
# routing_loader: true
|
|
||||||
# view:
|
format_listener:
|
||||||
# view_response_listener: true
|
enabled: true
|
||||||
# exception:
|
rules:
|
||||||
# codes:
|
- { path: '/rest', priorities: ['json', 'xml'], fallback_format: 'html' }
|
||||||
# App\Exception\MyException: 403
|
- { path: '/', fallback_format: 'html' }
|
||||||
# messages:
|
|
||||||
# App\Exception\MyException: Forbidden area.
|
|
||||||
# format_listener:
|
|
||||||
# rules:
|
|
||||||
# - { path: ^/api, prefer_extension: true, fallback_format: json, priorities: [ json, html ] }
|
|
||||||
|
@@ -1,9 +1,9 @@
|
|||||||
nelmio_api_doc:
|
nelmio_api_doc:
|
||||||
documentation:
|
documentation:
|
||||||
info:
|
info:
|
||||||
title: My App
|
title: '%appName%'
|
||||||
description: This is an awesome app!
|
description:
|
||||||
version: 1.0.0
|
version: 1.0.0
|
||||||
areas: # to filter documented areas
|
areas: # to filter documented areas
|
||||||
path_patterns:
|
path_patterns:
|
||||||
- ^/api(?!/doc$) # Accepts routes under /api except /api/doc
|
- /rest # Accepts routes under /rest except /rest/doc
|
||||||
|
@@ -1,12 +1,4 @@
|
|||||||
# Expose your documentation as JSON swagger compliant
|
app_swagger_ui:
|
||||||
app.swagger:
|
path: /rest
|
||||||
path: /api/doc.json
|
|
||||||
methods: GET
|
methods: GET
|
||||||
defaults: { _controller: nelmio_api_doc.controller.swagger }
|
defaults: { _controller: nelmio_api_doc.controller.swagger_ui }
|
||||||
|
|
||||||
## Requires the Asset component and the Twig bundle
|
|
||||||
## $ composer require twig asset
|
|
||||||
#app.swagger_ui:
|
|
||||||
# path: /api/doc
|
|
||||||
# methods: GET
|
|
||||||
# defaults: { _controller: nelmio_api_doc.controller.swagger_ui }
|
|
||||||
|
@@ -6,6 +6,7 @@
|
|||||||
parameters:
|
parameters:
|
||||||
appAlias: '%env(resolve:APP_ALIAS)%'
|
appAlias: '%env(resolve:APP_ALIAS)%'
|
||||||
appAuth: '%env(resolve:APP_AUTH)%'
|
appAuth: '%env(resolve:APP_AUTH)%'
|
||||||
|
appSecret: '%env(resolve:APP_SECRET)%'
|
||||||
appName: '%env(resolve:APP_NAME)%'
|
appName: '%env(resolve:APP_NAME)%'
|
||||||
appEnv: '%env(resolve:APP_ENV)%'
|
appEnv: '%env(resolve:APP_ENV)%'
|
||||||
appCron: '%env(resolve:APP_CRON)%'
|
appCron: '%env(resolve:APP_CRON)%'
|
||||||
@@ -80,3 +81,6 @@ services:
|
|||||||
public: true
|
public: true
|
||||||
class: App\Service\mailService
|
class: App\Service\mailService
|
||||||
arguments: ["@mailer", "@twig"]
|
arguments: ["@mailer", "@twig"]
|
||||||
|
|
||||||
|
App\Controller\RestController:
|
||||||
|
public: true
|
@@ -1,4 +1,2 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# Si besoin export des valeurs de HTTP_PROXY et HTTPS_PROXY
|
# Si besoin export des valeurs de HTTP_PROXY et HTTPS_PROXY
|
||||||
export HTTP_PROXY="192.168.57.160:8080"
|
|
||||||
export HTTPS_PROXY="192.168.57.160:8080"
|
|
||||||
|
134
src/schedule-2.0/src/Controller/RestController.php
Normal file
134
src/schedule-2.0/src/Controller/RestController.php
Normal file
@@ -0,0 +1,134 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Controller;
|
||||||
|
|
||||||
|
use FOS\RestBundle\Controller\AbstractFOSRestController;
|
||||||
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
|
use FOS\RestBundle\Controller\Annotations as FOSRest;
|
||||||
|
use Swagger\Annotations as SWG;
|
||||||
|
|
||||||
|
use App\Entity\Cache;
|
||||||
|
|
||||||
|
|
||||||
|
class RestController extends AbstractFOSRestController
|
||||||
|
{
|
||||||
|
private $output=[];
|
||||||
|
private $cpt;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return list of maps
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @FOSRest\Post("/rest/getBreakdays")
|
||||||
|
* @SWG\Response(
|
||||||
|
* response=200,
|
||||||
|
* description="Return list of breakday events"
|
||||||
|
* )
|
||||||
|
* )
|
||||||
|
* @SWG\Parameter(
|
||||||
|
* name="key",
|
||||||
|
* in="formData",
|
||||||
|
* required=true,
|
||||||
|
* description="APIKey",
|
||||||
|
* type="string"
|
||||||
|
* )
|
||||||
|
* @SWG\Parameter(
|
||||||
|
* name="username",
|
||||||
|
* in="formData",
|
||||||
|
* required=true,
|
||||||
|
* description="username",
|
||||||
|
* type="string"
|
||||||
|
* )
|
||||||
|
*/
|
||||||
|
|
||||||
|
public function getBreakdays(Request $request) {
|
||||||
|
set_time_limit(0);
|
||||||
|
ini_set('memory_limit', '1024M');
|
||||||
|
|
||||||
|
// Initalisation Manager
|
||||||
|
$em = $this->getDoctrine()->getManager();
|
||||||
|
|
||||||
|
// Récupération des parametres
|
||||||
|
$key=$request->get("key");
|
||||||
|
$username=$request->get("username");
|
||||||
|
|
||||||
|
if($key!=$this->getParameter("appSecret")) {
|
||||||
|
$view = $this->view("API Key inconnue", 403);
|
||||||
|
return $this->handleView($view);
|
||||||
|
}
|
||||||
|
|
||||||
|
$user=$em->getRepository("App:User")->findOneBy(["username"=>$username]);
|
||||||
|
if(!$user) {
|
||||||
|
$view = $this->view("User inconnue", 403);
|
||||||
|
return $this->handleView($view);
|
||||||
|
}
|
||||||
|
|
||||||
|
// On formate le tableau de jour
|
||||||
|
$start=new \Datetime('00:00');
|
||||||
|
$start->modify("monday this week");
|
||||||
|
$end=new \Datetime('00:00');
|
||||||
|
$end->modify("last day of this month");
|
||||||
|
$end->modify("next sunday");
|
||||||
|
|
||||||
|
|
||||||
|
$events = $em
|
||||||
|
->createQueryBuilder('event')
|
||||||
|
->select('event')
|
||||||
|
->from('App:Event','event')
|
||||||
|
->Where('event.user=:user AND event.start>=:start AND event.end <:end')
|
||||||
|
->setParameter('user',$user)
|
||||||
|
->setParameter('start',$start)
|
||||||
|
->setParameter('end',$end)
|
||||||
|
->getQuery()->getResult();
|
||||||
|
|
||||||
|
|
||||||
|
$output=[
|
||||||
|
"start"=>$start->format("d/m/Y"),
|
||||||
|
"end"=>$end->format("d/m/Y"),
|
||||||
|
"events"=>[],
|
||||||
|
];
|
||||||
|
|
||||||
|
$tbnature=[-200,-190,-100];
|
||||||
|
foreach($events as $event) {
|
||||||
|
if(in_array($event->getTask()->getNature()->getId(),$tbnature)) {
|
||||||
|
$tmp = [
|
||||||
|
"eventstart"=>$event->getStart(),
|
||||||
|
"eventend"=>$event->getEnd(),
|
||||||
|
"eventallday"=>$event->getAllday(),
|
||||||
|
"taskid"=>$event->getTask()->getId(),
|
||||||
|
"taskname"=>$event->getTask()->getName(),
|
||||||
|
"natureid"=>$event->getTask()->getNature()->getId(),
|
||||||
|
"naturename"=>$event->getTask()->getNature()->getName(),
|
||||||
|
];
|
||||||
|
|
||||||
|
array_push($output["events"],$tmp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$events = $em
|
||||||
|
->createQueryBuilder('breakday')
|
||||||
|
->select('breakday')
|
||||||
|
->from('App:Breakday','breakday')
|
||||||
|
->Where('breakday.start>=:start AND breakday.end <:end')
|
||||||
|
->setParameter('start',$start)
|
||||||
|
->setParameter('end',$end)
|
||||||
|
->getQuery()->getResult();
|
||||||
|
|
||||||
|
foreach($events as $event) {
|
||||||
|
$tmp = [
|
||||||
|
"eventstart"=>$event->getStart(),
|
||||||
|
"eventend"=>$event->getEnd(),
|
||||||
|
"eventallday"=>true,
|
||||||
|
"taskid"=>null,
|
||||||
|
"taskname"=>"Jour Férié",
|
||||||
|
"natureid"=>null,
|
||||||
|
"naturename"=>"Jour Férié",
|
||||||
|
];
|
||||||
|
|
||||||
|
array_push($output["events"],$tmp);
|
||||||
|
}
|
||||||
|
|
||||||
|
$view = $this->view($output, 200);
|
||||||
|
return $this->handleView($view);
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user