src/eric7/RemoteServer/EricServerBaseRequestHandler.py

Tue, 10 Dec 2024 15:46:34 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 10 Dec 2024 15:46:34 +0100
branch
eric7
changeset 11090
f5f5f5803935
parent 10767
b3672d3e7644
permissions
-rw-r--r--

Updated copyright for 2025.

10767
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
11090
f5f5f5803935 Updated copyright for 2025.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10767
diff changeset
3 # Copyright (c) 2024 - 2025 Detlev Offenbach <detlev@die-offenbachs.de>
10767
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing the request handler base class of the eric-ide server.
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 from .EricRequestCategory import EricRequestCategory
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13 class EricServerBaseRequestHandler:
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14 """
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15 Class implementing the request handler base class of the eric-ide server.
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16 """
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 def __init__(self, server):
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 """
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 Constructor
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 @param server reference to the eric-ide server object
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 @type EricServer
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 """
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 self._server = server
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 self._category = EricRequestCategory.Generic
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 # must be changed by derived classes
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 self._requestMethodMapping = {}
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 # must be filled by derived classes
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 def handleRequest(self, request, params, reqestUuid):
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 """
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 Public method handling the received file system requests.
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 @param request request name
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 @type str
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 @param params dictionary containing the request parameters
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 @type dict
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 @param reqestUuid UUID of the associated request as sent by the eric IDE
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 @type str
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 """
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 try:
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 result = self._requestMethodMapping[request](params)
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 if result is not None:
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 self._server.sendJson(
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 category=self._category,
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 reply=request,
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 params=result,
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 reqestUuid=reqestUuid,
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 )
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 except KeyError:
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 self.sendError(request=request, reqestUuid=reqestUuid)
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 def sendError(self, request, reqestUuid=""):
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 """
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 Public method to send an error report to the IDE.
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 @param request request name
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 @type str
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 @param reqestUuid UUID of the associated request as sent by the eric IDE
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 (defaults to "", i.e. no UUID received)
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 @type str
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 """
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 self._server.sendJson(
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 category=self._category,
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 reply=request,
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 params={"Error": f"Request type '{request}' is not supported."},
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 reqestUuid=reqestUuid,
b3672d3e7644 Introduced a remote server request handler base class to get rid of redundant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 )

eric ide

mercurial