Skip to content

Commit

Permalink
#16 Create Google adapter
Browse files Browse the repository at this point in the history
  • Loading branch information
ralphg6 committed Feb 7, 2020
1 parent d9e2b2a commit b3fc238
Show file tree
Hide file tree
Showing 8 changed files with 43 additions and 31 deletions.
14 changes: 2 additions & 12 deletions david/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import david.config
from david.adapters.adapter import MessageAdapter
from david.assistant import Assistant
from david.googleadap import GoogleWebHook
from david.constants import CONFIG_DEFAULT_ADAPTER
from david.registry import Registry

# from david.brain import fetch_model, fetch_know
Expand All @@ -13,14 +13,10 @@
CORS(app)

# [TODO] This kwargs must from CLI args
kwargs = {"default_adapter": MessageAdapter.name()}
kwargs = {CONFIG_DEFAULT_ADAPTER: MessageAdapter.name()}

config = david.config.load(None, **kwargs)

Registry.registryAdapter(MessageAdapter)

assistant = Assistant(config)
googleWH = GoogleWebHook(assistant)


@app.route("/")
Expand Down Expand Up @@ -53,12 +49,6 @@ def dialog():
return jsonify(responseData)


@app.route("/google", methods=["POST"])
def google():
data = request.get_json()
return jsonify(googleWH.handle(data))


def main() -> None:
app.run(host="0.0.0.0")

Expand Down
2 changes: 2 additions & 0 deletions david/adapters/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
from david.adapters.adapter import Adapter, MessageAdapter
from david.adapters.adapters.google import GoogleAdapter
5 changes: 4 additions & 1 deletion david/adapters/adapter.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
from abc import abstractmethod
from typing import Dict, List, Text

from david.registry import Module
from david.registry import Module, Registry
from david.typing import Message


Expand Down Expand Up @@ -38,3 +38,6 @@ def input(cls, payload: Dict) -> Message:
@classmethod
def output(cls, message: Message) -> Dict:
return message.__dict__


Registry.registryAdapter(MessageAdapter)
Empty file.
27 changes: 27 additions & 0 deletions david/adapters/adapters/google.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
from typing import Dict

from david.adapters.adapter import Adapter
from david.registry import Registry
from david.typing import Message


class GoogleAdapter(Adapter):
@classmethod
def name(cls):
return "google"

@classmethod
def validade_data(cls, payload: Dict) -> bool:
return "queryResult" in payload and "queryText" in payload["queryResult"]

@classmethod
def input(cls, payload: Dict) -> Message:
input = payload["queryResult"]["queryText"]
return Message.build(input)

@classmethod
def output(cls, message: Message) -> Dict:
return {"fulfillmentText": message.output["text"]}


Registry.registryAdapter(GoogleAdapter)
2 changes: 2 additions & 0 deletions david/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,5 @@
DEFAULT_LOG_LEVEL = "INFO"

ENV_LOG_LEVEL = "LOG_LEVEL"

CONFIG_DEFAULT_ADAPTER = "default_adapter"
15 changes: 0 additions & 15 deletions david/googleadap.py

This file was deleted.

9 changes: 6 additions & 3 deletions david/registry.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@
from typing import Type

from david.config import DavidConfig
from david.constants import CONFIG_DEFAULT_ADAPTER

ADAPTER_PREFIX = "adapter_"


class Module(type, metaclass=ABCMeta):
Expand Down Expand Up @@ -36,12 +39,12 @@ def get(cls, moduleName: str, prefix: str = "", default=None) -> Module:

@classmethod
def registryAdapter(cls, adapter: Type[Module]):
cls.registry(adapter, "adapter_")
cls.registry(adapter, ADAPTER_PREFIX)

@classmethod
def getAdapter(cls, config: DavidConfig, adapterName=None):

if not adapterName:
adapterName = config.get("default_adapter")
adapterName = config.get(CONFIG_DEFAULT_ADAPTER)

return cls.get(adapterName, "adapter_")
return cls.get(adapterName, ADAPTER_PREFIX)

0 comments on commit b3fc238

Please sign in to comment.