Skip to content

Commit

Permalink
Update response
Browse files Browse the repository at this point in the history
  • Loading branch information
Garulf committed Feb 19, 2024
1 parent 9bacbe8 commit d5db3ec
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 11 deletions.
14 changes: 10 additions & 4 deletions pyflowlauncher/jsonrpc/models.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from __future__ import annotations

import sys
from typing import Any, List, Optional
from typing import Any, Dict, List, Optional

if sys.version_info < (3, 11):
from typing_extensions import NotRequired, TypedDict
Expand All @@ -20,16 +20,22 @@ class BaseJsonRPCRequest(TypedDict):
class JsonRPCRequest(BaseJsonRPCRequest):
"""Flow Launcher JsonRPC Request"""
dontHideAfterAction: NotRequired[bool]
settings: NotRequired[dict]
settings: NotRequired[Dict]


class BaseJsonRPCResult(TypedDict):
"""Standard JsonRPC Result"""
id: NotRequired[int]
id: NotRequired[Optional[int]]
jsonrpc: str
result: Any


class JsonRPCResult(BaseJsonRPCResult):
"""Flow Launcher JsonRPC Result"""
SettingsChange: NotRequired[Optional[dict]]
SettingsChange: NotRequired[Optional[Dict]]


class PartialJsonRPCResult(TypedDict):
"""Flow Launcher JsonRPC Result"""
SettingsChange: NotRequired[Optional[Dict]]
result: NotRequired[Dict]
17 changes: 12 additions & 5 deletions pyflowlauncher/jsonrpc/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import json
from typing import Any, Dict, Optional

from .models import JsonRPCRequest, JsonRPCResult
from .models import JsonRPCRequest, JsonRPCResult, PartialJsonRPCResult

from . import JSONRPC_VER, ids

Expand All @@ -15,14 +15,21 @@ def parse_request(message: str) -> JsonRPCRequest:
return request


def create_response(result: Any, id: int, SettingsChange: Optional[Dict] = None) -> JsonRPCResult:
def create_response(result: Any, SettingsChange: Optional[Dict] = None, id: Optional[int] = None) -> JsonRPCResult:
return {
"jsonrpc": JSONRPC_VER,
"result": result,
"SettingsChange": SettingsChange,
"id": id,
"SettingsChange": SettingsChange
}


def response(result: Any, id: int, SettingsChange: Optional[Dict] = None) -> str:
return json.dumps(create_response(result, id, SettingsChange))
def response_string(result: Any, id: Optional[int] = None, SettingsChange: Optional[Dict] = None) -> str:
return json.dumps(create_response(result, SettingsChange, id))


def response(result: Any, SettingsChange: Optional[Dict] = None) -> PartialJsonRPCResult:
return {
"result": result,
"SettingsChange": SettingsChange
}
4 changes: 2 additions & 2 deletions pyflowlauncher/plugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,8 @@ def action(self, method: Method, parameters: Optional[Iterable] = None) -> JsonR

async def run_async(self) -> None:
request = server.parse_request(sys.argv[1])
feedback = await self._event_handler.trigger_event(request["method"], *request["parameters"])
print(server.response(feedback, request["id"]))
response = await self._event_handler.trigger_event(request["method"], *request["parameters"])
print(server.response_string(**response, id=request["id"]))

def run(self) -> None:
if sys.version_info >= (3, 10, 0):
Expand Down

0 comments on commit d5db3ec

Please sign in to comment.