From ecd57649673f42e5cfd54e69f5ba737aa72b6057 Mon Sep 17 00:00:00 2001 From: Christopher Tate Date: Mon, 4 Nov 2024 22:02:40 -0700 Subject: [PATCH] Fixing page apis --- .../computate/frFR/java/EcrireApiClasse.java | 887 +++++++++--------- .../computate/frFR/java/EcrireGenClasse.java | 1 + .../computate/frFR/java/EcrirePageClasse.java | 134 ++- .../computate/frFR/java/IndexerClasse.java | 1 + 4 files changed, 544 insertions(+), 479 deletions(-) diff --git a/src/main/java/org/computate/frFR/java/EcrireApiClasse.java b/src/main/java/org/computate/frFR/java/EcrireApiClasse.java index a84221b..a935b87 100644 --- a/src/main/java/org/computate/frFR/java/EcrireApiClasse.java +++ b/src/main/java/org/computate/frFR/java/EcrireApiClasse.java @@ -306,19 +306,21 @@ public void ecrireGenApiService(String classeLangueNom) throws Exception { String classePageLangueNom = classeDoc.getString("classePageLangueNom" + classeApiMethode + "_" + classeLangueNom + "_stored_string"); if(classePageLangueNom == null || classePageLangueNom.equals(classeLangueNom)) { - if(classePageNomCanoniqueMethode != null) { + + if(classeApiMethode.contains(i18nGlobale.getString(I18n.var_PageEdition)) + || classeApiMethode.contains(i18nGlobale.getString(I18n.var_PageAffichage)) + || classeApiMethode.contains(i18nGlobale.getString(I18n.var_PageUtilisateur)) + ) { auteurGenApiService.t(1, "public void ", classeApiOperationIdMethode, "Id("); + auteurGenApiService.l("ServiceRequest ", i18nGlobale.getString(I18n.var_requeteService), ", Handler> ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ");"); + } else { + auteurGenApiService.t(1, "public void ", classeApiOperationIdMethode, "("); if(StringUtils.containsAny(classeApiMethode, "POST", "PUT", "PATCH", "DELETE")) - auteurGenApiService.s("" , StringUtils.equals(classeApiTypeMediaRequeteMethode, "application/json") ? "JsonObject" : "String", " body, "); + auteurGenApiService.s(StringUtils.equals(classeApiTypeMediaRequeteMethode, "application/json") ? "JsonObject" : "String", " body, "); auteurGenApiService.l("ServiceRequest ", i18nGlobale.getString(I18n.var_requeteService), ", Handler> ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ");"); - } - - auteurGenApiService.t(1, "public void ", classeApiOperationIdMethode, "("); - if(StringUtils.containsAny(classeApiMethode, "POST", "PUT", "PATCH", "DELETE")) - auteurGenApiService.s("" , StringUtils.equals(classeApiTypeMediaRequeteMethode, "application/json") ? "JsonObject" : "String", " body, "); - auteurGenApiService.l("ServiceRequest ", i18nGlobale.getString(I18n.var_requeteService), ", Handler> ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ");"); - if(StringUtils.containsAny(classeApiMethode, "POST", "PUTImport", i18nGlobale.getString(I18n.var_PUTFusion), "PATCH", "DELETE")) { - auteurGenApiService.tl(1, "public void ", classeApiOperationIdMethode, "Future(" , StringUtils.equals(classeApiTypeMediaRequeteMethode, "application/json") ? "JsonObject" : "String", " body, ServiceRequest ", i18nGlobale.getString(I18n.var_requeteService), ", Handler> ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ");"); + if(StringUtils.containsAny(classeApiMethode, "POST", "PUTImport", i18nGlobale.getString(I18n.var_PUTFusion), "PATCH", "DELETE")) { + auteurGenApiService.tl(1, "public void ", classeApiOperationIdMethode, "Future(" , StringUtils.equals(classeApiTypeMediaRequeteMethode, "application/json") ? "JsonObject" : "String", " body, ServiceRequest ", i18nGlobale.getString(I18n.var_requeteService), ", Handler> ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ");"); + } } } } @@ -1916,7 +1918,10 @@ public void ecrireGenApiServiceImpl2(String classeLangueNom) throws Exception { l(); tl(1, "// ", classeApiMethode, " //"); - if(classePageNomCanoniqueMethode != null) { + if(classeApiMethode.contains(i18nGlobale.getString(I18n.var_PageEdition)) + || classeApiMethode.contains(i18nGlobale.getString(I18n.var_PageAffichage)) + || classeApiMethode.contains(i18nGlobale.getString(I18n.var_PageUtilisateur)) + ) { l(); tl(1, "@Override"); t(1, "public void ", classeApiOperationIdMethode, "Id("); @@ -2036,454 +2041,454 @@ public void ecrireGenApiServiceImpl2(String classeLangueNom) throws Exception { tl(7, i18nGlobale.getString(I18n.var_erreur), "(", i18nGlobale.getString(I18n.var_requeteSite), ", ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); tl(6, "});"); - if( - StringUtils.containsAny(classeApiMethode, "POST", "PUT", "PATCH", "DELETE") - && !(classeRoleSession || classeRoleUtilisateur || classeRoleChacun) - && ( - classeAuth - ) - || !StringUtils.containsAny(classeApiMethode, "POST", "PUT", "PATCH", "DELETE") && ( - BooleanUtils.isNotTrue(classeRoleSession) - && BooleanUtils.isNotTrue(classePublicLire) - && BooleanUtils.isNotTrue(classeRoleUtilisateur) - && BooleanUtils.isNotTrue(classeRoleChacun) - && classeAuth - ) - ) { - if(authPolitiqueGranulee) { - tl(5, "}"); - tl(4, "} catch(Exception ex) {"); - tl(5, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \"), ex);"); - tl(5, i18nGlobale.getString(I18n.var_erreur), "(null, ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); - tl(4, "}"); - } else { - tl(5, "} catch(Exception ex) {"); - tl(6, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \"), ex);"); - tl(6, i18nGlobale.getString(I18n.var_erreur), "(null, ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); - tl(5, "}"); - tl(4, "}"); - } - tl(3, "});"); - } - - tl(2, "}).onFailure(ex -> {"); - if(activerOpenIdConnect) { - tl(3, "if(\"Inactive Token\".equals(ex.getMessage()) || StringUtils.startsWith(ex.getMessage(), \"invalid_grant:\")) {"); - tl(4, "try {"); - tl(5, i18nGlobale.getString(I18n.var_gestionnaireEvenements), ".handle(Future.succeededFuture(new ServiceResponse(302, \"Found\", null, MultiMap.caseInsensitiveMultiMap().add(HttpHeaders.LOCATION, \"/", i18nGlobale.getString(I18n.var_deconnexion), "?redirect_uri=\" + URLEncoder.encode(serviceRequest.getExtra().getString(\"uri\"), \"UTF-8\")))));"); - tl(4, "} catch(Exception ex2) {"); - tl(5, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \", ex2));"); - tl(5, i18nGlobale.getString(I18n.var_erreur), "(null, ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex2);"); - tl(4, "}"); - tl(3, "} else if(StringUtils.startsWith(ex.getMessage(), \"401 UNAUTHORIZED \")) {"); - tl(4, "eventHandler.handle(Future.succeededFuture("); - tl(5, "new ServiceResponse(401, \"UNAUTHORIZED\","); - tl(6, "Buffer.buffer().appendString("); - tl(7, "new JsonObject()"); - tl(8, ".put(\"errorCode\", \"401\")"); - tl(8, ".put(\"errorMessage\", \"SSO Resource Permission check returned DENY\")"); - tl(8, ".encodePrettily()"); - tl(7, "), MultiMap.caseInsensitiveMultiMap()"); - tl(7, ")"); - tl(5, "));"); - tl(3, "} else {"); - tl(4, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \"), ex);"); - tl(4, i18nGlobale.getString(I18n.var_erreur), "(null, ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); - tl(3, "}"); - } else { - tl(3, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \"), ex);"); - tl(3, i18nGlobale.getString(I18n.var_erreur), "(null, ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); - } - tl(2, "});"); - tl(1, "}"); - } - - ///////// - // API // - ///////// - l(); - tl(1, "@Override"); - t(1, "public void ", classeApiOperationIdMethode, "("); - if(StringUtils.containsAny(classeApiMethode, "POST", "PUT", "PATCH", "DELETE")) - s("" , StringUtils.equals(classeApiTypeMediaRequeteMethode, "application/json") ? "JsonObject" : "String", " body, "); - l("ServiceRequest ", i18nGlobale.getString(I18n.var_requeteService), ", Handler> ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ") {"); - if(StringUtils.containsAny(classeApiMethode, "POST", "PUT", "PATCH", "DELETE")) - tl(2, "LOG.debug(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_démarré), ". \"));"); - - tl(2, i18nGlobale.getString(I18n.var_utilisateur), "(", i18nGlobale.getString(I18n.var_requeteService), ", ", classePartsRequeteSite.nomSimple(classeLangueNom), ".class, ", classePartsUtilisateurSite.nomSimple(classeLangueNom), ".class, ", classePartsUtilisateurSite.nomSimple(classeLangueNom), ".get", i18nGlobale.getString(I18n.var_ClasseApiAddresse), "(), \"post", classePartsUtilisateurSite.nomSimple(classeLangueNom), "Future\", \"patch", classePartsUtilisateurSite.nomSimple(classeLangueNom), "Future\").onSuccess(", i18nGlobale.getString(I18n.var_requeteSite), " -> {"); - if( - StringUtils.containsAny(classeApiMethode, "POST", "PUT", "PATCH", "DELETE") - && !(classeRoleSession || classeRoleUtilisateur || classeRoleChacun) - && ( - classeAuth - ) - || !StringUtils.containsAny(classeApiMethode, "POST", "PUT", "PATCH", "DELETE") && ( - BooleanUtils.isNotTrue(classeRoleSession) - && BooleanUtils.isNotTrue(classePublicLire) - && BooleanUtils.isNotTrue(classePageRecherchePublicLire && classeApiMethode.equals(i18nGlobale.getString(I18n.var_PageRecherche))) - && BooleanUtils.isNotTrue(classeRoleUtilisateur) - && BooleanUtils.isNotTrue(classeRoleChacun) - && classeAuth - ) - ) { - if(authPolitiqueGranulee) { - tl(3, "webClient.post("); - tl(5, "config.getInteger(ComputateConfigKeys.AUTH_PORT)"); - tl(5, ", config.getString(ComputateConfigKeys.AUTH_HOST_NAME)"); - tl(5, ", config.getString(ComputateConfigKeys.AUTH_TOKEN_URI)"); - tl(5, ")"); - tl(5, ".ssl(config.getBoolean(ComputateConfigKeys.AUTH_SSL))"); - tl(5, ".putHeader(\"Authorization\", String.format(\"Bearer %s\", siteRequest.getUser().principal().getString(\"access_token\")))"); - tl(5, ".expect(ResponsePredicate.status(200))"); - tl(5, ".sendForm(MultiMap.caseInsensitiveMultiMap()"); - tl(7, ".add(\"grant_type\", \"urn:ietf:params:oauth:grant-type:uma-ticket\")"); - tl(7, ".add(\"audience\", config.getString(ComputateConfigKeys.AUTH_CLIENT))"); - tl(7, ".add(\"response_mode\", \"permissions\")"); - if(classeApiMethode.equals(classeApiMethodeMethode)) { - tl(7, ".add(\"permission\", String.format(\"%s#%s\", ", classeNomSimple, ".CLASS_SIMPLE_NAME, \"", classeApiMethode, "\"))"); + if( + StringUtils.containsAny(classeApiMethode, "POST", "PUT", "PATCH", "DELETE") + && !(classeRoleSession || classeRoleUtilisateur || classeRoleChacun) + && ( + classeAuth + ) + || !StringUtils.containsAny(classeApiMethode, "POST", "PUT", "PATCH", "DELETE") && ( + BooleanUtils.isNotTrue(classeRoleSession) + && BooleanUtils.isNotTrue(classePublicLire) + && BooleanUtils.isNotTrue(classeRoleUtilisateur) + && BooleanUtils.isNotTrue(classeRoleChacun) + && classeAuth + ) + ) { + if(authPolitiqueGranulee) { + tl(5, "}"); + tl(4, "} catch(Exception ex) {"); + tl(5, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \"), ex);"); + tl(5, i18nGlobale.getString(I18n.var_erreur), "(null, ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); + tl(4, "}"); } else { - tl(7, ".add(\"permission\", String.format(\"%s#%s\", ", classeNomSimple, ".CLASS_SIMPLE_NAME, config.getString(ComputateConfigKeys.", i18nGlobale.getString(I18n.var_AUTH_PORTEE_ADMIN), ")))"); - tl(7, ".add(\"permission\", String.format(\"%s#%s\", ", classeNomSimple, ".CLASS_SIMPLE_NAME, config.getString(ComputateConfigKeys.", i18nGlobale.getString(I18n.var_AUTH_PORTEE_SUPER_ADMIN), ")))"); - tl(7, ".add(\"permission\", String.format(\"%s#%s\", ", classeNomSimple, ".CLASS_SIMPLE_NAME, \"GET\"))"); - tl(7, ".add(\"permission\", String.format(\"%s#%s\", ", classeNomSimple, ".CLASS_SIMPLE_NAME, \"POST\"))"); - tl(7, ".add(\"permission\", String.format(\"%s#%s\", ", classeNomSimple, ".CLASS_SIMPLE_NAME, \"DELETE\"))"); - tl(7, ".add(\"permission\", String.format(\"%s#%s\", ", classeNomSimple, ".CLASS_SIMPLE_NAME, \"PATCH\"))"); + tl(5, "} catch(Exception ex) {"); + tl(6, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \"), ex);"); + tl(6, i18nGlobale.getString(I18n.var_erreur), "(null, ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); + tl(5, "}"); + tl(4, "}"); } - tl(3, ").onFailure(ex -> {"); - tl(4, "String msg = String.format(\"403 FORBIDDEN user %s to %s %s\", siteRequest.getUser().attributes().getJsonObject(\"accessToken\").getString(\"preferred_username\"), serviceRequest.getExtra().getString(\"method\"), serviceRequest.getExtra().getString(\"uri\"));"); - tl(4, "eventHandler.handle(Future.succeededFuture("); - tl(5, "new ServiceResponse(403, \"FORBIDDEN\","); - tl(6, "Buffer.buffer().appendString("); - tl(7, "new JsonObject()"); - tl(8, ".put(\"errorCode\", \"403\")"); - tl(8, ".put(\"errorMessage\", msg)"); - tl(8, ".encodePrettily()"); - tl(7, "), MultiMap.caseInsensitiveMultiMap()"); - tl(5, ")"); - tl(4, "));"); - tl(3, "}).onSuccess(authorizationDecision -> {"); + tl(3, "});"); + } + + tl(2, "}).onFailure(ex -> {"); + if(activerOpenIdConnect) { + tl(3, "if(\"Inactive Token\".equals(ex.getMessage()) || StringUtils.startsWith(ex.getMessage(), \"invalid_grant:\")) {"); tl(4, "try {"); - tl(5, "JsonArray scopes = authorizationDecision.bodyAsJsonArray().stream().findFirst().map(decision -> ((JsonObject)decision).getJsonArray(\"scopes\")).orElse(new JsonArray());"); - tl(5, "if(!scopes.contains(\"", classeApiMethodeMethode, "\")) {"); - tl(6, "String msg = String.format(\"403 FORBIDDEN user %s to %s %s\", siteRequest.getUser().attributes().getJsonObject(\"accessToken\").getString(\"preferred_username\"), serviceRequest.getExtra().getString(\"method\"), serviceRequest.getExtra().getString(\"uri\"));"); - tl(6, "eventHandler.handle(Future.succeededFuture("); - tl(7, "new ServiceResponse(403, \"FORBIDDEN\","); - tl(8, "Buffer.buffer().appendString("); - tl(9, "new JsonObject()"); - tl(10, ".put(\"errorCode\", \"403\")"); - tl(10, ".put(\"errorMessage\", msg)"); - tl(10, ".encodePrettily()"); - tl(9, "), MultiMap.caseInsensitiveMultiMap()"); - tl(7, ")"); - tl(6, "));"); - tl(5, "} else {"); - tl(6, i18nGlobale.getString(I18n.var_requeteSite), ".setScopes(scopes.stream().map(o -> o.toString()).collect(Collectors.toList()));"); - } else { - tl(3, "authorizationProvider.getAuthorizations(", i18nGlobale.getString(I18n.var_requeteSite), ".get", i18nGlobale.getString(I18n.var_Utilisateur), "()).onFailure(ex -> {"); - tl(4, "String msg = String.format(\"403 FORBIDDEN user %s to %s %s\", siteRequest.getUser().attributes().getJsonObject(\"accessToken\").getString(\"preferred_username\"), serviceRequest.getExtra().getString(\"method\"), serviceRequest.getExtra().getString(\"uri\"));"); + tl(5, i18nGlobale.getString(I18n.var_gestionnaireEvenements), ".handle(Future.succeededFuture(new ServiceResponse(302, \"Found\", null, MultiMap.caseInsensitiveMultiMap().add(HttpHeaders.LOCATION, \"/", i18nGlobale.getString(I18n.var_deconnexion), "?redirect_uri=\" + URLEncoder.encode(serviceRequest.getExtra().getString(\"uri\"), \"UTF-8\")))));"); + tl(4, "} catch(Exception ex2) {"); + tl(5, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \", ex2));"); + tl(5, i18nGlobale.getString(I18n.var_erreur), "(null, ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex2);"); + tl(4, "}"); + tl(3, "} else if(StringUtils.startsWith(ex.getMessage(), \"401 UNAUTHORIZED \")) {"); tl(4, "eventHandler.handle(Future.succeededFuture("); - tl(5, "new ServiceResponse(403, \"FORBIDDEN\","); + tl(5, "new ServiceResponse(401, \"UNAUTHORIZED\","); tl(6, "Buffer.buffer().appendString("); tl(7, "new JsonObject()"); - tl(8, ".put(\"errorCode\", \"403\")"); - tl(8, ".put(\"errorMessage\", msg)"); + tl(8, ".put(\"errorCode\", \"401\")"); + tl(8, ".put(\"errorMessage\", \"SSO Resource Permission check returned DENY\")"); tl(8, ".encodePrettily()"); tl(7, "), MultiMap.caseInsensitiveMultiMap()"); - tl(5, ")"); - tl(4, "));"); - tl(3, "}).onSuccess(b -> {"); - tl(4, "if("); - tl(6, "!Optional.ofNullable(config.getString(ComputateConfigKeys.", i18nGlobale.getString(I18n.var_AUTH_ROLE_REQUIS), " + \"_", classeNomSimple, "\")).map(v -> RoleBasedAuthorization.create(v).match(", i18nGlobale.getString(I18n.var_requeteSite), ".get", i18nGlobale.getString(I18n.var_Utilisateur), "())).orElse(false)"); - tl(6, StringUtils.containsAny(classeApiMethode, "POST", "PUT", "PATCH", "DELETE") ? "||" : "&&", " !Optional.ofNullable(Optional.ofNullable(config.getString(ComputateConfigKeys.", i18nGlobale.getString(I18n.var_AUTH_ROLE_LIRE_REQUIS), " + \"_", classeNomSimple, "\")).orElse(config.getString(ComputateConfigKeys.", i18nGlobale.getString(I18n.var_AUTH_ROLE_REQUIS), " + \"_", classeNomSimple, "\"))).map(v -> RoleBasedAuthorization.create(v).match(", i18nGlobale.getString(I18n.var_requeteSite), ".get", i18nGlobale.getString(I18n.var_Utilisateur), "())).orElse(false)"); - tl(6, ") {"); - tl(5, "String msg = String.format(\"403 FORBIDDEN user %s to %s %s\", siteRequest.getUser().attributes().getJsonObject(\"accessToken\").getString(\"preferred_username\"), serviceRequest.getExtra().getString(\"method\"), serviceRequest.getExtra().getString(\"uri\"));"); - tl(5, "eventHandler.handle(Future.succeededFuture("); - tl(6, "new ServiceResponse(403, \"FORBIDDEN\","); - tl(7, "Buffer.buffer().appendString("); - tl(8, "new JsonObject()"); - tl(9, ".put(\"errorCode\", \"403\")"); - tl(9, ".put(\"errorMessage\", msg)"); - tl(9, ".encodePrettily()"); - tl(8, "), MultiMap.caseInsensitiveMultiMap()"); - tl(6, ")"); + tl(7, ")"); tl(5, "));"); - tl(4, "} else {"); - tl(5, "try {"); + tl(3, "} else {"); + tl(4, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \"), ex);"); + tl(4, i18nGlobale.getString(I18n.var_erreur), "(null, ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); + tl(3, "}"); + } else { + tl(3, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \"), ex);"); + tl(3, i18nGlobale.getString(I18n.var_erreur), "(null, ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); } - } + tl(2, "});"); + tl(1, "}"); + } else { - if(classeApiMethode.contains("POST")) { + ///////// + // API // + ///////// + l(); + tl(1, "@Override"); + t(1, "public void ", classeApiOperationIdMethode, "("); + if(StringUtils.containsAny(classeApiMethode, "POST", "PUT", "PATCH", "DELETE")) + s("" , StringUtils.equals(classeApiTypeMediaRequeteMethode, "application/json") ? "JsonObject" : "String", " body, "); + l("ServiceRequest ", i18nGlobale.getString(I18n.var_requeteService), ", Handler> ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ") {"); + if(StringUtils.containsAny(classeApiMethode, "POST", "PUT", "PATCH", "DELETE")) + tl(2, "LOG.debug(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_démarré), ". \"));"); + + tl(2, i18nGlobale.getString(I18n.var_utilisateur), "(", i18nGlobale.getString(I18n.var_requeteService), ", ", classePartsRequeteSite.nomSimple(classeLangueNom), ".class, ", classePartsUtilisateurSite.nomSimple(classeLangueNom), ".class, ", classePartsUtilisateurSite.nomSimple(classeLangueNom), ".get", i18nGlobale.getString(I18n.var_ClasseApiAddresse), "(), \"post", classePartsUtilisateurSite.nomSimple(classeLangueNom), "Future\", \"patch", classePartsUtilisateurSite.nomSimple(classeLangueNom), "Future\").onSuccess(", i18nGlobale.getString(I18n.var_requeteSite), " -> {"); + if( + StringUtils.containsAny(classeApiMethode, "POST", "PUT", "PATCH", "DELETE") + && !(classeRoleSession || classeRoleUtilisateur || classeRoleChacun) + && ( + classeAuth + ) + || !StringUtils.containsAny(classeApiMethode, "POST", "PUT", "PATCH", "DELETE") && ( + BooleanUtils.isNotTrue(classeRoleSession) + && BooleanUtils.isNotTrue(classePublicLire) + && BooleanUtils.isNotTrue(classePageRecherchePublicLire && classeApiMethode.equals(i18nGlobale.getString(I18n.var_PageRecherche))) + && BooleanUtils.isNotTrue(classeRoleUtilisateur) + && BooleanUtils.isNotTrue(classeRoleChacun) + && classeAuth + ) + ) { + if(authPolitiqueGranulee) { + tl(3, "webClient.post("); + tl(5, "config.getInteger(ComputateConfigKeys.AUTH_PORT)"); + tl(5, ", config.getString(ComputateConfigKeys.AUTH_HOST_NAME)"); + tl(5, ", config.getString(ComputateConfigKeys.AUTH_TOKEN_URI)"); + tl(5, ")"); + tl(5, ".ssl(config.getBoolean(ComputateConfigKeys.AUTH_SSL))"); + tl(5, ".putHeader(\"Authorization\", String.format(\"Bearer %s\", siteRequest.getUser().principal().getString(\"access_token\")))"); + tl(5, ".expect(ResponsePredicate.status(200))"); + tl(5, ".sendForm(MultiMap.caseInsensitiveMultiMap()"); + tl(7, ".add(\"grant_type\", \"urn:ietf:params:oauth:grant-type:uma-ticket\")"); + tl(7, ".add(\"audience\", config.getString(ComputateConfigKeys.AUTH_CLIENT))"); + tl(7, ".add(\"response_mode\", \"permissions\")"); + if(classeApiMethode.equals(classeApiMethodeMethode)) { + tl(7, ".add(\"permission\", String.format(\"%s#%s\", ", classeNomSimple, ".CLASS_SIMPLE_NAME, \"", classeApiMethode, "\"))"); + } else { + tl(7, ".add(\"permission\", String.format(\"%s#%s\", ", classeNomSimple, ".CLASS_SIMPLE_NAME, config.getString(ComputateConfigKeys.", i18nGlobale.getString(I18n.var_AUTH_PORTEE_ADMIN), ")))"); + tl(7, ".add(\"permission\", String.format(\"%s#%s\", ", classeNomSimple, ".CLASS_SIMPLE_NAME, config.getString(ComputateConfigKeys.", i18nGlobale.getString(I18n.var_AUTH_PORTEE_SUPER_ADMIN), ")))"); + tl(7, ".add(\"permission\", String.format(\"%s#%s\", ", classeNomSimple, ".CLASS_SIMPLE_NAME, \"GET\"))"); + tl(7, ".add(\"permission\", String.format(\"%s#%s\", ", classeNomSimple, ".CLASS_SIMPLE_NAME, \"POST\"))"); + tl(7, ".add(\"permission\", String.format(\"%s#%s\", ", classeNomSimple, ".CLASS_SIMPLE_NAME, \"DELETE\"))"); + tl(7, ".add(\"permission\", String.format(\"%s#%s\", ", classeNomSimple, ".CLASS_SIMPLE_NAME, \"PATCH\"))"); + } + tl(3, ").onFailure(ex -> {"); + tl(4, "String msg = String.format(\"403 FORBIDDEN user %s to %s %s\", siteRequest.getUser().attributes().getJsonObject(\"accessToken\").getString(\"preferred_username\"), serviceRequest.getExtra().getString(\"method\"), serviceRequest.getExtra().getString(\"uri\"));"); + tl(4, "eventHandler.handle(Future.succeededFuture("); + tl(5, "new ServiceResponse(403, \"FORBIDDEN\","); + tl(6, "Buffer.buffer().appendString("); + tl(7, "new JsonObject()"); + tl(8, ".put(\"errorCode\", \"403\")"); + tl(8, ".put(\"errorMessage\", msg)"); + tl(8, ".encodePrettily()"); + tl(7, "), MultiMap.caseInsensitiveMultiMap()"); + tl(5, ")"); + tl(4, "));"); + tl(3, "}).onSuccess(authorizationDecision -> {"); + tl(4, "try {"); + tl(5, "JsonArray scopes = authorizationDecision.bodyAsJsonArray().stream().findFirst().map(decision -> ((JsonObject)decision).getJsonArray(\"scopes\")).orElse(new JsonArray());"); + tl(5, "if(!scopes.contains(\"", classeApiMethodeMethode, "\")) {"); + tl(6, "String msg = String.format(\"403 FORBIDDEN user %s to %s %s\", siteRequest.getUser().attributes().getJsonObject(\"accessToken\").getString(\"preferred_username\"), serviceRequest.getExtra().getString(\"method\"), serviceRequest.getExtra().getString(\"uri\"));"); + tl(6, "eventHandler.handle(Future.succeededFuture("); + tl(7, "new ServiceResponse(403, \"FORBIDDEN\","); + tl(8, "Buffer.buffer().appendString("); + tl(9, "new JsonObject()"); + tl(10, ".put(\"errorCode\", \"403\")"); + tl(10, ".put(\"errorMessage\", msg)"); + tl(10, ".encodePrettily()"); + tl(9, "), MultiMap.caseInsensitiveMultiMap()"); + tl(7, ")"); + tl(6, "));"); + tl(5, "} else {"); + tl(6, i18nGlobale.getString(I18n.var_requeteSite), ".setScopes(scopes.stream().map(o -> o.toString()).collect(Collectors.toList()));"); + } else { + tl(3, "authorizationProvider.getAuthorizations(", i18nGlobale.getString(I18n.var_requeteSite), ".get", i18nGlobale.getString(I18n.var_Utilisateur), "()).onFailure(ex -> {"); + tl(4, "String msg = String.format(\"403 FORBIDDEN user %s to %s %s\", siteRequest.getUser().attributes().getJsonObject(\"accessToken\").getString(\"preferred_username\"), serviceRequest.getExtra().getString(\"method\"), serviceRequest.getExtra().getString(\"uri\"));"); + tl(4, "eventHandler.handle(Future.succeededFuture("); + tl(5, "new ServiceResponse(403, \"FORBIDDEN\","); + tl(6, "Buffer.buffer().appendString("); + tl(7, "new JsonObject()"); + tl(8, ".put(\"errorCode\", \"403\")"); + tl(8, ".put(\"errorMessage\", msg)"); + tl(8, ".encodePrettily()"); + tl(7, "), MultiMap.caseInsensitiveMultiMap()"); + tl(5, ")"); + tl(4, "));"); + tl(3, "}).onSuccess(b -> {"); + tl(4, "if("); + tl(6, "!Optional.ofNullable(config.getString(ComputateConfigKeys.", i18nGlobale.getString(I18n.var_AUTH_ROLE_REQUIS), " + \"_", classeNomSimple, "\")).map(v -> RoleBasedAuthorization.create(v).match(", i18nGlobale.getString(I18n.var_requeteSite), ".get", i18nGlobale.getString(I18n.var_Utilisateur), "())).orElse(false)"); + tl(6, StringUtils.containsAny(classeApiMethode, "POST", "PUT", "PATCH", "DELETE") ? "||" : "&&", " !Optional.ofNullable(Optional.ofNullable(config.getString(ComputateConfigKeys.", i18nGlobale.getString(I18n.var_AUTH_ROLE_LIRE_REQUIS), " + \"_", classeNomSimple, "\")).orElse(config.getString(ComputateConfigKeys.", i18nGlobale.getString(I18n.var_AUTH_ROLE_REQUIS), " + \"_", classeNomSimple, "\"))).map(v -> RoleBasedAuthorization.create(v).match(", i18nGlobale.getString(I18n.var_requeteSite), ".get", i18nGlobale.getString(I18n.var_Utilisateur), "())).orElse(false)"); + tl(6, ") {"); + tl(5, "String msg = String.format(\"403 FORBIDDEN user %s to %s %s\", siteRequest.getUser().attributes().getJsonObject(\"accessToken\").getString(\"preferred_username\"), serviceRequest.getExtra().getString(\"method\"), serviceRequest.getExtra().getString(\"uri\"));"); + tl(5, "eventHandler.handle(Future.succeededFuture("); + tl(6, "new ServiceResponse(403, \"FORBIDDEN\","); + tl(7, "Buffer.buffer().appendString("); + tl(8, "new JsonObject()"); + tl(9, ".put(\"errorCode\", \"403\")"); + tl(9, ".put(\"errorMessage\", msg)"); + tl(9, ".encodePrettily()"); + tl(8, "), MultiMap.caseInsensitiveMultiMap()"); + tl(6, ")"); + tl(5, "));"); + tl(4, "} else {"); + tl(5, "try {"); + } + } + + if(classeApiMethode.contains("POST")) { - ////////////// - // /modele: // - ////////////// + ////////////// + // /modele: // + ////////////// - tl(6, classePartsRequeteApi.nomSimple(classeLangueNom), " ", i18nGlobale.getString(I18n.var_requeteApi), " = new ", classePartsRequeteApi.nomSimple(classeLangueNom), "();"); - tl(6, i18nGlobale.getString(I18n.var_requeteApi), ".setRows(1L);"); - tl(6, i18nGlobale.getString(I18n.var_requeteApi), ".setNumFound(1L);"); - tl(6, i18nGlobale.getString(I18n.var_requeteApi), ".setNumPATCH(0L);"); - tl(6, i18nGlobale.getString(I18n.var_requeteApi), ".", i18nGlobale.getString(I18n.var_initLoin), classePartsRequeteApi.nomSimple(classeLangueNom), "(", i18nGlobale.getString(I18n.var_requeteSite), ");"); - tl(6, i18nGlobale.getString(I18n.var_requeteSite), ".set", i18nGlobale.getString(I18n.var_RequeteApi), "_(", i18nGlobale.getString(I18n.var_requeteApi), ");"); - tl(6, "eventBus.publish(\"websocket", classeNomSimple, "\", JsonObject.mapFrom(", i18nGlobale.getString(I18n.var_requeteApi), ").toString());"); - tl(6, "JsonObject params = new JsonObject();"); - tl(6, "params.put(\"body\", ", i18nGlobale.getString(I18n.var_requeteSite), ".getJsonObject());"); - tl(6, "params.put(\"path\", new JsonObject());"); - tl(6, "params.put(\"cookie\", new JsonObject());"); - tl(6, "params.put(\"header\", ", i18nGlobale.getString(I18n.var_requeteSite), ".get", i18nGlobale.getString(I18n.var_RequeteService), "().getParams().getJsonObject(\"header\"));"); - tl(6, "params.put(\"form\", new JsonObject());"); - tl(6, "JsonObject query = new JsonObject();"); - tl(6, "Boolean softCommit = Optional.ofNullable(", i18nGlobale.getString(I18n.var_requeteSite), ".get", i18nGlobale.getString(I18n.var_RequeteService), "().getParams()).map(p -> p.getJsonObject(\"query\")).map( q -> q.getBoolean(\"softCommit\")).orElse(null);"); - tl(6, "Integer commitWithin = Optional.ofNullable(", i18nGlobale.getString(I18n.var_requeteSite), ".get", i18nGlobale.getString(I18n.var_RequeteService), "().getParams()).map(p -> p.getJsonObject(\"query\")).map( q -> q.getInteger(\"commitWithin\")).orElse(null);"); - tl(6, "if(softCommit == null && commitWithin == null)"); - tl(7, "softCommit = true;"); - tl(6, "if(softCommit != null)"); - tl(7, "query.put(\"softCommit\", softCommit);"); - tl(6, "if(commitWithin != null)"); - tl(7, "query.put(\"commitWithin\", commitWithin);"); - tl(6, "params.put(\"query\", query);"); - tl(6, "JsonObject context = new JsonObject().put(\"params\", params).put(\"user\", ", i18nGlobale.getString(I18n.var_requeteSite), ".getUserPrincipal());"); - tl(6, "JsonObject json = new JsonObject().put(\"context\", context);"); - tl(6, "eventBus.request(", classeNomSimple, ".get", i18nGlobale.getString(I18n.var_ClasseApiAddresse), "(), json, new DeliveryOptions().addHeader(\"action\", \"", classeApiOperationIdMethode, "Future\")).onSuccess(a -> {"); - tl(7, "JsonObject responseMessage = (JsonObject)a.body();"); - tl(7, "JsonObject responseBody = new JsonObject(Buffer.buffer(JsonUtil.BASE64_DECODER.decode(responseMessage.getString(\"payload\"))));"); - if(classeModele) - tl(7, i18nGlobale.getString(I18n.var_requeteApi), ".setPk(Long.parseLong(responseBody.getString(\"pk\")));"); - tl(7, i18nGlobale.getString(I18n.var_gestionnaireEvenements), ".handle(Future.succeededFuture(ServiceResponse.completedWithJson(Buffer.buffer(responseBody.encodePrettily()))));"); - tl(7, "LOG.debug(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_réussi), ". \"));"); - tl(6, "}).onFailure(ex -> {"); - tl(7, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \"), ex);"); - tl(7, i18nGlobale.getString(I18n.var_erreur), "(", i18nGlobale.getString(I18n.var_requeteSite), ", ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); - tl(6, "});"); - } - else if(classeApiMethode.contains("DELETE")) { - tl(6, i18nGlobale.getString(I18n.var_rechercher), classeApiClasseNomSimple, i18nGlobale.getString(I18n.var_Liste), "(", i18nGlobale.getString(I18n.var_requeteSite), ", ", (classeModele ? "false, true" : "true, false"), ", true).onSuccess(", i18nGlobale.getString(I18n.var_liste), classeNomSimple, " -> {"); - tl(7, "try {"); - Integer tBase; - tBase = 0; - tl(tBase + 8, classePartsRequeteApi.nomSimple(classeLangueNom), " ", i18nGlobale.getString(I18n.var_requeteApi), " = new ", classePartsRequeteApi.nomSimple(classeLangueNom), "();"); - tl(tBase + 8, i18nGlobale.getString(I18n.var_requeteApi), ".setRows(", i18nGlobale.getString(I18n.var_liste), classeNomSimple, ".getRequest().getRows());"); - tl(tBase + 8, i18nGlobale.getString(I18n.var_requeteApi), ".setNumFound(", i18nGlobale.getString(I18n.var_liste), classeNomSimple, ".getResponse().getResponse().getNumFound());"); - tl(tBase + 8, i18nGlobale.getString(I18n.var_requeteApi), ".setNumPATCH(0L);"); - tl(tBase + 8, i18nGlobale.getString(I18n.var_requeteApi), ".", i18nGlobale.getString(I18n.var_initLoin), classePartsRequeteApi.nomSimple(classeLangueNom), "(", i18nGlobale.getString(I18n.var_requeteSite), ");"); - tl(tBase + 8, i18nGlobale.getString(I18n.var_requeteSite), ".set", i18nGlobale.getString(I18n.var_RequeteApi), "_(", i18nGlobale.getString(I18n.var_requeteApi), ");"); - tl(tBase + 8, "if(", i18nGlobale.getString(I18n.var_requeteApi), ".getNumFound() == 1L)"); - tl(tBase + 9, i18nGlobale.getString(I18n.var_requeteApi), ".setOriginal(", i18nGlobale.getString(I18n.var_liste), classeNomSimple, ".first());"); - if(classeModele) - tl(tBase + 8, i18nGlobale.getString(I18n.var_requeteApi), ".setPk(Optional.ofNullable(", i18nGlobale.getString(I18n.var_liste), classeNomSimple, ".first()).map(o2 -> o2.get", StringUtils.capitalize(classeVarClePrimaire), "()).orElse(null));"); - tl(tBase + 8, "eventBus.publish(\"websocket", classeNomSimple, "\", JsonObject.mapFrom(", i18nGlobale.getString(I18n.var_requeteApi), ").toString());"); - l(); - tl(tBase + 8, i18nGlobale.getString(I18n.var_liste), classeApiMethode, classeNomSimple, "(", i18nGlobale.getString(I18n.var_requeteApi), ", ", i18nGlobale.getString(I18n.var_liste), classeNomSimple, ").onSuccess(e -> {"); - tl(tBase + 9, i18nGlobale.getString(I18n.var_reponse), "200", classeApiMethode, classeNomSimple, "(", i18nGlobale.getString(I18n.var_requeteSite), ").onSuccess(", i18nGlobale.getString(I18n.var_reponse), " -> {"); - tl(tBase + 10, "LOG.debug(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_réussi), ". \"));"); - tl(tBase + 10, i18nGlobale.getString(I18n.var_gestionnaireEvenements), ".handle(Future.succeededFuture(", i18nGlobale.getString(I18n.var_reponse), "));"); - tl(tBase + 9, "}).onFailure(ex -> {"); - tl(tBase + 10, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \"), ex);"); - tl(tBase + 10, i18nGlobale.getString(I18n.var_erreur), "(", i18nGlobale.getString(I18n.var_requeteSite), ", ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); - tl(tBase + 9, "});"); - tl(tBase + 8, "}).onFailure(ex -> {"); - tl(tBase + 9, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \"), ex);"); - tl(tBase + 9, i18nGlobale.getString(I18n.var_erreur), "(", i18nGlobale.getString(I18n.var_requeteSite), ", ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); - tl(tBase + 8, "});"); - tl(7, "} catch(Exception ex) {"); - tl(8, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \"), ex);"); - tl(8, i18nGlobale.getString(I18n.var_erreur), "(", i18nGlobale.getString(I18n.var_requeteSite), ", ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); - tl(7, "}"); - tl(6, "}).onFailure(ex -> {"); - tl(7, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \"), ex);"); - tl(7, i18nGlobale.getString(I18n.var_erreur), "(", i18nGlobale.getString(I18n.var_requeteSite), ", ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); - tl(6, "});"); - } - else if(classeApiMethode.contains("PATCH")) { - tl(6, i18nGlobale.getString(I18n.var_rechercher), classeApiClasseNomSimple, i18nGlobale.getString(I18n.var_Liste), "(", i18nGlobale.getString(I18n.var_requeteSite), ", ", (classeModele ? "false, true" : "true, false"), ", true).onSuccess(", i18nGlobale.getString(I18n.var_liste), classeNomSimple, " -> {"); - tl(7, "try {"); - Integer tBase; - tBase = 0; - tl(tBase + 8, classePartsRequeteApi.nomSimple(classeLangueNom), " ", i18nGlobale.getString(I18n.var_requeteApi), " = new ", classePartsRequeteApi.nomSimple(classeLangueNom), "();"); - tl(tBase + 8, i18nGlobale.getString(I18n.var_requeteApi), ".setRows(", i18nGlobale.getString(I18n.var_liste), classeNomSimple, ".getRequest().getRows());"); - tl(tBase + 8, i18nGlobale.getString(I18n.var_requeteApi), ".setNumFound(", i18nGlobale.getString(I18n.var_liste), classeNomSimple, ".getResponse().getResponse().getNumFound());"); - tl(tBase + 8, i18nGlobale.getString(I18n.var_requeteApi), ".setNumPATCH(0L);"); - tl(tBase + 8, i18nGlobale.getString(I18n.var_requeteApi), ".", i18nGlobale.getString(I18n.var_initLoin), classePartsRequeteApi.nomSimple(classeLangueNom), "(", i18nGlobale.getString(I18n.var_requeteSite), ");"); - tl(tBase + 8, i18nGlobale.getString(I18n.var_requeteSite), ".set", i18nGlobale.getString(I18n.var_RequeteApi), "_(", i18nGlobale.getString(I18n.var_requeteApi), ");"); - tl(tBase + 8, "if(", i18nGlobale.getString(I18n.var_requeteApi), ".getNumFound() == 1L)"); - tl(tBase + 9, i18nGlobale.getString(I18n.var_requeteApi), ".setOriginal(", i18nGlobale.getString(I18n.var_liste), classeNomSimple, ".first());"); - if(classeModele) - tl(tBase + 8, i18nGlobale.getString(I18n.var_requeteApi), ".setPk(Optional.ofNullable(", i18nGlobale.getString(I18n.var_liste), classeNomSimple, ".first()).map(o2 -> o2.get", StringUtils.capitalize(classeVarClePrimaire), "()).orElse(null));"); - tl(tBase + 8, "eventBus.publish(\"websocket", classeNomSimple, "\", JsonObject.mapFrom(", i18nGlobale.getString(I18n.var_requeteApi), ").toString());"); - l(); - tl(tBase + 8, i18nGlobale.getString(I18n.var_liste), classeApiMethode, classeNomSimple, "(", i18nGlobale.getString(I18n.var_requeteApi), ", ", i18nGlobale.getString(I18n.var_liste), classeNomSimple, ").onSuccess(e -> {"); - tl(tBase + 9, i18nGlobale.getString(I18n.var_reponse), "200", classeApiMethode, classeNomSimple, "(", i18nGlobale.getString(I18n.var_requeteSite), ").onSuccess(", i18nGlobale.getString(I18n.var_reponse), " -> {"); - tl(tBase + 10, "LOG.debug(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_réussi), ". \"));"); - tl(tBase + 10, i18nGlobale.getString(I18n.var_gestionnaireEvenements), ".handle(Future.succeededFuture(", i18nGlobale.getString(I18n.var_reponse), "));"); - tl(tBase + 9, "}).onFailure(ex -> {"); - tl(tBase + 10, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \"), ex);"); - tl(tBase + 10, i18nGlobale.getString(I18n.var_erreur), "(", i18nGlobale.getString(I18n.var_requeteSite), ", ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); - tl(tBase + 9, "});"); - tl(tBase + 8, "}).onFailure(ex -> {"); - tl(tBase + 9, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \"), ex);"); - tl(tBase + 9, i18nGlobale.getString(I18n.var_erreur), "(", i18nGlobale.getString(I18n.var_requeteSite), ", ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); - tl(tBase + 8, "});"); - tl(7, "} catch(Exception ex) {"); - tl(8, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \"), ex);"); - tl(8, i18nGlobale.getString(I18n.var_erreur), "(", i18nGlobale.getString(I18n.var_requeteSite), ", ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); - tl(7, "}"); - tl(6, "}).onFailure(ex -> {"); - tl(7, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \"), ex);"); - tl(7, i18nGlobale.getString(I18n.var_erreur), "(", i18nGlobale.getString(I18n.var_requeteSite), ", ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); - tl(6, "});"); - } - else if(classePageAvecTemplateMethode || classeApiMethode.contains(i18nGlobale.getString(I18n.var_Recherche))) { - tl(6, i18nGlobale.getString(I18n.var_rechercher), classeApiClasseNomSimple, i18nGlobale.getString(I18n.var_Liste), "(", i18nGlobale.getString(I18n.var_requeteSite), ", false, true, false).onSuccess(", i18nGlobale.getString(I18n.var_liste), classeNomSimple, " -> {"); - tl(7, i18nGlobale.getString(I18n.var_reponse), "200", classeApiMethode, classeNomSimple, "(", i18nGlobale.getString(I18n.var_liste), classeNomSimple, ").onSuccess(", i18nGlobale.getString(I18n.var_reponse), " -> {"); - tl(8, i18nGlobale.getString(I18n.var_gestionnaireEvenements), ".handle(Future.succeededFuture(", i18nGlobale.getString(I18n.var_reponse), "));"); - tl(8, "LOG.debug(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_réussi), ". \"));"); - tl(7, "}).onFailure(ex -> {"); - tl(8, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \"), ex);"); - tl(8, i18nGlobale.getString(I18n.var_erreur), "(", i18nGlobale.getString(I18n.var_requeteSite), ", ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); - tl(7, "});"); - tl(6, "}).onFailure(ex -> {"); - tl(7, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \"), ex);"); - tl(7, i18nGlobale.getString(I18n.var_erreur), "(", i18nGlobale.getString(I18n.var_requeteSite), ", ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); - tl(6, "});"); - } - else if(classeApiMethode.contains("GET")) { - tl(6, i18nGlobale.getString(I18n.var_rechercher), classeApiClasseNomSimple, i18nGlobale.getString(I18n.var_Liste), "(", i18nGlobale.getString(I18n.var_requeteSite), ", false, true, false).onSuccess(", i18nGlobale.getString(I18n.var_liste), classeNomSimple, " -> {"); - tl(7, i18nGlobale.getString(I18n.var_reponse), "200", classeApiMethode, classeNomSimple, "(", i18nGlobale.getString(I18n.var_liste), classeNomSimple, ").onSuccess(", i18nGlobale.getString(I18n.var_reponse), " -> {"); - tl(8, i18nGlobale.getString(I18n.var_gestionnaireEvenements), ".handle(Future.succeededFuture(", i18nGlobale.getString(I18n.var_reponse), "));"); - tl(8, "LOG.debug(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_réussi), ". \"));"); - tl(7, "}).onFailure(ex -> {"); - tl(8, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \"), ex);"); - tl(8, i18nGlobale.getString(I18n.var_erreur), "(", i18nGlobale.getString(I18n.var_requeteSite), ", ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); - tl(7, "});"); - tl(6, "}).onFailure(ex -> {"); - tl(7, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \"), ex);"); - tl(7, i18nGlobale.getString(I18n.var_erreur), "(", i18nGlobale.getString(I18n.var_requeteSite), ", ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); - tl(6, "});"); - } - else if(classeApiMethode.equals(i18nGlobale.getString(I18n.var_PUTCopie))) { - tl(6, i18nGlobale.getString(I18n.var_rechercher), classeApiClasseNomSimple, i18nGlobale.getString(I18n.var_Liste), "(", i18nGlobale.getString(I18n.var_requeteSite), ", false, true, true).onSuccess(", i18nGlobale.getString(I18n.var_liste), classeNomSimple, " -> {"); - tl(7, classePartsRequeteApi.nomSimple(classeLangueNom), " ", i18nGlobale.getString(I18n.var_requeteApi), " = new ", classePartsRequeteApi.nomSimple(classeLangueNom), "();"); - tl(7, i18nGlobale.getString(I18n.var_requeteApi), ".setRows(", i18nGlobale.getString(I18n.var_liste), classeNomSimple, ".getRequest().getRows());"); - tl(7, i18nGlobale.getString(I18n.var_requeteApi), ".setNumFound(", i18nGlobale.getString(I18n.var_liste), classeNomSimple, ".getResponse().getResponse().getNumFound());"); - tl(7, i18nGlobale.getString(I18n.var_requeteApi), ".setNumPATCH(0L);"); - tl(7, i18nGlobale.getString(I18n.var_requeteApi), ".", i18nGlobale.getString(I18n.var_initLoin), classePartsRequeteApi.nomSimple(classeLangueNom), "(", i18nGlobale.getString(I18n.var_requeteSite), ");"); - tl(7, i18nGlobale.getString(I18n.var_requeteSite), ".set", i18nGlobale.getString(I18n.var_RequeteApi), "_(", i18nGlobale.getString(I18n.var_requeteApi), ");"); - tl(7, "eventBus.publish(\"websocket", classeNomSimple, "\", JsonObject.mapFrom(", i18nGlobale.getString(I18n.var_requeteApi), ").toString());"); - tl(7, i18nGlobale.getString(I18n.var_liste), classeApiMethode, classeNomSimple, "(", i18nGlobale.getString(I18n.var_requeteApi), ", ", i18nGlobale.getString(I18n.var_liste), classeNomSimple, ").onSuccess(o -> {"); - tl(8, i18nGlobale.getString(I18n.var_reponse), "200", classeApiMethode, classeNomSimple, "(o).onSuccess(", i18nGlobale.getString(I18n.var_reponse), " -> {"); - tl(9, "LOG.debug(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_réussi), ". \"));"); - tl(9, i18nGlobale.getString(I18n.var_gestionnaireEvenements), ".handle(Future.succeededFuture(", i18nGlobale.getString(I18n.var_reponse), "));"); - tl(8, "}).onFailure(ex -> {"); - tl(9, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \"), ex);"); - tl(9, i18nGlobale.getString(I18n.var_erreur), "(", i18nGlobale.getString(I18n.var_requeteSite), ", ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); - tl(8, "});"); - tl(7, "}).onFailure(ex -> {"); - tl(8, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \"), ex);"); - tl(8, i18nGlobale.getString(I18n.var_erreur), "(", i18nGlobale.getString(I18n.var_requeteSite), ", ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); - tl(7, "});"); - tl(6, "}).onFailure(ex -> {"); - tl(7, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \"), ex);"); - tl(7, i18nGlobale.getString(I18n.var_erreur), "(", i18nGlobale.getString(I18n.var_requeteSite), ", ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); - tl(6, "});"); - } - else if(classeApiMethode.equals(i18nGlobale.getString(I18n.var_PUTFusion)) || classeApiMethode.equals("PUTImport")) { - tl(6, classePartsRequeteApi.nomSimple(classeLangueNom), " ", i18nGlobale.getString(I18n.var_requeteApi), " = new ", classePartsRequeteApi.nomSimple(classeLangueNom), "();"); - tl(6, "JsonArray jsonArray = Optional.ofNullable(", i18nGlobale.getString(I18n.var_requeteSite), ".get", i18nGlobale.getString(I18n.var_ObjetJson), "()).map(o -> o.getJsonArray(\"list\")).orElse(new JsonArray());"); - tl(6, i18nGlobale.getString(I18n.var_requeteApi), ".setRows(Long.valueOf(jsonArray.size()));"); - tl(6, i18nGlobale.getString(I18n.var_requeteApi), ".setNumFound(Long.valueOf(jsonArray.size()));"); - tl(6, i18nGlobale.getString(I18n.var_requeteApi), ".setNumPATCH(0L);"); - tl(6, i18nGlobale.getString(I18n.var_requeteApi), ".", i18nGlobale.getString(I18n.var_initLoin), classePartsRequeteApi.nomSimple(classeLangueNom), "(", i18nGlobale.getString(I18n.var_requeteSite), ");"); - tl(6, i18nGlobale.getString(I18n.var_requeteSite), ".set", i18nGlobale.getString(I18n.var_RequeteApi), "_(", i18nGlobale.getString(I18n.var_requeteApi), ");"); - tl(6, "eventBus.publish(\"websocket", classeNomSimple, "\", JsonObject.mapFrom(", i18nGlobale.getString(I18n.var_requeteApi), ").toString());"); - tl(6, "vars", classeNomSimple, "(", i18nGlobale.getString(I18n.var_requeteSite), ").onSuccess(d -> {"); - tl(7, i18nGlobale.getString(I18n.var_liste), classeApiMethode, classeNomSimple, "(", i18nGlobale.getString(I18n.var_requeteApi), ", ", i18nGlobale.getString(I18n.var_requeteSite), ").onSuccess(e -> {"); - tl(8, i18nGlobale.getString(I18n.var_reponse), "200", classeApiMethode, classeNomSimple, "(", i18nGlobale.getString(I18n.var_requeteSite), ").onSuccess(", i18nGlobale.getString(I18n.var_reponse), " -> {"); - tl(9, "LOG.debug(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_réussi), ". \"));"); - tl(9, i18nGlobale.getString(I18n.var_gestionnaireEvenements), ".handle(Future.succeededFuture(", i18nGlobale.getString(I18n.var_reponse), "));"); - tl(8, "}).onFailure(ex -> {"); - tl(9, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \"), ex);"); - tl(9, i18nGlobale.getString(I18n.var_erreur), "(", i18nGlobale.getString(I18n.var_requeteSite), ", ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); - tl(8, "});"); - tl(7, "}).onFailure(ex -> {"); - tl(8, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \"), ex);"); - tl(8, i18nGlobale.getString(I18n.var_erreur), "(", i18nGlobale.getString(I18n.var_requeteSite), ", ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); - tl(7, "});"); - tl(6, "}).onFailure(ex -> {"); - tl(7, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \"), ex);"); - tl(7, i18nGlobale.getString(I18n.var_erreur), "(", i18nGlobale.getString(I18n.var_requeteSite), ", ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); - tl(6, "});"); - } - else { - tl(6, i18nGlobale.getString(I18n.var_reponse), "200", classeApiMethode, classeNomSimple, "(", i18nGlobale.getString(I18n.var_requeteSite), ").onSuccess(", i18nGlobale.getString(I18n.var_reponse), " -> {"); - tl(7, i18nGlobale.getString(I18n.var_gestionnaireEvenements), ".handle(Future.succeededFuture(", i18nGlobale.getString(I18n.var_reponse), "));"); - tl(7, "LOG.debug(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_réussi), ". \"));"); - tl(6, "}).onFailure(ex -> {"); - tl(7, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \", ex));"); - tl(7, i18nGlobale.getString(I18n.var_erreur), "(", i18nGlobale.getString(I18n.var_requeteSite), ", ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); - tl(6, "});"); - } + tl(6, classePartsRequeteApi.nomSimple(classeLangueNom), " ", i18nGlobale.getString(I18n.var_requeteApi), " = new ", classePartsRequeteApi.nomSimple(classeLangueNom), "();"); + tl(6, i18nGlobale.getString(I18n.var_requeteApi), ".setRows(1L);"); + tl(6, i18nGlobale.getString(I18n.var_requeteApi), ".setNumFound(1L);"); + tl(6, i18nGlobale.getString(I18n.var_requeteApi), ".setNumPATCH(0L);"); + tl(6, i18nGlobale.getString(I18n.var_requeteApi), ".", i18nGlobale.getString(I18n.var_initLoin), classePartsRequeteApi.nomSimple(classeLangueNom), "(", i18nGlobale.getString(I18n.var_requeteSite), ");"); + tl(6, i18nGlobale.getString(I18n.var_requeteSite), ".set", i18nGlobale.getString(I18n.var_RequeteApi), "_(", i18nGlobale.getString(I18n.var_requeteApi), ");"); + tl(6, "eventBus.publish(\"websocket", classeNomSimple, "\", JsonObject.mapFrom(", i18nGlobale.getString(I18n.var_requeteApi), ").toString());"); + tl(6, "JsonObject params = new JsonObject();"); + tl(6, "params.put(\"body\", ", i18nGlobale.getString(I18n.var_requeteSite), ".getJsonObject());"); + tl(6, "params.put(\"path\", new JsonObject());"); + tl(6, "params.put(\"cookie\", new JsonObject());"); + tl(6, "params.put(\"header\", ", i18nGlobale.getString(I18n.var_requeteSite), ".get", i18nGlobale.getString(I18n.var_RequeteService), "().getParams().getJsonObject(\"header\"));"); + tl(6, "params.put(\"form\", new JsonObject());"); + tl(6, "JsonObject query = new JsonObject();"); + tl(6, "Boolean softCommit = Optional.ofNullable(", i18nGlobale.getString(I18n.var_requeteSite), ".get", i18nGlobale.getString(I18n.var_RequeteService), "().getParams()).map(p -> p.getJsonObject(\"query\")).map( q -> q.getBoolean(\"softCommit\")).orElse(null);"); + tl(6, "Integer commitWithin = Optional.ofNullable(", i18nGlobale.getString(I18n.var_requeteSite), ".get", i18nGlobale.getString(I18n.var_RequeteService), "().getParams()).map(p -> p.getJsonObject(\"query\")).map( q -> q.getInteger(\"commitWithin\")).orElse(null);"); + tl(6, "if(softCommit == null && commitWithin == null)"); + tl(7, "softCommit = true;"); + tl(6, "if(softCommit != null)"); + tl(7, "query.put(\"softCommit\", softCommit);"); + tl(6, "if(commitWithin != null)"); + tl(7, "query.put(\"commitWithin\", commitWithin);"); + tl(6, "params.put(\"query\", query);"); + tl(6, "JsonObject context = new JsonObject().put(\"params\", params).put(\"user\", ", i18nGlobale.getString(I18n.var_requeteSite), ".getUserPrincipal());"); + tl(6, "JsonObject json = new JsonObject().put(\"context\", context);"); + tl(6, "eventBus.request(", classeNomSimple, ".get", i18nGlobale.getString(I18n.var_ClasseApiAddresse), "(), json, new DeliveryOptions().addHeader(\"action\", \"", classeApiOperationIdMethode, "Future\")).onSuccess(a -> {"); + tl(7, "JsonObject responseMessage = (JsonObject)a.body();"); + tl(7, "JsonObject responseBody = new JsonObject(Buffer.buffer(JsonUtil.BASE64_DECODER.decode(responseMessage.getString(\"payload\"))));"); + if(classeModele) + tl(7, i18nGlobale.getString(I18n.var_requeteApi), ".setPk(Long.parseLong(responseBody.getString(\"pk\")));"); + tl(7, i18nGlobale.getString(I18n.var_gestionnaireEvenements), ".handle(Future.succeededFuture(ServiceResponse.completedWithJson(Buffer.buffer(responseBody.encodePrettily()))));"); + tl(7, "LOG.debug(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_réussi), ". \"));"); + tl(6, "}).onFailure(ex -> {"); + tl(7, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \"), ex);"); + tl(7, i18nGlobale.getString(I18n.var_erreur), "(", i18nGlobale.getString(I18n.var_requeteSite), ", ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); + tl(6, "});"); + } + else if(classeApiMethode.contains("DELETE")) { + tl(6, i18nGlobale.getString(I18n.var_rechercher), classeApiClasseNomSimple, i18nGlobale.getString(I18n.var_Liste), "(", i18nGlobale.getString(I18n.var_requeteSite), ", ", (classeModele ? "false, true" : "true, false"), ", true).onSuccess(", i18nGlobale.getString(I18n.var_liste), classeNomSimple, " -> {"); + tl(7, "try {"); + Integer tBase; + tBase = 0; + tl(tBase + 8, classePartsRequeteApi.nomSimple(classeLangueNom), " ", i18nGlobale.getString(I18n.var_requeteApi), " = new ", classePartsRequeteApi.nomSimple(classeLangueNom), "();"); + tl(tBase + 8, i18nGlobale.getString(I18n.var_requeteApi), ".setRows(", i18nGlobale.getString(I18n.var_liste), classeNomSimple, ".getRequest().getRows());"); + tl(tBase + 8, i18nGlobale.getString(I18n.var_requeteApi), ".setNumFound(", i18nGlobale.getString(I18n.var_liste), classeNomSimple, ".getResponse().getResponse().getNumFound());"); + tl(tBase + 8, i18nGlobale.getString(I18n.var_requeteApi), ".setNumPATCH(0L);"); + tl(tBase + 8, i18nGlobale.getString(I18n.var_requeteApi), ".", i18nGlobale.getString(I18n.var_initLoin), classePartsRequeteApi.nomSimple(classeLangueNom), "(", i18nGlobale.getString(I18n.var_requeteSite), ");"); + tl(tBase + 8, i18nGlobale.getString(I18n.var_requeteSite), ".set", i18nGlobale.getString(I18n.var_RequeteApi), "_(", i18nGlobale.getString(I18n.var_requeteApi), ");"); + tl(tBase + 8, "if(", i18nGlobale.getString(I18n.var_requeteApi), ".getNumFound() == 1L)"); + tl(tBase + 9, i18nGlobale.getString(I18n.var_requeteApi), ".setOriginal(", i18nGlobale.getString(I18n.var_liste), classeNomSimple, ".first());"); + if(classeModele) + tl(tBase + 8, i18nGlobale.getString(I18n.var_requeteApi), ".setPk(Optional.ofNullable(", i18nGlobale.getString(I18n.var_liste), classeNomSimple, ".first()).map(o2 -> o2.get", StringUtils.capitalize(classeVarClePrimaire), "()).orElse(null));"); + tl(tBase + 8, "eventBus.publish(\"websocket", classeNomSimple, "\", JsonObject.mapFrom(", i18nGlobale.getString(I18n.var_requeteApi), ").toString());"); + l(); + tl(tBase + 8, i18nGlobale.getString(I18n.var_liste), classeApiMethode, classeNomSimple, "(", i18nGlobale.getString(I18n.var_requeteApi), ", ", i18nGlobale.getString(I18n.var_liste), classeNomSimple, ").onSuccess(e -> {"); + tl(tBase + 9, i18nGlobale.getString(I18n.var_reponse), "200", classeApiMethode, classeNomSimple, "(", i18nGlobale.getString(I18n.var_requeteSite), ").onSuccess(", i18nGlobale.getString(I18n.var_reponse), " -> {"); + tl(tBase + 10, "LOG.debug(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_réussi), ". \"));"); + tl(tBase + 10, i18nGlobale.getString(I18n.var_gestionnaireEvenements), ".handle(Future.succeededFuture(", i18nGlobale.getString(I18n.var_reponse), "));"); + tl(tBase + 9, "}).onFailure(ex -> {"); + tl(tBase + 10, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \"), ex);"); + tl(tBase + 10, i18nGlobale.getString(I18n.var_erreur), "(", i18nGlobale.getString(I18n.var_requeteSite), ", ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); + tl(tBase + 9, "});"); + tl(tBase + 8, "}).onFailure(ex -> {"); + tl(tBase + 9, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \"), ex);"); + tl(tBase + 9, i18nGlobale.getString(I18n.var_erreur), "(", i18nGlobale.getString(I18n.var_requeteSite), ", ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); + tl(tBase + 8, "});"); + tl(7, "} catch(Exception ex) {"); + tl(8, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \"), ex);"); + tl(8, i18nGlobale.getString(I18n.var_erreur), "(", i18nGlobale.getString(I18n.var_requeteSite), ", ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); + tl(7, "}"); + tl(6, "}).onFailure(ex -> {"); + tl(7, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \"), ex);"); + tl(7, i18nGlobale.getString(I18n.var_erreur), "(", i18nGlobale.getString(I18n.var_requeteSite), ", ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); + tl(6, "});"); + } + else if(classeApiMethode.contains("PATCH")) { + tl(6, i18nGlobale.getString(I18n.var_rechercher), classeApiClasseNomSimple, i18nGlobale.getString(I18n.var_Liste), "(", i18nGlobale.getString(I18n.var_requeteSite), ", ", (classeModele ? "false, true" : "true, false"), ", true).onSuccess(", i18nGlobale.getString(I18n.var_liste), classeNomSimple, " -> {"); + tl(7, "try {"); + Integer tBase; + tBase = 0; + tl(tBase + 8, classePartsRequeteApi.nomSimple(classeLangueNom), " ", i18nGlobale.getString(I18n.var_requeteApi), " = new ", classePartsRequeteApi.nomSimple(classeLangueNom), "();"); + tl(tBase + 8, i18nGlobale.getString(I18n.var_requeteApi), ".setRows(", i18nGlobale.getString(I18n.var_liste), classeNomSimple, ".getRequest().getRows());"); + tl(tBase + 8, i18nGlobale.getString(I18n.var_requeteApi), ".setNumFound(", i18nGlobale.getString(I18n.var_liste), classeNomSimple, ".getResponse().getResponse().getNumFound());"); + tl(tBase + 8, i18nGlobale.getString(I18n.var_requeteApi), ".setNumPATCH(0L);"); + tl(tBase + 8, i18nGlobale.getString(I18n.var_requeteApi), ".", i18nGlobale.getString(I18n.var_initLoin), classePartsRequeteApi.nomSimple(classeLangueNom), "(", i18nGlobale.getString(I18n.var_requeteSite), ");"); + tl(tBase + 8, i18nGlobale.getString(I18n.var_requeteSite), ".set", i18nGlobale.getString(I18n.var_RequeteApi), "_(", i18nGlobale.getString(I18n.var_requeteApi), ");"); + tl(tBase + 8, "if(", i18nGlobale.getString(I18n.var_requeteApi), ".getNumFound() == 1L)"); + tl(tBase + 9, i18nGlobale.getString(I18n.var_requeteApi), ".setOriginal(", i18nGlobale.getString(I18n.var_liste), classeNomSimple, ".first());"); + if(classeModele) + tl(tBase + 8, i18nGlobale.getString(I18n.var_requeteApi), ".setPk(Optional.ofNullable(", i18nGlobale.getString(I18n.var_liste), classeNomSimple, ".first()).map(o2 -> o2.get", StringUtils.capitalize(classeVarClePrimaire), "()).orElse(null));"); + tl(tBase + 8, "eventBus.publish(\"websocket", classeNomSimple, "\", JsonObject.mapFrom(", i18nGlobale.getString(I18n.var_requeteApi), ").toString());"); + l(); + tl(tBase + 8, i18nGlobale.getString(I18n.var_liste), classeApiMethode, classeNomSimple, "(", i18nGlobale.getString(I18n.var_requeteApi), ", ", i18nGlobale.getString(I18n.var_liste), classeNomSimple, ").onSuccess(e -> {"); + tl(tBase + 9, i18nGlobale.getString(I18n.var_reponse), "200", classeApiMethode, classeNomSimple, "(", i18nGlobale.getString(I18n.var_requeteSite), ").onSuccess(", i18nGlobale.getString(I18n.var_reponse), " -> {"); + tl(tBase + 10, "LOG.debug(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_réussi), ". \"));"); + tl(tBase + 10, i18nGlobale.getString(I18n.var_gestionnaireEvenements), ".handle(Future.succeededFuture(", i18nGlobale.getString(I18n.var_reponse), "));"); + tl(tBase + 9, "}).onFailure(ex -> {"); + tl(tBase + 10, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \"), ex);"); + tl(tBase + 10, i18nGlobale.getString(I18n.var_erreur), "(", i18nGlobale.getString(I18n.var_requeteSite), ", ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); + tl(tBase + 9, "});"); + tl(tBase + 8, "}).onFailure(ex -> {"); + tl(tBase + 9, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \"), ex);"); + tl(tBase + 9, i18nGlobale.getString(I18n.var_erreur), "(", i18nGlobale.getString(I18n.var_requeteSite), ", ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); + tl(tBase + 8, "});"); + tl(7, "} catch(Exception ex) {"); + tl(8, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \"), ex);"); + tl(8, i18nGlobale.getString(I18n.var_erreur), "(", i18nGlobale.getString(I18n.var_requeteSite), ", ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); + tl(7, "}"); + tl(6, "}).onFailure(ex -> {"); + tl(7, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \"), ex);"); + tl(7, i18nGlobale.getString(I18n.var_erreur), "(", i18nGlobale.getString(I18n.var_requeteSite), ", ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); + tl(6, "});"); + } + else if(classePageAvecTemplateMethode || classeApiMethode.contains(i18nGlobale.getString(I18n.var_Recherche))) { + tl(6, i18nGlobale.getString(I18n.var_rechercher), classeApiClasseNomSimple, i18nGlobale.getString(I18n.var_Liste), "(", i18nGlobale.getString(I18n.var_requeteSite), ", false, true, false).onSuccess(", i18nGlobale.getString(I18n.var_liste), classeNomSimple, " -> {"); + tl(7, i18nGlobale.getString(I18n.var_reponse), "200", classeApiMethode, classeNomSimple, "(", i18nGlobale.getString(I18n.var_liste), classeNomSimple, ").onSuccess(", i18nGlobale.getString(I18n.var_reponse), " -> {"); + tl(8, i18nGlobale.getString(I18n.var_gestionnaireEvenements), ".handle(Future.succeededFuture(", i18nGlobale.getString(I18n.var_reponse), "));"); + tl(8, "LOG.debug(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_réussi), ". \"));"); + tl(7, "}).onFailure(ex -> {"); + tl(8, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \"), ex);"); + tl(8, i18nGlobale.getString(I18n.var_erreur), "(", i18nGlobale.getString(I18n.var_requeteSite), ", ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); + tl(7, "});"); + tl(6, "}).onFailure(ex -> {"); + tl(7, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \"), ex);"); + tl(7, i18nGlobale.getString(I18n.var_erreur), "(", i18nGlobale.getString(I18n.var_requeteSite), ", ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); + tl(6, "});"); + } + else if(classeApiMethode.contains("GET")) { + tl(6, i18nGlobale.getString(I18n.var_rechercher), classeApiClasseNomSimple, i18nGlobale.getString(I18n.var_Liste), "(", i18nGlobale.getString(I18n.var_requeteSite), ", false, true, false).onSuccess(", i18nGlobale.getString(I18n.var_liste), classeNomSimple, " -> {"); + tl(7, i18nGlobale.getString(I18n.var_reponse), "200", classeApiMethode, classeNomSimple, "(", i18nGlobale.getString(I18n.var_liste), classeNomSimple, ").onSuccess(", i18nGlobale.getString(I18n.var_reponse), " -> {"); + tl(8, i18nGlobale.getString(I18n.var_gestionnaireEvenements), ".handle(Future.succeededFuture(", i18nGlobale.getString(I18n.var_reponse), "));"); + tl(8, "LOG.debug(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_réussi), ". \"));"); + tl(7, "}).onFailure(ex -> {"); + tl(8, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \"), ex);"); + tl(8, i18nGlobale.getString(I18n.var_erreur), "(", i18nGlobale.getString(I18n.var_requeteSite), ", ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); + tl(7, "});"); + tl(6, "}).onFailure(ex -> {"); + tl(7, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \"), ex);"); + tl(7, i18nGlobale.getString(I18n.var_erreur), "(", i18nGlobale.getString(I18n.var_requeteSite), ", ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); + tl(6, "});"); + } + else if(classeApiMethode.equals(i18nGlobale.getString(I18n.var_PUTCopie))) { + tl(6, i18nGlobale.getString(I18n.var_rechercher), classeApiClasseNomSimple, i18nGlobale.getString(I18n.var_Liste), "(", i18nGlobale.getString(I18n.var_requeteSite), ", false, true, true).onSuccess(", i18nGlobale.getString(I18n.var_liste), classeNomSimple, " -> {"); + tl(7, classePartsRequeteApi.nomSimple(classeLangueNom), " ", i18nGlobale.getString(I18n.var_requeteApi), " = new ", classePartsRequeteApi.nomSimple(classeLangueNom), "();"); + tl(7, i18nGlobale.getString(I18n.var_requeteApi), ".setRows(", i18nGlobale.getString(I18n.var_liste), classeNomSimple, ".getRequest().getRows());"); + tl(7, i18nGlobale.getString(I18n.var_requeteApi), ".setNumFound(", i18nGlobale.getString(I18n.var_liste), classeNomSimple, ".getResponse().getResponse().getNumFound());"); + tl(7, i18nGlobale.getString(I18n.var_requeteApi), ".setNumPATCH(0L);"); + tl(7, i18nGlobale.getString(I18n.var_requeteApi), ".", i18nGlobale.getString(I18n.var_initLoin), classePartsRequeteApi.nomSimple(classeLangueNom), "(", i18nGlobale.getString(I18n.var_requeteSite), ");"); + tl(7, i18nGlobale.getString(I18n.var_requeteSite), ".set", i18nGlobale.getString(I18n.var_RequeteApi), "_(", i18nGlobale.getString(I18n.var_requeteApi), ");"); + tl(7, "eventBus.publish(\"websocket", classeNomSimple, "\", JsonObject.mapFrom(", i18nGlobale.getString(I18n.var_requeteApi), ").toString());"); + tl(7, i18nGlobale.getString(I18n.var_liste), classeApiMethode, classeNomSimple, "(", i18nGlobale.getString(I18n.var_requeteApi), ", ", i18nGlobale.getString(I18n.var_liste), classeNomSimple, ").onSuccess(o -> {"); + tl(8, i18nGlobale.getString(I18n.var_reponse), "200", classeApiMethode, classeNomSimple, "(o).onSuccess(", i18nGlobale.getString(I18n.var_reponse), " -> {"); + tl(9, "LOG.debug(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_réussi), ". \"));"); + tl(9, i18nGlobale.getString(I18n.var_gestionnaireEvenements), ".handle(Future.succeededFuture(", i18nGlobale.getString(I18n.var_reponse), "));"); + tl(8, "}).onFailure(ex -> {"); + tl(9, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \"), ex);"); + tl(9, i18nGlobale.getString(I18n.var_erreur), "(", i18nGlobale.getString(I18n.var_requeteSite), ", ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); + tl(8, "});"); + tl(7, "}).onFailure(ex -> {"); + tl(8, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \"), ex);"); + tl(8, i18nGlobale.getString(I18n.var_erreur), "(", i18nGlobale.getString(I18n.var_requeteSite), ", ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); + tl(7, "});"); + tl(6, "}).onFailure(ex -> {"); + tl(7, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \"), ex);"); + tl(7, i18nGlobale.getString(I18n.var_erreur), "(", i18nGlobale.getString(I18n.var_requeteSite), ", ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); + tl(6, "});"); + } + else if(classeApiMethode.equals(i18nGlobale.getString(I18n.var_PUTFusion)) || classeApiMethode.equals("PUTImport")) { + tl(6, classePartsRequeteApi.nomSimple(classeLangueNom), " ", i18nGlobale.getString(I18n.var_requeteApi), " = new ", classePartsRequeteApi.nomSimple(classeLangueNom), "();"); + tl(6, "JsonArray jsonArray = Optional.ofNullable(", i18nGlobale.getString(I18n.var_requeteSite), ".get", i18nGlobale.getString(I18n.var_ObjetJson), "()).map(o -> o.getJsonArray(\"list\")).orElse(new JsonArray());"); + tl(6, i18nGlobale.getString(I18n.var_requeteApi), ".setRows(Long.valueOf(jsonArray.size()));"); + tl(6, i18nGlobale.getString(I18n.var_requeteApi), ".setNumFound(Long.valueOf(jsonArray.size()));"); + tl(6, i18nGlobale.getString(I18n.var_requeteApi), ".setNumPATCH(0L);"); + tl(6, i18nGlobale.getString(I18n.var_requeteApi), ".", i18nGlobale.getString(I18n.var_initLoin), classePartsRequeteApi.nomSimple(classeLangueNom), "(", i18nGlobale.getString(I18n.var_requeteSite), ");"); + tl(6, i18nGlobale.getString(I18n.var_requeteSite), ".set", i18nGlobale.getString(I18n.var_RequeteApi), "_(", i18nGlobale.getString(I18n.var_requeteApi), ");"); + tl(6, "eventBus.publish(\"websocket", classeNomSimple, "\", JsonObject.mapFrom(", i18nGlobale.getString(I18n.var_requeteApi), ").toString());"); + tl(6, "vars", classeNomSimple, "(", i18nGlobale.getString(I18n.var_requeteSite), ").onSuccess(d -> {"); + tl(7, i18nGlobale.getString(I18n.var_liste), classeApiMethode, classeNomSimple, "(", i18nGlobale.getString(I18n.var_requeteApi), ", ", i18nGlobale.getString(I18n.var_requeteSite), ").onSuccess(e -> {"); + tl(8, i18nGlobale.getString(I18n.var_reponse), "200", classeApiMethode, classeNomSimple, "(", i18nGlobale.getString(I18n.var_requeteSite), ").onSuccess(", i18nGlobale.getString(I18n.var_reponse), " -> {"); + tl(9, "LOG.debug(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_réussi), ". \"));"); + tl(9, i18nGlobale.getString(I18n.var_gestionnaireEvenements), ".handle(Future.succeededFuture(", i18nGlobale.getString(I18n.var_reponse), "));"); + tl(8, "}).onFailure(ex -> {"); + tl(9, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \"), ex);"); + tl(9, i18nGlobale.getString(I18n.var_erreur), "(", i18nGlobale.getString(I18n.var_requeteSite), ", ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); + tl(8, "});"); + tl(7, "}).onFailure(ex -> {"); + tl(8, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \"), ex);"); + tl(8, i18nGlobale.getString(I18n.var_erreur), "(", i18nGlobale.getString(I18n.var_requeteSite), ", ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); + tl(7, "});"); + tl(6, "}).onFailure(ex -> {"); + tl(7, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \"), ex);"); + tl(7, i18nGlobale.getString(I18n.var_erreur), "(", i18nGlobale.getString(I18n.var_requeteSite), ", ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); + tl(6, "});"); + } + else { + tl(6, i18nGlobale.getString(I18n.var_reponse), "200", classeApiMethode, classeNomSimple, "(", i18nGlobale.getString(I18n.var_requeteSite), ").onSuccess(", i18nGlobale.getString(I18n.var_reponse), " -> {"); + tl(7, i18nGlobale.getString(I18n.var_gestionnaireEvenements), ".handle(Future.succeededFuture(", i18nGlobale.getString(I18n.var_reponse), "));"); + tl(7, "LOG.debug(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_réussi), ". \"));"); + tl(6, "}).onFailure(ex -> {"); + tl(7, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \", ex));"); + tl(7, i18nGlobale.getString(I18n.var_erreur), "(", i18nGlobale.getString(I18n.var_requeteSite), ", ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); + tl(6, "});"); + } - if( - StringUtils.containsAny(classeApiMethode, "POST", "PUT", "PATCH", "DELETE") - && !(classeRoleSession || classeRoleUtilisateur || classeRoleChacun) - && ( - classeAuth - ) - || !StringUtils.containsAny(classeApiMethode, "POST", "PUT", "PATCH", "DELETE") && ( - BooleanUtils.isNotTrue(classeRoleSession) - && BooleanUtils.isNotTrue(classePublicLire) - && BooleanUtils.isNotTrue(classePageRecherchePublicLire && classeApiMethode.equals(i18nGlobale.getString(I18n.var_PageRecherche))) - && BooleanUtils.isNotTrue(classeRoleUtilisateur) - && BooleanUtils.isNotTrue(classeRoleChacun) - && classeAuth - ) - ) { - if(authPolitiqueGranulee) { - tl(5, "}"); - tl(4, "} catch(Exception ex) {"); - tl(5, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \"), ex);"); - tl(5, i18nGlobale.getString(I18n.var_erreur), "(null, ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); + if( + StringUtils.containsAny(classeApiMethode, "POST", "PUT", "PATCH", "DELETE") + && !(classeRoleSession || classeRoleUtilisateur || classeRoleChacun) + && ( + classeAuth + ) + || !StringUtils.containsAny(classeApiMethode, "POST", "PUT", "PATCH", "DELETE") && ( + BooleanUtils.isNotTrue(classeRoleSession) + && BooleanUtils.isNotTrue(classePublicLire) + && BooleanUtils.isNotTrue(classePageRecherchePublicLire && classeApiMethode.equals(i18nGlobale.getString(I18n.var_PageRecherche))) + && BooleanUtils.isNotTrue(classeRoleUtilisateur) + && BooleanUtils.isNotTrue(classeRoleChacun) + && classeAuth + ) + ) { + if(authPolitiqueGranulee) { + tl(5, "}"); + tl(4, "} catch(Exception ex) {"); + tl(5, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \"), ex);"); + tl(5, i18nGlobale.getString(I18n.var_erreur), "(null, ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); + tl(4, "}"); + } else { + tl(5, "} catch(Exception ex) {"); + tl(6, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \"), ex);"); + tl(6, i18nGlobale.getString(I18n.var_erreur), "(null, ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); + tl(5, "}"); + tl(4, "}"); + } + tl(3, "});"); + } + + tl(2, "}).onFailure(ex -> {"); + if(activerOpenIdConnect) { + tl(3, "if(\"Inactive Token\".equals(ex.getMessage()) || StringUtils.startsWith(ex.getMessage(), \"invalid_grant:\")) {"); + tl(4, "try {"); + tl(5, i18nGlobale.getString(I18n.var_gestionnaireEvenements), ".handle(Future.succeededFuture(new ServiceResponse(302, \"Found\", null, MultiMap.caseInsensitiveMultiMap().add(HttpHeaders.LOCATION, \"/", i18nGlobale.getString(I18n.var_deconnexion), "?redirect_uri=\" + URLEncoder.encode(serviceRequest.getExtra().getString(\"uri\"), \"UTF-8\")))));"); + tl(4, "} catch(Exception ex2) {"); + tl(5, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \", ex2));"); + tl(5, i18nGlobale.getString(I18n.var_erreur), "(null, ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex2);"); tl(4, "}"); + tl(3, "} else if(StringUtils.startsWith(ex.getMessage(), \"401 UNAUTHORIZED \")) {"); + tl(4, "eventHandler.handle(Future.succeededFuture("); + tl(5, "new ServiceResponse(401, \"UNAUTHORIZED\","); + tl(6, "Buffer.buffer().appendString("); + tl(7, "new JsonObject()"); + tl(8, ".put(\"errorCode\", \"401\")"); + tl(8, ".put(\"errorMessage\", \"SSO Resource Permission check returned DENY\")"); + tl(8, ".encodePrettily()"); + tl(7, "), MultiMap.caseInsensitiveMultiMap()"); + tl(7, ")"); + tl(5, "));"); + tl(3, "} else {"); + tl(4, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \"), ex);"); + tl(4, i18nGlobale.getString(I18n.var_erreur), "(null, ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); + tl(3, "}"); } else { - tl(5, "} catch(Exception ex) {"); - tl(6, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \"), ex);"); - tl(6, i18nGlobale.getString(I18n.var_erreur), "(null, ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); - tl(5, "}"); - tl(4, "}"); + tl(3, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \"), ex);"); + tl(3, i18nGlobale.getString(I18n.var_erreur), "(null, ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); } - tl(3, "});"); - } - - tl(2, "}).onFailure(ex -> {"); - if(activerOpenIdConnect) { - tl(3, "if(\"Inactive Token\".equals(ex.getMessage()) || StringUtils.startsWith(ex.getMessage(), \"invalid_grant:\")) {"); - tl(4, "try {"); - tl(5, i18nGlobale.getString(I18n.var_gestionnaireEvenements), ".handle(Future.succeededFuture(new ServiceResponse(302, \"Found\", null, MultiMap.caseInsensitiveMultiMap().add(HttpHeaders.LOCATION, \"/", i18nGlobale.getString(I18n.var_deconnexion), "?redirect_uri=\" + URLEncoder.encode(serviceRequest.getExtra().getString(\"uri\"), \"UTF-8\")))));"); - tl(4, "} catch(Exception ex2) {"); - tl(5, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \", ex2));"); - tl(5, i18nGlobale.getString(I18n.var_erreur), "(null, ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex2);"); - tl(4, "}"); - tl(3, "} else if(StringUtils.startsWith(ex.getMessage(), \"401 UNAUTHORIZED \")) {"); - tl(4, "eventHandler.handle(Future.succeededFuture("); - tl(5, "new ServiceResponse(401, \"UNAUTHORIZED\","); - tl(6, "Buffer.buffer().appendString("); - tl(7, "new JsonObject()"); - tl(8, ".put(\"errorCode\", \"401\")"); - tl(8, ".put(\"errorMessage\", \"SSO Resource Permission check returned DENY\")"); - tl(8, ".encodePrettily()"); - tl(7, "), MultiMap.caseInsensitiveMultiMap()"); - tl(7, ")"); - tl(5, "));"); - tl(3, "} else {"); - tl(4, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \"), ex);"); - tl(4, i18nGlobale.getString(I18n.var_erreur), "(null, ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); - tl(3, "}"); - } else { - tl(3, "LOG.error(String.format(\"", classeApiOperationIdMethode, " ", i18nGlobale.getString(I18n.str_a_échoué), ". \"), ex);"); - tl(3, i18nGlobale.getString(I18n.var_erreur), "(null, ", i18nGlobale.getString(I18n.var_gestionnaireEvenements), ", ex);"); + tl(2, "});"); + tl(1, "}"); } - tl(2, "});"); - tl(1, "}"); - l(); /////////// // Liste // diff --git a/src/main/java/org/computate/frFR/java/EcrireGenClasse.java b/src/main/java/org/computate/frFR/java/EcrireGenClasse.java index 7229434..840d573 100644 --- a/src/main/java/org/computate/frFR/java/EcrireGenClasse.java +++ b/src/main/java/org/computate/frFR/java/EcrireGenClasse.java @@ -955,6 +955,7 @@ public class EcrireGenClasse extends EcrireClasse { * Var.enUS: entityDisplayName */ String entiteNomAffichage; + String entiteIcone; /** * Var.enUS: entityDescription diff --git a/src/main/java/org/computate/frFR/java/EcrirePageClasse.java b/src/main/java/org/computate/frFR/java/EcrirePageClasse.java index 536711d..8c966b8 100644 --- a/src/main/java/org/computate/frFR/java/EcrirePageClasse.java +++ b/src/main/java/org/computate/frFR/java/EcrirePageClasse.java @@ -611,12 +611,15 @@ else if(BooleanUtils.isTrue(entiteSignature)) { tl(11, "class=\"button-on-left {{", langueConfig.getString(I18n.var_classeApiMethodeMethode), "}}_", entiteVar, " class", classeNomSimple, " input", classeNomSimple, "{{", classeModele ? classeVarClePrimaire : classeVarCleUnique, "}}", entiteVarCapitalise, " \""); tl(11, "name=\"set", entiteVarCapitalise, "\""); tl(11, "href=\"{{ ", uncapitalizeClasseNomSimple, "_.", entiteVar, " | e }}\""); - t(11, ">"); + tl(11, ">"); + if(entiteIcone != null) { + tl(10, entiteIcone); + } if(entiteNomAffichage != null) { - sx(entiteNomAffichage); + t(10).sx(entiteNomAffichage).l(); } - l(""); - t(11, "
"); + tl(9, ""); + t(9, "
"); sx(entiteDescription); l("
"); tl(1, "{%- else %}"); @@ -1063,6 +1066,7 @@ public void pageCodeClasseJava(String langueNom, JsonObject langueConfig) throws entiteNomSimpleComplet = (String)entiteDocumentSolr.get("entiteNomSimpleComplet_" + langueNom + "_stored_string"); entiteDescription = (String)entiteDocumentSolr.get("entiteDescription_" + langueNom + "_stored_string"); entiteNomAffichage = (String)entiteDocumentSolr.get("entiteNomAffichage_" + langueNom + "_stored_string"); + entiteIcone = (String)entiteDocumentSolr.get("entiteIcone_stored_string"); entiteHtml = (Boolean)entiteDocumentSolr.get("entiteHtml_stored_boolean"); entiteHtmLigne = (Integer)entiteDocumentSolr.get("entiteHtmLigne_stored_int"); entiteHtmLigneTitre = (String)entiteDocumentSolr.get("entiteHtmLigneTitre_stored_string"); @@ -2201,6 +2205,49 @@ public void pageCodeClasseJinja(String langueNom, JsonObject i18nPage) throws Ex Integer rechercheLigneActuel; if(rechercheListe.size() > 0) { + auteurPageCss.tl(0, "#site-results-grid > :is(a, div) {"); + auteurPageCss.tl(1, "display: grid;"); + auteurPageCss.tl(1, "grid-template-columns: subgrid;"); + auteurPageCss.tl(1, "grid-column: 1 / span ", rechercheListe.size(), ";"); + auteurPageCss.tl(0, "}"); + auteurPageCss.tl(0, "@media (max-width:800px) {"); + auteurPageCss.tl(1, "#site-results-grid > :is(a, div) {"); + auteurPageCss.tl(2, "grid-column: 1 / span 1;"); + auteurPageCss.tl(1, "}"); + auteurPageCss.tl(0, "}"); + + auteurPageCss.tl(0, "#site-results-grid.grid-mode-details > :is(a, div) {"); + auteurPageCss.tl(1, "align-items: center;"); + auteurPageCss.tl(0, "}"); + auteurPageCss.tl(0, "#site-results-grid > :is(a, div):is(:hover, :active):not(:first-child) {"); + auteurPageCss.tl(1, "background-color: var(--sl-color-primary-300);"); + auteurPageCss.tl(0, "}"); + auteurPageCss.tl(0, "#site-results-grid {"); + auteurPageCss.tl(1, "display: grid;"); + auteurPageCss.tl(1, "gap: 1rem;"); + auteurPageCss.tl(1, "overflow: auto;"); + auteurPageCss.tl(1, "padding: var(--sl-spacing-small);"); + auteurPageCss.tl(1, "margin-block-start: var(--sl-spacing-medium);"); + auteurPageCss.tl(1, "background-color: var(--sl-color-neutral-200);"); + auteurPageCss.tl(0, "}"); + auteurPageCss.tl(0, "#site-results-grid > :is(a, div) {"); + auteurPageCss.tl(1, "border-radius: var(--sl-border-radius-large);"); + auteurPageCss.tl(1, "background-color: var(--sl-color-neutral-0);"); + auteurPageCss.tl(1, "color: inherit;"); + auteurPageCss.tl(1, "text-decoration: none;"); + auteurPageCss.tl(1, "grid-gap: 2rem 1rem;"); + auteurPageCss.tl(1, "padding: var(--sl-spacing-small);"); + auteurPageCss.tl(1, "& > div:first-child {"); + auteurPageCss.tl(2, "font-size: var(--sl-font-size-large);"); + auteurPageCss.tl(2, "font-weight: var(--sl-font-weight-bold);"); + auteurPageCss.tl(1, "}"); + auteurPageCss.tl(0, "}"); + auteurPageCss.tl(0, "#site-results-grid > :is(a, div) > a {"); + auteurPageCss.tl(1, "display: flex;"); + auteurPageCss.tl(1, "align-items: center;"); + auteurPageCss.tl(1, "height: 100%;"); + auteurPageCss.tl(0, "}"); + for(Long i = rechercheListe.getStart(); i < rechercheListe.getNumFound(); i+=rechercheLignes) { for(Integer j = 0; j < rechercheListe.size(); j++) { SolrDocument entiteDocumentSolr = rechercheListe.get(j); @@ -2213,6 +2260,7 @@ public void pageCodeClasseJinja(String langueNom, JsonObject i18nPage) throws Ex String entiteNomSimpleComplet = (String)entiteDocumentSolr.get("entiteNomSimpleComplet_" + langueNom + "_stored_string"); String entiteDescription = (String)entiteDocumentSolr.get("entiteDescription_" + langueNom + "_stored_string"); String entiteNomAffichage = (String)entiteDocumentSolr.get("entiteNomAffichage_" + langueNom + "_stored_string"); + String entiteIcone = (String)entiteDocumentSolr.get("entiteIcone_stored_string"); Boolean entiteHtml = BooleanUtils.isTrue((Boolean)entiteDocumentSolr.get("entiteHtml_stored_boolean")); String entiteFormatHtm = (String)entiteDocumentSolr.get("entiteFormatHtm_stored_string"); Boolean entiteMultiligne = BooleanUtils.isTrue((Boolean)entiteDocumentSolr.get("entiteMultiligne_stored_boolean")); @@ -2227,50 +2275,57 @@ public void pageCodeClasseJinja(String langueNom, JsonObject i18nPage) throws Ex jsVal = ".checked"; } //STUFF3 - wTh.tl(7, "<", composantsWebPrefixe, "dropdown id=\"htm", i18nGlobale.getString(I18n.var_ListeDeroulante), "_", entiteVar, "\">"); - wTh.tl(8, "<", composantsWebPrefixe, "button slot=\"trigger\" caret>", entiteNomAffichage, ""); - wTh.tl(8, "<", composantsWebPrefixe, "menu>"); - wTh.tl(9, "<", composantsWebPrefixe, "menu-item type=\"checkbox\" data-action=\"", i18nPage.getString(I18n.var_tri), "\">"); - wTh.tl(10, ""); - wTh.t(10).sx(String.format(i18nPage.getString(I18n.str_trier_par___croissante), entiteNomAffichage)).l(); - wTh.tl(9, ""); - wTh.tl(9, "<", composantsWebPrefixe, "menu-item type=\"checkbox\" data-action=\"", i18nPage.getString(I18n.var_tri), "\">"); - wTh.tl(10, ""); - wTh.t(10).sx(String.format(i18nPage.getString(I18n.str_trier_par___decroissante), entiteNomAffichage)).l(); - wTh.tl(9, ""); - wTh.tl(8, ""); - wTh.tl(7, ""); + if(entiteLien) { + wTh.tl(7, "
"); + } else { + wTh.tl(7, "<", composantsWebPrefixe, "dropdown id=\"htm", i18nGlobale.getString(I18n.var_ListeDeroulante), "_", entiteVar, "\">"); + wTh.tl(8, "<", composantsWebPrefixe, "button slot=\"trigger\" caret>", entiteNomAffichage, ""); + wTh.tl(8, "<", composantsWebPrefixe, "menu>"); + wTh.tl(9, "<", composantsWebPrefixe, "menu-item type=\"checkbox\" data-action=\"", i18nPage.getString(I18n.var_tri), "\">"); + wTh.tl(10, ""); + wTh.t(10).sx(String.format(i18nPage.getString(I18n.str_trier_par___croissante), entiteNomAffichage)).l(); + wTh.tl(9, ""); + wTh.tl(9, "<", composantsWebPrefixe, "menu-item type=\"checkbox\" data-action=\"", i18nPage.getString(I18n.var_tri), "\">"); + wTh.tl(10, ""); + wTh.t(10).sx(String.format(i18nPage.getString(I18n.str_trier_par___decroissante), entiteNomAffichage)).l(); + wTh.tl(9, ""); + wTh.tl(8, ""); + wTh.tl(7, ""); + } if(entiteLien) { - wTd.tl(9, "<", composantsWebPrefixe, "button"); - wTd.tl(11, "id=\"{{", i18nPage.getString(I18n.var_classeApiMethodeMethode), "}}_", entiteVar, "\""); + wTd.tl(7, "<", composantsWebPrefixe, "button"); + wTd.tl(9, "id=\"{{", i18nPage.getString(I18n.var_classeApiMethodeMethode), "}}_", entiteVar, "\""); if(entiteNomAffichage != null) { - wTd.tl(11, "placeholder=\"[", entiteNomSimple, "] ", entiteDefaut == null ? entiteNomAffichage : entiteDefaut, "\""); - wTd.tl(11, "label=\"", entiteDefaut == null ? entiteNomAffichage : entiteDefaut, "\""); + wTd.tl(9, "placeholder=\"[", entiteNomSimple, "] ", entiteDefaut == null ? entiteNomAffichage : entiteDefaut, "\""); + wTd.tl(9, "label=\"", entiteDefaut == null ? entiteNomAffichage : entiteDefaut, "\""); } if(entiteDescription != null) { - wTd.t(11, "help-text=\"").sx(entiteDescription).l("\""); + wTd.t(9, "help-text=\"").sx(entiteDescription).l("\""); } - wTd.tl(11, "class=\"button-on-left {{", i18nPage.getString(I18n.var_classeApiMethodeMethode), "}}_", entiteVar, " class", classeNomSimple, " input", classeNomSimple, "{{", classeModele ? classeVarClePrimaire : classeVarCleUnique, "}}", entiteVarCapitalise, " \""); - wTd.tl(11, "name=\"set", entiteVarCapitalise, "\""); - wTd.tl(11, "href=\"{{ item.", entiteVar, " | e }}\""); - wTd.t(11, ">"); + wTd.tl(9, "class=\"button-on-left {{", i18nPage.getString(I18n.var_classeApiMethodeMethode), "}}_", entiteVar, " class", classeNomSimple, " input", classeNomSimple, "{{", classeModele ? classeVarClePrimaire : classeVarCleUnique, "}}", entiteVarCapitalise, " \""); + wTd.tl(9, "name=\"set", entiteVarCapitalise, "\""); + wTd.tl(9, "href=\"{{ item.", entiteVar, " | e }}\""); + wTd.tl(9, ">"); + if(entiteIcone != null) { + wTd.tl(8, entiteIcone); + } if(entiteNomAffichage != null) { - wTd.sx(entiteNomAffichage); + wTd.t(8).sx(entiteNomAffichage).l(); } - wTd.l(""); + wTd.tl(7, ""); } else { if(wTd.getEmpty()) { - wTd.tl(8, ""); + wTd.tl(7, ""); // wTd.tl(8, "
"); - wTd.tl(9, classeIcone); + wTd.tl(8, classeIcone); } else { - wTd.tl(8, ""); + wTd.tl(7, ""); // wTd.tl(8, "
"); } - wTd.t(9); + wTd.t(7); if(StringUtils.equals(entiteNomCanonique, ZonedDateTime.class.getCanonicalName())) { wTd.l("<", composantsWebPrefixe, "format-date weekday=\"short\" month=\"short\" day=\"numeric\" year=\"numeric\" hour=\"numeric\" minute=\"numeric\" second=\"numeric\" time-zone-name=\"short\" date=\"{{ formatZonedDateTime(item.", entiteVar, ", \"yyyy-MM-dd'T'HH:mm:ss.SSSX\", defaultLocaleId, \"UTC\") }}\">"); } else if(StringUtils.equals(entiteNomCanonique, LocalDate.class.getCanonicalName())) { @@ -2285,13 +2340,13 @@ public void pageCodeClasseJinja(String langueNom, JsonObject i18nPage) throws Ex wTd.l("{{ item.", entiteVar, " }}"); } // wTd.tl(8, "
"); - wTd.tl(8, "
"); + wTd.tl(7, ""); if(entiteHighlighting) { - wTd.tl(8, "{% if highlightList is defined %}"); - wTd.tl(8, "
"); - wTd.tl(9, "StringUtils.join(highlightList, \" ... \")"); - wTd.tl(8, "
"); - wTd.tl(8, "{% endif %}"); + wTd.tl(7, "{% if highlightList is defined %}"); + wTd.tl(7, "
"); + wTd.tl(8, "StringUtils.join(highlightList, \" ... \")"); + wTd.tl(7, "
"); + wTd.tl(7, "{% endif %}"); } } } @@ -2358,6 +2413,7 @@ public void pageCodeClasseJinja(String langueNom, JsonObject i18nPage) throws Ex entiteNomSimpleComplet = (String)entiteDocumentSolr.get("entiteNomSimpleComplet_" + langueNom + "_stored_string"); entiteDescription = (String)entiteDocumentSolr.get("entiteDescription_" + langueNom + "_stored_string"); entiteNomAffichage = (String)entiteDocumentSolr.get("entiteNomAffichage_" + langueNom + "_stored_string"); + entiteIcone = (String)entiteDocumentSolr.get("entiteIcone_stored_string"); entiteHtml = BooleanUtils.isTrue((Boolean)entiteDocumentSolr.get("entiteHtml_stored_boolean")); entiteMultiligne = BooleanUtils.isTrue((Boolean)entiteDocumentSolr.get("entiteMultiligne_stored_boolean")); entiteIndexe = (Boolean)entiteDocumentSolr.get("entiteIndexe_stored_boolean"); @@ -2791,6 +2847,7 @@ public void ecrirePageHeadJinja(String langueNom, JsonObject i18nPage, Boolean e l(); tl(0, "{%- block htmStyles", classePageSuperNomSimple, " %}"); tl(0, "{{ super() }}"); + tl(2, ""); tl(0, "{%- block htmStyles", classePageNomSimple, " %}"); tl(0, "{%- endblock htmStyles", classePageNomSimple, " %}"); tl(0, "{%- endblock htmStyles", classePageSuperNomSimple, " %}"); @@ -3415,6 +3472,7 @@ else if(methodePATCH || methodeDELETE || methodeRecherche) entiteNomSimpleComplet = (String)entiteDocumentSolr.get("entiteNomSimpleComplet_" + langueNom + "_stored_string"); entiteDescription = (String)entiteDocumentSolr.get("entiteDescription_" + langueNom + "_stored_string"); entiteNomAffichage = (String)entiteDocumentSolr.get("entiteNomAffichage_" + langueNom + "_stored_string"); + entiteIcone = (String)entiteDocumentSolr.get("entiteIcone_stored_string"); entiteHtmLigne = (Integer)entiteDocumentSolr.get("entiteHtmLigne_stored_int"); entiteHtmLigneTitre = (String)entiteDocumentSolr.get("entiteHtmLigneTitre_stored_string"); entiteHtmLigneTitreOuvert = (String)entiteDocumentSolr.get("entiteHtmLigneTitreOuvert_stored_string"); diff --git a/src/main/java/org/computate/frFR/java/IndexerClasse.java b/src/main/java/org/computate/frFR/java/IndexerClasse.java index 141a4de..59af537 100644 --- a/src/main/java/org/computate/frFR/java/IndexerClasse.java +++ b/src/main/java/org/computate/frFR/java/IndexerClasse.java @@ -3392,6 +3392,7 @@ else if("LocalTime".equals(entiteMapCleType) && NumberUtils.isCreatable(entiteMa indexerStockerSolr(classeLangueNom, entiteDoc, "entiteEnumVar", regexLangue(classeLangueNom, "^EnumVar", methodeCommentaire)); indexerStockerSolr(classeLangueNom, entiteDoc, "entiteEnumVarDescription", regexLangue(classeLangueNom, "^" + i18nGlobale.getString(I18n.var_EnumVarDescription), methodeCommentaire)); indexerStockerSolr(classeLangueNom, entiteDoc, "entiteImageBase64Url", regexLangue(classeLangueNom, "^ImageBase64Url", methodeCommentaire)); + indexerStockerSolr(entiteDoc, "entiteIcone", regex("^" + i18nGlobale.getString(I18n.var_Icone) + ": (.*)", methodeCommentaire, 1)); indexerStockerSolr(entiteDoc, "entiteLien", regexTrouve("^" + i18nGlobale.getString(I18n.var_Lien) + ":\\s*(true)$", methodeCommentaire)); Boolean entiteCouleur = indexerStockerSolr(entiteDoc, "entiteCouleur", regexTrouve("^" + i18nGlobale.getString(I18n.var_Couleur) + ":\\s*(true)$", methodeCommentaire)); if(entiteCouleur)