Skip to content
Snippets Groups Projects
Commit f2379e41 authored by Pierre Fleutot's avatar Pierre Fleutot
Browse files

API : fix divers endpoints suite évos Balex

parent 3273ca09
Branches main
No related tags found
No related merge requests found
...@@ -518,7 +518,7 @@ class ApiEntryController extends AppBaseController ...@@ -518,7 +518,7 @@ class ApiEntryController extends AppBaseController
* required=true, * required=true,
* @OA\JsonContent( * @OA\JsonContent(
* @OA\Property(property="graphy", type="string"), * @OA\Property(property="graphy", type="string"),
* @OA\Property(property="target_lex", type="string") * @OA\Property(property="target_lex", type="integer")
* ) * )
* ) * )
* ) * )
...@@ -559,6 +559,8 @@ class ApiEntryController extends AppBaseController ...@@ -559,6 +559,8 @@ class ApiEntryController extends AppBaseController
} }
/** /**
* TODO Supprimer cette endpoint ? Les process d'approbation de nouveau mot se font via Balex, pas depuis d'autres apps ?
*
* @Route("/add-approval/{id}", name="api_entry_add_approval", methods={"PUT"}) * @Route("/add-approval/{id}", name="api_entry_add_approval", methods={"PUT"})
* *
* @OA\Response(response=200, description="success", @OA\JsonContent(type="string")) * @OA\Response(response=200, description="success", @OA\JsonContent(type="string"))
......
...@@ -26,6 +26,7 @@ class ApiGraphyController extends AppBaseController ...@@ -26,6 +26,7 @@ class ApiGraphyController extends AppBaseController
{ {
/** /**
* Crée une graphie pour une langue donnée si elle n'existe pas déjà dans Balex, sans vérifier si le mot existe dans le wiktionnaire
* *
* @Route("/create", name="create_graphy", methods={"POST"}) * @Route("/create", name="create_graphy", methods={"POST"})
* *
......
...@@ -236,7 +236,7 @@ class ApiGraphyListController extends AppBaseController ...@@ -236,7 +236,7 @@ class ApiGraphyListController extends AppBaseController
foreach ($data['items'] as $item) { foreach ($data['items'] as $item) {
$graphy = $graphyList->getGraphyFromValue($item); $graphy = $graphyList->getGraphyFromValue($item);
if ($graphy) { if ($graphy) {
$graphyList->removeGraphy($item); $graphyList->removeGraphy($graphy);
} }
// Gestion des labels de liste : on supprime le label de la liste sur le ou les lemme.s correspondant.s // Gestion des labels de liste : on supprime le label de la liste sur le ou les lemme.s correspondant.s
......
...@@ -26,6 +26,7 @@ class ApiHeadwordController extends AppBaseController ...@@ -26,6 +26,7 @@ class ApiHeadwordController extends AppBaseController
{ {
/** /**
* On crée un headword à partir d'une graphie si elle existe dans Balex
* *
* @Route("/create", name="create_headword", methods={"POST"}) * @Route("/create", name="create_headword", methods={"POST"})
* *
......
...@@ -74,7 +74,7 @@ class ApiLabelController extends AppBaseController ...@@ -74,7 +74,7 @@ class ApiLabelController extends AppBaseController
* required={"name", "category", "masters_type", "language"}, * required={"name", "category", "masters_type", "language"},
* @OA\Property(property="name", type="string"), * @OA\Property(property="name", type="string"),
* @OA\Property(property="category", type="string", example="morphological OR general OR list OR milestone OR institutional"), * @OA\Property(property="category", type="string", example="morphological OR general OR list OR milestone OR institutional"),
* @OA\Property(property="masters_type", type="string", example="user OR group OR public"), * @OA\Property(property="masters_type", type="string", example="personal OR group OR public"),
* @OA\Property(property="master_id", type="integer"), * @OA\Property(property="master_id", type="integer"),
* @OA\Property(property="milestone", type="date"), * @OA\Property(property="milestone", type="date"),
* @OA\Property(property="language", type="string") * @OA\Property(property="language", type="string")
...@@ -108,7 +108,7 @@ class ApiLabelController extends AppBaseController ...@@ -108,7 +108,7 @@ class ApiLabelController extends AppBaseController
return $this->createJsonResponse(401, ['error' => sprintf("Veuillez fournir une date au format aaaa-mm-jj pour le paramètre «milestone»")]); return $this->createJsonResponse(401, ['error' => sprintf("Veuillez fournir une date au format aaaa-mm-jj pour le paramètre «milestone»")]);
} }
$masterType = $data['masterType']; $masterType = $data['masters_type'];
$masterId = $data['master_id'] ?? null; $masterId = $data['master_id'] ?? null;
if ($masterType !== Label::MASTER_PUBLIC && !$masterId) { if ($masterType !== Label::MASTER_PUBLIC && !$masterId) {
...@@ -123,7 +123,7 @@ class ApiLabelController extends AppBaseController ...@@ -123,7 +123,7 @@ class ApiLabelController extends AppBaseController
if (!$owner) return $this->createJsonResponse(401, ['error' => sprintf("Impossible de trouver l'utilisateur pour l'id «%s»", $masterId)]); if (!$owner) return $this->createJsonResponse(401, ['error' => sprintf("Impossible de trouver l'utilisateur pour l'id «%s»", $masterId)]);
} }
if ($data['category'] === Label::LABEL_CATEGORY_MILESTONE) { if ($data['category'] === Label::LABEL_CATEGORY_MILESTONE) {
$milestoneDate = date_create_from_format('Y-m-d', $milestone); $milestoneDate = date_create_immutable_from_format('Y-m-d', $milestone);var_dump($milestoneDate);die();
} }
$label = $labelManager->createLabelIfUnique($data['category'], $data['language'], $data['name'], $masterType, $owner ?? null, $milestoneDate ?? null); $label = $labelManager->createLabelIfUnique($data['category'], $data['language'], $data['name'], $masterType, $owner ?? null, $milestoneDate ?? null);
...@@ -238,9 +238,9 @@ class ApiLabelController extends AppBaseController ...@@ -238,9 +238,9 @@ class ApiLabelController extends AppBaseController
$label->setName($data['name']); $label->setName($data['name']);
} }
if ($data['milestone'] ?? null) { if ($data['milestone'] ?? null) {
$newDate = date_create_from_format('Y-m-d', $data['milestone']); $newDate = date_create_immutable_from_format('Y-m-d', $data['milestone']);
if ($newDate) { if ($newDate) {
$label->setMilestone(date_create_from_format('Y-m-d', $data['milestone'])); $label->setMilestone($newDate);
} else { } else {
return $this->createJsonResponse(401, ['error' => sprintf("Veuillez fournir une date au format aaaa-mm-jj pour le paramètre «milestone»")]); return $this->createJsonResponse(401, ['error' => sprintf("Veuillez fournir une date au format aaaa-mm-jj pour le paramètre «milestone»")]);
} }
...@@ -306,7 +306,7 @@ class ApiLabelController extends AppBaseController ...@@ -306,7 +306,7 @@ class ApiLabelController extends AppBaseController
* @OA\Property(property="headwords_ids", type="array", * @OA\Property(property="headwords_ids", type="array",
* example={"1", "2"}, * example={"1", "2"},
* @OA\Items( * @OA\Items(
* type="string" * type="integer"
* ) * )
* ) * )
* ) * )
...@@ -403,7 +403,7 @@ class ApiLabelController extends AppBaseController ...@@ -403,7 +403,7 @@ class ApiLabelController extends AppBaseController
*/ */
public function merge(Request $request, WiktionaryManager$wiktionaryManager, Label $labelDeleted, Label $labelMerged, LabelManager $labelManager): Response public function merge(Request $request, WiktionaryManager$wiktionaryManager, Label $labelDeleted, Label $labelMerged, LabelManager $labelManager): Response
{ {
$diffs = $labelDeleted->compareWith($labelMerged); $diffs = $labelDeleted->compareWith($labelMerged, true);
if ($diffs) { if ($diffs) {
return $this->createJsonResponse(401, ['error' => sprintf("Fusion impossible : %s", implode(', ', $diffs))]); return $this->createJsonResponse(401, ['error' => sprintf("Fusion impossible : %s", implode(', ', $diffs))]);
} else { } else {
......
...@@ -85,7 +85,7 @@ class ApiLogController extends AppBaseController ...@@ -85,7 +85,7 @@ class ApiLogController extends AppBaseController
* @OA\Response(response=500, description="error", @OA\JsonContent(type="string")) * @OA\Response(response=500, description="error", @OA\JsonContent(type="string"))
* *
* @OA\Parameter(name="date", in="query", @OA\Schema(type="date", example="2023-01-09")) * @OA\Parameter(name="date", in="query", @OA\Schema(type="date", example="2023-01-09"))
* @OA\Parameter(name="category", in="query", @OA\Schema(type="string", example="update_comment OU update_discussion")) * @OA\Parameter(name="category", in="query", @OA\Schema(type="string", example="update_entry, add_entry etc."))
* @OA\Parameter(name="user_id", in="query", @OA\Schema(type="integer")) * @OA\Parameter(name="user_id", in="query", @OA\Schema(type="integer"))
* @OA\Parameter(name="lexicon_id", in="query", @OA\Schema(type="integer")) * @OA\Parameter(name="lexicon_id", in="query", @OA\Schema(type="integer"))
* @OA\Parameter(name="entry_id", in="query", @OA\Schema(type="integer")) * @OA\Parameter(name="entry_id", in="query", @OA\Schema(type="integer"))
......
...@@ -235,7 +235,7 @@ class Label ...@@ -235,7 +235,7 @@ class Label
} }
// TODO reprendre ?? // TODO reprendre ??
public function compareWith(Label $label) public function compareWith(Label $label, $forceDifferentNames = false)
{ {
$diffs = []; $diffs = [];
if ($this->getLanguage() != $label->getLanguage()) { if ($this->getLanguage() != $label->getLanguage()) {
...@@ -244,7 +244,7 @@ class Label ...@@ -244,7 +244,7 @@ class Label
if ($this->getCategory() != $label->getCategory()) { if ($this->getCategory() != $label->getCategory()) {
$diffs[] = "Catégories différentes"; $diffs[] = "Catégories différentes";
} }
if ($this->getName() != $label->getName()) { if ($this->getName() != $label->getName() && ! $forceDifferentNames) {
$diffs[] = "Noms différents"; $diffs[] = "Noms différents";
} }
if ($this->getUser() !== $label->getUser()) { if ($this->getUser() !== $label->getUser()) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment