| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266 |
-
- /*------------------------------------------------------------------------
- File : adresse_dict
- Purpose :
- Syntax :
- Description :
- Author(s) : walter.riechsteiner
- Created : Thu Jun 26 13:56:20 CEST 2025
- Notes :
- ----------------------------------------------------------------------*/
-
- BLOCK-LEVEL ON ERROR UNDO, THROW.
- USING OpenEdge.Core.String FROM PROPATH.
- USING OpenEdge.Net.HTTP.IHttpResponse FROM PROPATH.
- USING OpenEdge.Net.HTTP.StatusCodeEnum FROM PROPATH.
- USING OpenEdge.Web.IWebRequest FROM PROPATH.
- USING OpenEdge.Web.WebHandler FROM PROPATH.
- USING OpenEdge.Web.WebResponseWriter FROM PROPATH.
- USING Progress.Json.ObjectModel.JsonObject FROM PROPATH.
- USING Progress.Json.ObjectModel.JsonArray FROM PROPATH.
- USING src.ch.adprime.gemis.WebHandlerUtilities FROM PROPATH.
- USING src.ch.adprime.gemis.ErrorMessage FROM PROPATH.
- CLASS isWorkingImpl INHERITS WebHandler:
- DEFINE TEMP-TABLE tFileDIct
- SERIALIZE-NAME 'fields'
- FIELD cName AS CHARACTER SERIALIZE-NAME 'name'
- FIELD cType AS CHARACTER SERIALIZE-NAME 'type'
- FIELD iLaenge AS INTEGER SERIALIZE-NAME 'width'
- .
- /*------------------------------------------------------------------------------
- Purpose:
- Notes:
- ------------------------------------------------------------------------------*/
- METHOD OVERRIDE PROTECTED INTEGER HandleGet (INPUT poRequest AS IWebRequest ):
- DEFINE VARIABLE oResponse AS IHttpResponse NO-UNDO.
- DEFINE VARIABLE oWriter AS WebResponseWriter NO-UNDO.
- DEFINE VARIABLE oError AS ErrorMessage NO-UNDO.
- DEFINE VARIABLE oBody AS String NO-UNDO.
- DEFINE VARIABLE oJsonResponse AS JsonObject NO-UNDO.
- DEFINE VARIABLE lDebug AS LOGICAL NO-UNDO.
- DEFINE VARIABLE cDefautlCharSet AS CHARACTER NO-UNDO INIT 'UTF-8'.
-
- DEFINE VARIABLE cCorralationID AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cContent-Type AS CHARACTER NO-UNDO.
- DEFINE VARIABLE htFileDIct AS HANDLE NO-UNDO.
- DEFINE VARIABLE oJsonArray AS JsonArray NO-UNDO.
- DEFINE VARIABLE lcJsonInhalt AS LONGCHAR NO-UNDO.
- DEFINE VARIABLE ii AS INTEGER NO-UNDO.
- DEFINE VARIABLE cFileName AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cFelder AS CHARACTER NO-UNDO.
-
- /* cFileName = poRequest:URI:GetQueryValue("File"). */
- /* MESSAGE 'File-Name = ' cFileName. */
- /* */
- /* FIND FIRST AnaDat._File NO-LOCK */
- /* WHERE AnaDat._File._File-Name = cFileName NO-ERROR. */
- /* FOR EACH AnaDat._Field OF AnaDat._File: */
- /* CREATE tFileDIct. */
- /* ASSIGN */
- /* tFileDIct.cName = AnaDat._Field._Field-Name */
- /* tFileDIct.cType = REPLACE(AnaDat._Field._Data-Type, '-', '_')*/
- /* tFileDIct.iLaenge = 10. */
- /* CASE AnaDat._Field._Data-Type: */
- /* WHEN 'logical' THEN */
- /* tFileDIct.cType = 'checkbox'. */
- /* WHEN 'character' THEN */
- /* tFileDIct.cType = 'text'. */
- /* WHEN 'integer' THEN */
- /* tFileDIct.cType = 'number'. */
- /* WHEN 'logical' THEN */
- /* tFileDIct.cType = 'checkbox'. */
- /* END CASE. */
- /* END. */
- /* htFileDIct = TEMP-TABLE tFileDIct:DEFAULT-BUFFER-HANDLE. */
- /* */
- cContent-Type = "plain/text".
-
- oError = NEW ErrorMessage().
- oError:lDebug = lDebug.
-
- /* oJsonResponse = NEW JsonObject(). */
- /* htFileDict:WRITE-JSON('JsonObject', oJsonResponse).*/
- /* */
- /* oJsonResponse:WRITE(lcJsonInhalt, FALSE). */
- /* ii = INDEX(lcJsonInhalt, '['). */
- /* lcJsonInhalt = SUBSTRING(lcJsonInhalt, ii). */
- /* */
- /* ii = R-INDEX(lcJsonInhalt, ']'). */
- /* lcJsonInhalt = SUBSTRING(lcJsonInhalt, 01, ii).*/
- MESSAGE "GetHandler".
-
- // oBody = NEW String(oJsonResponse:GetJsonText()).
- oBody = NEW String('GET OK').
- WebHandlerUtilities:createHttpResponse(INPUT INTEGER(StatusCodeEnum:OK), INPUT oBody, INPUT cContent-Type, INPUT cDefautlCharSet, INPUT cCorralationID, OUTPUT oResponse).
- // oResponse:SetHeader(HttpHeaderBuilder:Build(cHeaderCorralationID):Value(cCorralationID):Header).
-
- oWriter = NEW WebResponseWriter(oResponse).
- oWriter:Open().
- oWriter:Close().
-
- RETURN 0.
-
- CATCH e AS Progress.Lang.Error:
- END CATCH.
- FINALLY:
- END FINALLY.
- END METHOD.
- METHOD OVERRIDE PROTECTED INTEGER HandlePost(INPUT poRequest AS IWebRequest):
- DEFINE VARIABLE oResponse AS IHttpResponse NO-UNDO.
- DEFINE VARIABLE oWriter AS WebResponseWriter NO-UNDO.
- DEFINE VARIABLE oJsonData AS JsonObject NO-UNDO.
- DEFINE VARIABLE lcJsonString AS LONGCHAR NO-UNDO.
-
- DEFINE VARIABLE lRetVal AS LOGICAL NO-UNDO.
-
- DEFINE VARIABLE hbttMandant AS HANDLE NO-UNDO.
- DEFINE VARIABLE cGetHtml AS CHARACTER NO-UNDO.
- DEFINE VARIABLE lcHTML AS LONGCHAR NO-UNDO.
- DEFINE VARIABLE cDatei AS CHARACTER NO-UNDO.
- DEFINE VARIABLE ii AS INTEGER NO-UNDO.
- DEFINE VARIABLE lAdmin AS LOGICAL NO-UNDO.
- DEFINE VARIABLE oInput AS JsonObject NO-UNDO.
- MESSAGE "Entering HandlePost" VIEW-AS ALERT-BOX.
-
- /* lRetVal = WebHandlerUtilities:getJsonFromRequest(INPUT poRequest, OUTPUT oJsonData) NO-ERROR. */
- /* oJsonData:WRITE(lcJsonString, FALSE). */
- /* // */
- /* // Input-Daten (Steuersatz) aus JsonObject lesen und in ttInput füllen */
- /* // */
- /* EMPTY TEMP-TABLE ttInput . */
- /* hbttInput = TEMP-TABLE ttInput:DEFAULT-BUFFER-HANDLE. */
- /* oInput = NEW JsonObject(). */
- /* oInput = oJsonData:GetJsonObject('ttInput'). */
- /* lRetVal = hbttInput:READ-JSON ('JsonObject', oInput). */
- /* */
- /* FIND FIRST ttInput. */
- /* cAktion = ttInput.action. */
- /* */
- /* outilitiesHandler = NEW utilitiesHandler(). */
- /* */
- /* DO WHILE lRetVal: */
- /* hbttInput = TEMP-TABLE ttInput :DEFAULT-BUFFER-HANDLE. */
- /* hbttMandant = TEMP-TABLE ttMandant :DEFAULT-BUFFER-HANDLE. */
- /* */
- /* MESSAGE 'Inputdaten gelesen mit returncode ' lRetVal. */
- /* IF NOT lRetVal THEN LEAVE. */
- /* */
- /* FIND FIRST ttInput. */
- /* */
- /* IF ttInput.action = 'first' THEN */
- /* DO: */
- /* EMPTY TEMP-TABLE ttMandant. */
- /* FOR EACH Mandant NO-LOCK */
- /* WHERE Mandant.Zustand = TRUE: */
- /* CREATE ttMandant. */
- /* ASSIGN */
- /* ttMandant.Mandant = Mandant.Firma */
- /* ttMandant.Bezeichnung = Mandant.Name. */
- /* /* ttMandant.choose = (IF Mandant = '2000' THEN '1' ELSE '0').*/ */
- /* END. */
- /* */
- /* oJsonData = NEW JsonObject(). */
- /* hbttMandant:WRITE-JSON('JsonObject', oJsonData). */
- /* oJsonData:WRITE(lcJsonString, TRUE). */
- /* END. */
- /* */
- /* IF ttInput.action = 'anmelden' THEN */
- /* DO: */
- /* oJsonData:WRITE(lcJsonString, FALSE). */
- /* */
- /* FIND FIRST ttInput. */
- /* */
- /* IF INDEX(ttInput.benutzer, '_Admin') > 0 THEN */
- /* DO: */
- /* ttInput.benutzer = REPLACE(ttInput.benutzer, '_Admin', ''). */
- /* lAdmin = TRUE. */
- /* END. */
- /* */
- /* IF NOT lAdmin THEN */
- /* DO: */
- /* FIND Benutzer NO-LOCK */
- /* WHERE Benutzer.Firma = ttInput.mandant */
- /* AND Benutzer.Benutzer = ttInput.benutzer */
- /* AND Benutzer.Kennwort = ttInput.password NO-ERROR. */
- /* END. */
- /* ELSE */
- /* DO: */
- /* FIND FIRST Benutzer NO-LOCK */
- /* WHERE Benutzer.Firma = ttInput.mandant */
- /* AND Benutzer.Benutzer = ttInput.benutzer NO-ERROR. */
- /* END. */
- /* IF NOT AVAILABLE (Benutzer) THEN */
- /* DO: */
- /* outilitiesHandler:getErrorMessage(INPUT '1990', INPUT 1, INPUT '', OUTPUT lcJsonString).*/
- /* */
- /* oResponse = NEW OpenEdge.Web.WebResponse(). */
- /* oResponse:StatusCode = INTEGER(StatusCodeEnum:OK). */
- /* oResponse:ContentType = "application/json;charset=utf-8". */
- /* oWriter = NEW WebResponseWriter(oResponse). */
- /* oWriter:Open(). */
- /* MESSAGE 'lcString Rückgabe: ' + STRING(lcJsonString) VIEW-AS ALERT-BOX. */
- /* oWriter:Write(lcJsonString). */
- /* oWriter:Close(). */
- /* RETURN -1. */
- /* END. */
- /* */
- /* ttInput.action = 'return'. */
- /* ttInput.link = 'gemis_start.html'. */
- /* ttInput.sprcd = STRING(Benutzer.Sprcd). */
- /* */
- /* lcJsonString = ''. */
- /* DO ii = 1 TO hbttInput:NUM-FIELDS: */
- /* lcJsonString = lcJsonString */
- /* + (IF lcJsonString = '' THEN '' ELSE ', ') */
- /* + QUOTER(hbttInput:BUFFER-FIELD(ii):NAME) */
- /* + ': ' */
- /* + QUOTER(hbttInput:BUFFER-FIELD(ii):BUFFER-VALUE). */
- /* END. */
- /* lcJsonString = CHR(123) + lcJsonString + chr(125). */
- /* MESSAGE 'Return-Daten nach füllen aus ttInput ' STRING(lcJsonString). */
- /* END. */
- /* LEAVE. */
- /* END. */
- oResponse = NEW OpenEdge.Web.WebResponse().
- oResponse:StatusCode = INTEGER(StatusCodeEnum:OK).
- oResponse:ContentType = "plain/text;charset=utf-8".
- oWriter = NEW WebResponseWriter(oResponse).
- oWriter:Open().
- MESSAGE 'POST is working' + STRING(lcJsonString) VIEW-AS ALERT-BOX.
- oWriter:Write('POST is working').
- oWriter:Close().
- MESSAGE "Exiting HandlePost" VIEW-AS ALERT-BOX.
- CATCH e AS Progress.Lang.Error:
- MESSAGE "Exception occurred: " + e:GetMessage(1) VIEW-AS ALERT-BOX ERROR BUTTONS OK.
- RETURN -1.
- END CATCH.
-
- END METHOD.
- METHOD OVERRIDE PROTECTED INTEGER HandleNotAllowedMethod(INPUT poRequest AS IWebRequest):
- DEFINE VARIABLE result AS INTEGER NO-UNDO.
- MESSAGE "HandleNotAllowedMethod called" VIEW-AS ALERT-BOX.
- RETURN result.
- END METHOD.
- METHOD OVERRIDE PROTECTED INTEGER HandleNotImplemented(INPUT poRequest AS IWebRequest):
- DEFINE VARIABLE result AS INTEGER NO-UNDO.
- MESSAGE "HandleNotImplemented called" VIEW-AS ALERT-BOX.
- RETURN result.
- END METHOD.
- END CLASS.
|