This commit is contained in:
Marco Kohn 2025-04-12 22:15:22 +02:00
parent 3d493d084e
commit 354f9a2960

View File

@ -47,6 +47,7 @@ class FSCLogger:
self.token = None
self.chat_id = None
self.base_url = None
self.logfile = None
self.log("starting")
@staticmethod
@ -128,7 +129,63 @@ class FSCLogger:
]
self.return_and_exit(Response(id=request.id, result=info))
case 'SetConfig':
missing_fields = []
invalid_fields = []
if not request.params:
self.return_and_exit(Response(id=request.id, error="invalid config (missing parameters)"))
conf = request.params
# check for required fields
if not 'logfile' in conf:
missing_fields.append('logfile')
if len(missing_fields) > 0:
# return an error as at least one required field seems missing
self.return_and_exit(Response(id=request.id, error="invalid config (missing required field(s) '{}'"
")".format(', '.join(missing_fields))))
# validate fields
if len(conf['logfile']) < 4:
invalid_fields.append('logfile')
else:
try:
test = int(conf['logfile'])
except ValueError as _:
invalid_fields.append('logfile')
if len(invalid_fields) > 0:
# return an error as at least one field seems invalid
self.return_and_exit(Response(id=request.id, error="invalid config (invalid field(s) '{}'"
")".format(', '.join(invalid_fields))))
# set configuration to current instance
self.logfile = conf['logfile']
# all good
self.return_and_continue(Response(id=request.id))
case 'SendNotification':
# check for required payload
if not request.params:
self.return_and_exit(Response(id=request.id, error="invalid notification (missing parameters)"))
notification = request.params
# check if notification payload contains a linked object
if not 'object' in notification:
self.return_and_exit(Response(id=request.id, error="notification is missing its linked object."))
## Log to file
f = open(self.logfile, "a")
f.write("Now the file has more content!")
f.close()
self.log("getting data %s" % notification)
self.return_and_continue(Response(id=request.id))
case _:
self.log("request method unknown: {}".format(request.method))
self.return_and_exit(Response(id=request.id, error="invalid request (method unknown)"))
# run entrypoint
if __name__ == '__main__':