lweb/inc/lweb_http_status.pbi

137 lines
4.1 KiB
Text
Raw Normal View History

2023-03-29 10:37:20 +02:00
;********************************
;*
;* lweb_http_status.pbi
;*
;* LiHaSo Webserver Default status.
;*
;* Configuration Module for Configs.
;*
; configuration\status("number")\status = "200"
; configuration\status("number")\file = ""
; configuration\status("number")\header = "200 Ok"
; configuration\status("number")\message = ""
; configuration\status("number")\template = #False
; configuration\status("number")\content = #False
;*
;* Default status components
;* Please add here only rfc7231 codes.
;*
Procedure status_defaults()
;Import XML cfg/default_http_status_codes.xml resp config
Protected ReadedXML.s, FileHandle.i, XMLHandle.i
FileHandle = ReadFile(#PB_Any, configuration\config_file("status_xml")\name)
If IsFile(FileHandle)
ReadedXML = ReadString(FileHandle, #PB_File_IgnoreEOL)
CloseFile(FileHandle)
XMLHandle = ParseXML(#PB_Any, ReadedXML)
If XMLHandle And XMLStatus(XMLHandle) = #PB_XML_Success
ExtractXMLMap(MainXMLNode(XMLHandle), configuration\status())
Else
lhs_log_ext::OutL(lhs_web::get_config(lhs_web::#conf_Debug_logUUID), lhs_log_ext::#Info, "Import of the File:"+configuration\config_file("status_xml")\name+" failed.")
EndIf
Else
lhs_log_ext::OutL(lhs_web::get_config(lhs_web::#conf_Debug_logUUID), lhs_log_ext::#Info, "Could not open File:"+configuration\config_file("status_xml")\name+" .")
EndIf
EndProcedure
Procedure.s status_get_file(status.s, UUID.s="Default")
If UUID <> "Default"
If configuration\hosts(UUID)\status(status)\status = status
ProcedureReturn configuration\hosts(UUID)\status(status)\file
EndIf
EndIf
If configuration\status(status)\status = status
ProcedureReturn configuration\status(status)\file
Else
ProcedureReturn "Internal"
EndIf
EndProcedure
Procedure.s status_get_header(status.s, UUID.s="Default")
If UUID <> "Default"
If configuration\hosts(UUID)\status(status)\status = status
ProcedureReturn configuration\hosts(UUID)\status(status)\header
EndIf
EndIf
If configuration\status(status)\status = status
ProcedureReturn configuration\status(status)\header
Else
ProcedureReturn "500 Internal Server Error"
EndIf
EndProcedure
Procedure.s status_get_message(status.s, UUID.s="Default")
If UUID <> "Default"
If configuration\hosts(UUID)\status(status)\status = status
ProcedureReturn configuration\hosts(UUID)\status(status)\message
EndIf
EndIf
If configuration\status(status)\status = status
ProcedureReturn configuration\status(status)\message
Else
ProcedureReturn "500 Internal Server Error"
EndIf
EndProcedure
Procedure.s status_get_message_body(status.s, UUID.s="Default")
If UUID <> "Default"
If configuration\hosts(UUID)\status(status)\status = status
ProcedureReturn configuration\hosts(UUID)\status(status)\message_body
EndIf
EndIf
If configuration\status(status)\status = status
ProcedureReturn configuration\status(status)\message_body
Else
ProcedureReturn ""
EndIf
EndProcedure
Procedure status_get_template(status.s, UUID.s="Default")
If UUID <> "Default"
If configuration\hosts(UUID)\status(status)\status = status
ProcedureReturn configuration\hosts(UUID)\status(status)\template
EndIf
EndIf
If configuration\status(status)\status = status
ProcedureReturn configuration\status(status)\template
Else
ProcedureReturn #True
EndIf
EndProcedure
Procedure status_get_content(status.s, UUID.s="Default")
If UUID <> "Default"
If configuration\hosts(UUID)\status(status)\status = status
ProcedureReturn configuration\hosts(UUID)\status(status)\content
EndIf
EndIf
If configuration\status(status)\status = status
ProcedureReturn configuration\status(status)\content
Else
ProcedureReturn #True
EndIf
EndProcedure
Procedure.s status_render_html(status.s, UUID.s="Default")
If UUID <> "Default"
If configuration\hosts(UUID)\status(status)\status = status
ProcedureReturn body.s
EndIf
Else
If configuration\status(status)\status = status
ProcedureReturn body.s
EndIf
EndIf
EndProcedure