96 lines
3.7 KiB
PHP
Executable File
96 lines
3.7 KiB
PHP
Executable File
<?php
|
|
|
|
namespace App\Controller;
|
|
|
|
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
|
use Symfony\Component\HttpFoundation\Request;
|
|
use Symfony\Component\HttpFoundation\Response;
|
|
use Symfony\Component\HttpFoundation\JsonResponse;
|
|
use Symfony\Component\Form\FormError;
|
|
|
|
use App\Entity\Scrumissue as Entity;
|
|
use App\Form\ScrumissueType as Form;
|
|
|
|
use App\Service\giteaService;
|
|
|
|
class ScrumissueController extends AbstractController
|
|
{
|
|
private $data = "Scrumissue";
|
|
private $route = "app_Scrumissue";
|
|
private $render = "Scrumissue/";
|
|
private $entity = "App:Scrumissue";
|
|
|
|
public function __construct(giteaService $giteaservice) { $this->giteaservice = $giteaservice; }
|
|
|
|
public function change(Request $request)
|
|
{
|
|
$em = $this->getDoctrine()->getManager();
|
|
|
|
$id=$request->get('id');
|
|
$oldcolumn=$request->get('oldcolumn');
|
|
$newcolumn=$request->get('newcolumn');
|
|
$oldmilestone=$request->get('oldmilestone');
|
|
$newmilestone=$request->get('newmilestone');
|
|
|
|
// Rechercher l'issue en cours
|
|
$scrumissue=$em->getRepository("App:Scrumissue")->find($id);
|
|
if(!$scrumissue) return new JsonResponse(['message' => 'No Issue'], 403);
|
|
|
|
// Récupérer la liste des labels de l'issue
|
|
$gitealabels=$this->giteaservice->getIssuelabels($scrumissue->getScrum()->getGiteajson()["owner"]["login"],$scrumissue->getScrum()->getGiteajson()["name"],$scrumissue->getGiteanumber());
|
|
if(!is_array($gitealabels)) return new JsonResponse(['message' => 'No API getIssuelabels'], 403);
|
|
|
|
// Remplacer l'ancien column par la nouvelle
|
|
$newgitelabels=[];
|
|
$haveold=false;
|
|
foreach($gitealabels as $gitealabel) {
|
|
if($gitealabel->id!=$oldcolumn) array_push($newgitelabels,$gitealabel->id);
|
|
else $haveold=true;
|
|
}
|
|
if(!in_array($newcolumn,$newgitelabels)) array_push($newgitelabels,intval($newcolumn));
|
|
|
|
// Supprimer l'ancien label
|
|
if($haveold) {
|
|
$return=$this->giteaservice->deleteIssuelabel($scrumissue->getScrum()->getGiteajson()["owner"]["login"],$scrumissue->getScrum()->getGiteajson()["name"],$scrumissue->getGiteanumber(),$oldcolumn);
|
|
if(!$return) return new JsonResponse(['message' => 'No API deleteIssuelabel'], 403);
|
|
}
|
|
|
|
// Mettre à jour les labels
|
|
$return=$this->giteaservice->putIssuelabels($scrumissue->getScrum()->getGiteajson()["owner"]["login"],$scrumissue->getScrum()->getGiteajson()["name"],$scrumissue->getGiteanumber(),$newgitelabels);
|
|
if(!$return) return new JsonResponse(['message' => 'No API putIssuelabels'], 403);
|
|
|
|
// Mettre à jour le milestone
|
|
$patchs=["milestone"=>intval($newmilestone)];
|
|
$return=$this->giteaservice->patchIssue($scrumissue->getScrum()->getGiteajson()["owner"]["login"],$scrumissue->getScrum()->getGiteajson()["name"],$scrumissue->getGiteanumber(),$patchs);
|
|
if(!$return) return new JsonResponse(['message' => 'No API patchIssue'], 403);
|
|
|
|
return new JsonResponse();
|
|
}
|
|
|
|
public function order(Request $request)
|
|
{
|
|
$em = $this->getDoctrine()->getManager();
|
|
|
|
$id=$request->get('id');
|
|
$lstordered=explode(",",$request->get('lstordered'));
|
|
|
|
$scrum=$em->getRepository("App:Scrum")->find($id);
|
|
if(!$scrum) return new JsonResponse(['message' => 'No Scrum'], 403);
|
|
|
|
$order=0;
|
|
foreach($lstordered as $item) {
|
|
$scrumissue=$em->getRepository("App:Scrumissue")->find($item);
|
|
if($scrumissue) {
|
|
$scrumissue->setRowid($order);
|
|
$order++;
|
|
$em->persist($scrumissue);
|
|
}
|
|
}
|
|
|
|
$em->flush();
|
|
|
|
|
|
return new JsonResponse();
|
|
}
|
|
}
|