refactor endpoints to use new plugin system
This commit is contained in:
parent
329217ba8f
commit
be21b8bc72
15 changed files with 127 additions and 215 deletions
|
|
@ -1,8 +1,6 @@
|
||||||
import asyncio
|
import asyncio
|
||||||
import importlib
|
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
import pkgutil
|
|
||||||
import socket
|
import socket
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
|
@ -56,16 +54,6 @@ mqtt_helperbot: MQTTHelperBot
|
||||||
conf_server: ConfServer
|
conf_server: ConfServer
|
||||||
xmpp_server: XMPPServer
|
xmpp_server: XMPPServer
|
||||||
|
|
||||||
# Plugins
|
|
||||||
sys.path.append(os.path.join(bumper_dir, "bumper", "plugins"))
|
|
||||||
sys.path.append(os.path.join(data_dir, "plugins"))
|
|
||||||
|
|
||||||
discovered_plugins = {
|
|
||||||
name: importlib.import_module(name)
|
|
||||||
for finder, name, ispkg in pkgutil.iter_modules()
|
|
||||||
if name.startswith("bumper_")
|
|
||||||
}
|
|
||||||
|
|
||||||
shutting_down = False
|
shutting_down = False
|
||||||
|
|
||||||
bumperlog = get_logger("bumper")
|
bumperlog = get_logger("bumper")
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,6 @@ from aiohttp.web_response import Response, StreamResponse
|
||||||
import bumper
|
import bumper
|
||||||
|
|
||||||
from .db import bot_get, bot_remove, client_get, client_remove, db_get
|
from .db import bot_get, bot_remove, client_get, client_remove, db_get
|
||||||
from .plugins import ConfServerApp, WebserverPlugin, WebserverSubApi
|
|
||||||
from .util import get_logger
|
from .util import get_logger
|
||||||
from .web.plugins import add_plugins
|
from .web.plugins import add_plugins
|
||||||
|
|
||||||
|
|
@ -104,50 +103,8 @@ class ConfServer:
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
# common api paths
|
|
||||||
api_v1 = {"prefix": "/v1/", "app": web.Application()} # for /v1/
|
|
||||||
|
|
||||||
apis = {
|
|
||||||
WebserverSubApi.V1: api_v1,
|
|
||||||
}
|
|
||||||
|
|
||||||
add_plugins(self._app)
|
add_plugins(self._app)
|
||||||
|
|
||||||
# Load plugins
|
|
||||||
for module in bumper.discovered_plugins.values():
|
|
||||||
plugins = [
|
|
||||||
m[1]
|
|
||||||
for m in inspect.getmembers(module, inspect.isclass)
|
|
||||||
if m[1].__module__ == module.__name__
|
|
||||||
]
|
|
||||||
for plugin_class in plugins:
|
|
||||||
if issubclass(plugin_class, WebserverPlugin):
|
|
||||||
plugin = plugin_class()
|
|
||||||
logging.debug(
|
|
||||||
f"Adding confserver sub_api ({plugin.__class__.__name__})"
|
|
||||||
)
|
|
||||||
apis[plugin.sub_api]["app"].add_routes(plugin.routes)
|
|
||||||
elif issubclass(plugin_class, ConfServerApp):
|
|
||||||
plugin = plugin_class()
|
|
||||||
if plugin.plugin_type == "sub_api": # app or sub_api
|
|
||||||
convert_api = {
|
|
||||||
"api_v1": WebserverSubApi.V1,
|
|
||||||
"api_v2": WebserverSubApi.V2,
|
|
||||||
"portal_api": WebserverSubApi.API,
|
|
||||||
"upload_api": WebserverSubApi.UPLOAD,
|
|
||||||
}
|
|
||||||
api = convert_api.get(plugin.sub_api, None)
|
|
||||||
if api and plugin.routes:
|
|
||||||
logging.debug(f"Adding confserver sub_api ({plugin.name})")
|
|
||||||
apis[api]["app"].add_routes(plugin.routes)
|
|
||||||
|
|
||||||
elif plugin.plugin_type == "app":
|
|
||||||
if plugin.path_prefix and plugin.app:
|
|
||||||
logging.debug(f"Adding confserver plugin ({plugin.name})")
|
|
||||||
self._app.add_subapp(plugin.path_prefix, plugin.app)
|
|
||||||
for api in apis:
|
|
||||||
self._app.add_subapp(apis[api]["prefix"], apis[api]["app"])
|
|
||||||
|
|
||||||
async def start(self) -> None:
|
async def start(self) -> None:
|
||||||
"""Start server."""
|
"""Start server."""
|
||||||
try:
|
try:
|
||||||
|
|
|
||||||
|
|
@ -1,39 +0,0 @@
|
||||||
from abc import abstractmethod
|
|
||||||
from enum import Enum
|
|
||||||
from typing import Iterable
|
|
||||||
|
|
||||||
from aiohttp.web_routedef import AbstractRouteDef
|
|
||||||
|
|
||||||
|
|
||||||
class ConfServerApp:
|
|
||||||
name = None
|
|
||||||
plugin_type = None
|
|
||||||
path_prefix = None
|
|
||||||
app = None
|
|
||||||
sub_api = None
|
|
||||||
routes = None
|
|
||||||
|
|
||||||
|
|
||||||
class WebserverSubApi(str, Enum):
|
|
||||||
"""Enum with all different sub apis."""
|
|
||||||
|
|
||||||
V1 = "v1"
|
|
||||||
V2 = "v2"
|
|
||||||
API = "api"
|
|
||||||
UPLOAD = "upload"
|
|
||||||
|
|
||||||
|
|
||||||
class WebserverPlugin:
|
|
||||||
"""Abstract webserver plugin."""
|
|
||||||
|
|
||||||
@property
|
|
||||||
@abstractmethod
|
|
||||||
def sub_api(self) -> WebserverSubApi:
|
|
||||||
"""Sub api."""
|
|
||||||
raise NotImplementedError
|
|
||||||
|
|
||||||
@property
|
|
||||||
@abstractmethod
|
|
||||||
def routes(self) -> Iterable[AbstractRouteDef]:
|
|
||||||
"""Plugin routes."""
|
|
||||||
raise NotImplementedError
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
from aiohttp import web
|
|
||||||
|
|
||||||
from bumper import plugins
|
|
||||||
from bumper.web import auth_util
|
|
||||||
|
|
||||||
|
|
||||||
class v1_global_auth(plugins.ConfServerApp):
|
|
||||||
def __init__(self):
|
|
||||||
self.name = "v1_global_auth"
|
|
||||||
self.plugin_type = "sub_api"
|
|
||||||
self.sub_api = "api_v1"
|
|
||||||
|
|
||||||
self.routes = [
|
|
||||||
web.route(
|
|
||||||
"*",
|
|
||||||
"/global/auth/getAuthCode",
|
|
||||||
auth_util.get_authcode,
|
|
||||||
name="v1_global_auth_getAuthCode",
|
|
||||||
),
|
|
||||||
]
|
|
||||||
1
bumper/web/plugins/v1/__init__.py
Normal file
1
bumper/web/plugins/v1/__init__.py
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
"""V1 plugins module."""
|
||||||
23
bumper/web/plugins/v1/global_auth.py
Normal file
23
bumper/web/plugins/v1/global_auth.py
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
"""Global auth plugin module."""
|
||||||
|
from typing import Iterable
|
||||||
|
|
||||||
|
from aiohttp import web
|
||||||
|
from aiohttp.web_routedef import AbstractRouteDef
|
||||||
|
|
||||||
|
from ... import auth_util
|
||||||
|
from .. import WebserverPlugin
|
||||||
|
|
||||||
|
|
||||||
|
class GlobalAuthPlugin(WebserverPlugin):
|
||||||
|
"""Global auth plugin."""
|
||||||
|
|
||||||
|
@property
|
||||||
|
def routes(self) -> Iterable[AbstractRouteDef]:
|
||||||
|
"""Plugin routes."""
|
||||||
|
return [
|
||||||
|
web.route(
|
||||||
|
"*",
|
||||||
|
"/global/auth/getAuthCode",
|
||||||
|
auth_util.get_authcode,
|
||||||
|
),
|
||||||
|
]
|
||||||
1
bumper/web/plugins/v1/private/__init__.py
Normal file
1
bumper/web/plugins/v1/private/__init__.py
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
"""Private plugins module."""
|
||||||
|
|
@ -1,30 +1,32 @@
|
||||||
|
"""Ad plugin module."""
|
||||||
import logging
|
import logging
|
||||||
|
from typing import Iterable
|
||||||
|
|
||||||
from aiohttp import web
|
from aiohttp import web
|
||||||
|
from aiohttp.web_routedef import AbstractRouteDef
|
||||||
|
|
||||||
from bumper import plugins
|
|
||||||
from bumper.models import RETURN_API_SUCCESS
|
from bumper.models import RETURN_API_SUCCESS
|
||||||
from bumper.util import get_current_time_as_millis
|
from bumper.util import get_current_time_as_millis
|
||||||
|
|
||||||
|
from ... import WebserverPlugin
|
||||||
|
|
||||||
class v1_private_ad(plugins.ConfServerApp):
|
|
||||||
def __init__(self):
|
|
||||||
self.name = "v1_private_ad"
|
|
||||||
self.plugin_type = "sub_api"
|
|
||||||
self.sub_api = "api_v1"
|
|
||||||
|
|
||||||
self.routes = [
|
class AdPlugin(WebserverPlugin):
|
||||||
|
"""Ad plugin."""
|
||||||
|
|
||||||
|
@property
|
||||||
|
def routes(self) -> Iterable[AbstractRouteDef]:
|
||||||
|
"""Plugin routes."""
|
||||||
|
return [
|
||||||
web.route(
|
web.route(
|
||||||
"*",
|
"*",
|
||||||
"/private/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/ad/getAdByPositionType",
|
"/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/ad/getAdByPositionType",
|
||||||
self.handle_getAdByPositionType,
|
self.handle_getAdByPositionType,
|
||||||
name="v1_ad_getAdByPositionType",
|
|
||||||
),
|
),
|
||||||
web.route(
|
web.route(
|
||||||
"*",
|
"*",
|
||||||
"/private/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/ad/getBootScreen",
|
"/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/ad/getBootScreen",
|
||||||
self.handle_getBootScreen,
|
self.handle_getBootScreen,
|
||||||
name="v1_ad_getBootScreen",
|
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
@ -1,23 +1,27 @@
|
||||||
|
"""Campaign plugin module."""
|
||||||
import logging
|
import logging
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
|
from typing import Iterable
|
||||||
|
|
||||||
from aiohttp import web
|
from aiohttp import web
|
||||||
|
from aiohttp.web_routedef import AbstractRouteDef
|
||||||
|
|
||||||
from bumper import plugins
|
|
||||||
from bumper.models import RETURN_API_SUCCESS
|
from bumper.models import RETURN_API_SUCCESS
|
||||||
from bumper.util import convert_to_millis, get_current_time_as_millis
|
from bumper.util import convert_to_millis, get_current_time_as_millis
|
||||||
|
|
||||||
|
from ... import WebserverPlugin
|
||||||
|
|
||||||
class v1_private_campaign(plugins.ConfServerApp):
|
|
||||||
def __init__(self):
|
|
||||||
self.name = "v1_private_campaign"
|
|
||||||
self.plugin_type = "sub_api"
|
|
||||||
self.sub_api = "api_v1"
|
|
||||||
|
|
||||||
self.routes = [
|
class CampaignPlugin(WebserverPlugin):
|
||||||
|
"""Campaign plugin."""
|
||||||
|
|
||||||
|
@property
|
||||||
|
def routes(self) -> Iterable[AbstractRouteDef]:
|
||||||
|
"""Plugin routes."""
|
||||||
|
return [
|
||||||
web.route(
|
web.route(
|
||||||
"*",
|
"*",
|
||||||
"/private/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/campaign/homePageAlert",
|
"/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/campaign/homePageAlert",
|
||||||
self.handle_homePageAlert,
|
self.handle_homePageAlert,
|
||||||
name="v1_campaign_homePageAlert",
|
name="v1_campaign_homePageAlert",
|
||||||
),
|
),
|
||||||
|
|
@ -1,66 +1,63 @@
|
||||||
|
"""Common plugin module."""
|
||||||
import logging
|
import logging
|
||||||
|
from typing import Iterable
|
||||||
|
|
||||||
from aiohttp import web
|
from aiohttp import web
|
||||||
|
from aiohttp.web_routedef import AbstractRouteDef
|
||||||
|
|
||||||
from bumper import plugins
|
|
||||||
from bumper.models import RETURN_API_SUCCESS
|
from bumper.models import RETURN_API_SUCCESS
|
||||||
from bumper.util import get_current_time_as_millis
|
from bumper.util import get_current_time_as_millis
|
||||||
|
|
||||||
|
from ... import WebserverPlugin
|
||||||
|
|
||||||
class v1_private_common(plugins.ConfServerApp):
|
|
||||||
def __init__(self):
|
|
||||||
self.name = "v1_private_common"
|
|
||||||
self.plugin_type = "sub_api"
|
|
||||||
self.sub_api = "api_v1"
|
|
||||||
|
|
||||||
self.routes = [
|
class CommonPlugin(WebserverPlugin):
|
||||||
|
"""Common plugin."""
|
||||||
|
|
||||||
|
@property
|
||||||
|
def routes(self) -> Iterable[AbstractRouteDef]:
|
||||||
|
"""Plugin routes."""
|
||||||
|
return [
|
||||||
web.route(
|
web.route(
|
||||||
"*",
|
"*",
|
||||||
"/private/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/common/checkAPPVersion",
|
"/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/common/checkAPPVersion",
|
||||||
self.handle_checkAPPVersion,
|
self.handle_checkAPPVersion,
|
||||||
name="v1_common_checkAppVersion",
|
name="v1_common_checkAppVersion",
|
||||||
),
|
),
|
||||||
web.route(
|
web.route(
|
||||||
"*",
|
"*",
|
||||||
"/private/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/common/checkVersion",
|
"/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/common/checkVersion",
|
||||||
self.handle_checkVersion,
|
self.handle_checkVersion,
|
||||||
name="v1_common_checkVersion",
|
|
||||||
),
|
),
|
||||||
web.route(
|
web.route(
|
||||||
"*",
|
"*",
|
||||||
"/private/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/common/uploadDeviceInfo",
|
"/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/common/uploadDeviceInfo",
|
||||||
self.handle_uploadDeviceInfo,
|
self.handle_uploadDeviceInfo,
|
||||||
name="v1_common_uploadDeviceInfo",
|
|
||||||
),
|
),
|
||||||
web.route(
|
web.route(
|
||||||
"*",
|
"*",
|
||||||
"/private/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/common/getSystemReminder",
|
"/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/common/getSystemReminder",
|
||||||
self.handle_getSystemReminder,
|
self.handle_getSystemReminder,
|
||||||
name="v1_common_getSystemReminder",
|
|
||||||
),
|
),
|
||||||
web.route(
|
web.route(
|
||||||
"*",
|
"*",
|
||||||
"/private/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/common/getConfig",
|
"/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/common/getConfig",
|
||||||
self.handle_getConfig,
|
self.handle_getConfig,
|
||||||
name="v1_common_getConfig",
|
|
||||||
),
|
),
|
||||||
web.route(
|
web.route(
|
||||||
"*",
|
"*",
|
||||||
"/private/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/common/getAreas",
|
"/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/common/getAreas",
|
||||||
self.handle_getAreas,
|
self.handle_getAreas,
|
||||||
name="v1_common_getAreas",
|
|
||||||
),
|
),
|
||||||
web.route(
|
web.route(
|
||||||
"*",
|
"*",
|
||||||
"/private/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/common/getAgreementURLBatch",
|
"/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/common/getAgreementURLBatch",
|
||||||
self.handle_getAgreementURLBatch,
|
self.handle_getAgreementURLBatch,
|
||||||
name="v1_common_getAgreementURLBatch",
|
|
||||||
),
|
),
|
||||||
web.route(
|
web.route(
|
||||||
"*",
|
"*",
|
||||||
"/private/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/common/getTimestamp",
|
"/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/common/getTimestamp",
|
||||||
self.handle_getTimestamp,
|
self.handle_getTimestamp,
|
||||||
name="v1_common_getTimestamp",
|
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
@ -1,30 +1,31 @@
|
||||||
import logging
|
import logging
|
||||||
|
from typing import Iterable
|
||||||
|
|
||||||
from aiohttp import web
|
from aiohttp import web
|
||||||
|
from aiohttp.web_routedef import AbstractRouteDef
|
||||||
|
|
||||||
from bumper import plugins
|
|
||||||
from bumper.models import RETURN_API_SUCCESS
|
from bumper.models import RETURN_API_SUCCESS
|
||||||
from bumper.util import get_current_time_as_millis
|
from bumper.util import get_current_time_as_millis
|
||||||
|
|
||||||
|
from ... import WebserverPlugin
|
||||||
|
|
||||||
class v1_private_message(plugins.ConfServerApp):
|
|
||||||
def __init__(self):
|
|
||||||
self.name = "v1_private_message"
|
|
||||||
self.plugin_type = "sub_api"
|
|
||||||
self.sub_api = "api_v1"
|
|
||||||
|
|
||||||
self.routes = [
|
class MessagePlugin(WebserverPlugin):
|
||||||
|
"""Message plugin."""
|
||||||
|
|
||||||
|
@property
|
||||||
|
def routes(self) -> Iterable[AbstractRouteDef]:
|
||||||
|
"""Plugin routes."""
|
||||||
|
return [
|
||||||
web.route(
|
web.route(
|
||||||
"*",
|
"*",
|
||||||
"/private/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/message/hasUnreadMsg",
|
"/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/message/hasUnreadMsg",
|
||||||
self.handle_hasUnreadMessage,
|
self.handle_hasUnreadMessage,
|
||||||
name="v1_message_hasUnreadMsg",
|
|
||||||
),
|
),
|
||||||
web.route(
|
web.route(
|
||||||
"*",
|
"*",
|
||||||
"/private/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/message/getMsgList",
|
"/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/message/getMsgList",
|
||||||
self.handle_getMsgList,
|
self.handle_getMsgList,
|
||||||
name="v1_message_getMsgList",
|
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
@ -1,24 +1,27 @@
|
||||||
|
"""Shop plugin module."""
|
||||||
import logging
|
import logging
|
||||||
|
from typing import Iterable
|
||||||
|
|
||||||
from aiohttp import web
|
from aiohttp import web
|
||||||
|
from aiohttp.web_routedef import AbstractRouteDef
|
||||||
|
|
||||||
from bumper import plugins
|
|
||||||
from bumper.models import RETURN_API_SUCCESS
|
from bumper.models import RETURN_API_SUCCESS
|
||||||
from bumper.util import get_current_time_as_millis
|
from bumper.util import get_current_time_as_millis
|
||||||
|
|
||||||
|
from ... import WebserverPlugin
|
||||||
|
|
||||||
class v1_private_shop(plugins.ConfServerApp):
|
|
||||||
def __init__(self):
|
|
||||||
self.name = "v1_private_shop"
|
|
||||||
self.plugin_type = "sub_api"
|
|
||||||
self.sub_api = "api_v1"
|
|
||||||
|
|
||||||
self.routes = [
|
class ShopPlugin(WebserverPlugin):
|
||||||
|
"""Shop plugin."""
|
||||||
|
|
||||||
|
@property
|
||||||
|
def routes(self) -> Iterable[AbstractRouteDef]:
|
||||||
|
"""Plugin routes."""
|
||||||
|
return [
|
||||||
web.route(
|
web.route(
|
||||||
"*",
|
"*",
|
||||||
"/private/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/shop/getCnWapShopConfig",
|
"/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/shop/getCnWapShopConfig",
|
||||||
self.handle_getCnWapShopConfig,
|
self.handle_getCnWapShopConfig,
|
||||||
name="v1_shop_getCnWapShopConfig",
|
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
@ -1,89 +1,80 @@
|
||||||
import logging
|
import logging
|
||||||
|
from typing import Iterable
|
||||||
|
|
||||||
from aiohttp import web
|
from aiohttp import web
|
||||||
|
from aiohttp.web_routedef import AbstractRouteDef
|
||||||
|
|
||||||
from bumper import plugins
|
|
||||||
from bumper.models import RETURN_API_SUCCESS
|
from bumper.models import RETURN_API_SUCCESS
|
||||||
from bumper.util import get_current_time_as_millis
|
from bumper.util import get_current_time_as_millis
|
||||||
from bumper.web import auth_util
|
from bumper.web import auth_util
|
||||||
|
|
||||||
|
from ... import WebserverPlugin
|
||||||
|
|
||||||
class v1_private_user(plugins.ConfServerApp):
|
|
||||||
def __init__(self):
|
|
||||||
|
|
||||||
self.name = "v1_private_user"
|
class UserPlugin(WebserverPlugin):
|
||||||
self.plugin_type = "sub_api"
|
"""User plugin."""
|
||||||
self.sub_api = "api_v1"
|
|
||||||
|
|
||||||
self.routes = [
|
@property
|
||||||
|
def routes(self) -> Iterable[AbstractRouteDef]:
|
||||||
|
"""Plugin routes."""
|
||||||
|
return [
|
||||||
web.route(
|
web.route(
|
||||||
"*",
|
"*",
|
||||||
"/private/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/user/login",
|
"/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/user/login",
|
||||||
auth_util.login,
|
auth_util.login,
|
||||||
name="v1_user_login",
|
|
||||||
),
|
),
|
||||||
web.route(
|
web.route(
|
||||||
"*",
|
"*",
|
||||||
"/private/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/user/checkLogin",
|
"/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/user/checkLogin",
|
||||||
auth_util.login,
|
auth_util.login,
|
||||||
name="v1_user_checkLogin",
|
|
||||||
),
|
),
|
||||||
web.route(
|
web.route(
|
||||||
"*",
|
"*",
|
||||||
"/private/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/user/getAuthCode",
|
"/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/user/getAuthCode",
|
||||||
auth_util.get_authcode,
|
auth_util.get_authcode,
|
||||||
name="v1_user_getAuthCode",
|
|
||||||
),
|
),
|
||||||
web.route(
|
web.route(
|
||||||
"*",
|
"*",
|
||||||
"/private/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/user/logout",
|
"/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/user/logout",
|
||||||
auth_util.logout,
|
auth_util.logout,
|
||||||
name="v1_user_logout",
|
|
||||||
),
|
),
|
||||||
web.route(
|
web.route(
|
||||||
"*",
|
"*",
|
||||||
"/private/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/user/checkAgreement",
|
"/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/user/checkAgreement",
|
||||||
self.handle_checkAgreement,
|
self.handle_checkAgreement,
|
||||||
name="v1_user_checkAgreement",
|
|
||||||
),
|
),
|
||||||
web.route(
|
web.route(
|
||||||
"*",
|
"*",
|
||||||
"/private/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/user/checkAgreementBatch",
|
"/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/user/checkAgreementBatch",
|
||||||
self.handle_checkAgreement,
|
self.handle_checkAgreement,
|
||||||
name="v1_user_checkAgreementBatch",
|
|
||||||
),
|
),
|
||||||
web.route(
|
web.route(
|
||||||
"*",
|
"*",
|
||||||
"/private/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/user/getUserAccountInfo",
|
"/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/user/getUserAccountInfo",
|
||||||
auth_util.get_user_account_info,
|
auth_util.get_user_account_info,
|
||||||
name="v1_user_getUserAccountInfo",
|
|
||||||
),
|
),
|
||||||
web.route(
|
web.route(
|
||||||
"*",
|
"*",
|
||||||
"/private/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/user/getUserMenuInfo",
|
"/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/user/getUserMenuInfo",
|
||||||
self.handle_getUserMenuInfo,
|
self.handle_getUserMenuInfo,
|
||||||
name="v1_user_getUserMenuInfo",
|
|
||||||
),
|
),
|
||||||
web.route(
|
web.route(
|
||||||
"*",
|
"*",
|
||||||
"/private/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/user/changeArea",
|
"/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/user/changeArea",
|
||||||
self.handle_changeArea,
|
self.handle_changeArea,
|
||||||
name="v1_user_changeArea",
|
|
||||||
),
|
),
|
||||||
web.route(
|
web.route(
|
||||||
"*",
|
"*",
|
||||||
"/private/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/user/queryChangeArea",
|
"/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/user/queryChangeArea",
|
||||||
self.handle_changeArea,
|
self.handle_changeArea,
|
||||||
name="v1_user_queryChangeArea",
|
|
||||||
),
|
),
|
||||||
web.route(
|
web.route(
|
||||||
"*",
|
"*",
|
||||||
"/private/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/user/acceptAgreementBatch",
|
"/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/user/acceptAgreementBatch",
|
||||||
self.handle_acceptAgreementBatch,
|
self.handle_acceptAgreementBatch,
|
||||||
name="v1_user_acceptAgreementBatch",
|
|
||||||
),
|
),
|
||||||
# Direct register from app:
|
# Direct register from app:
|
||||||
# /{apiversion}/private/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/user/directRegister
|
# /{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/user/directRegister
|
||||||
# Register by email
|
# Register by email
|
||||||
# /registerByEmail
|
# /registerByEmail
|
||||||
]
|
]
|
||||||
|
|
@ -1,25 +1,28 @@
|
||||||
|
"""user setting plugin module."""
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
|
from typing import Iterable
|
||||||
|
|
||||||
from aiohttp import web
|
from aiohttp import web
|
||||||
|
from aiohttp.web_routedef import AbstractRouteDef
|
||||||
|
|
||||||
from bumper import plugins
|
|
||||||
from bumper.models import RETURN_API_SUCCESS
|
from bumper.models import RETURN_API_SUCCESS
|
||||||
from bumper.util import get_current_time_as_millis
|
from bumper.util import get_current_time_as_millis
|
||||||
|
|
||||||
|
from ... import WebserverPlugin
|
||||||
|
|
||||||
class v1_private_userSetting(plugins.ConfServerApp):
|
|
||||||
def __init__(self):
|
|
||||||
|
|
||||||
self.name = "v1_private_userSetting"
|
class UserSettingPlugin(WebserverPlugin):
|
||||||
self.plugin_type = "sub_api"
|
"""User setting plugin."""
|
||||||
self.sub_api = "api_v1"
|
|
||||||
|
|
||||||
self.routes = [
|
@property
|
||||||
|
def routes(self) -> Iterable[AbstractRouteDef]:
|
||||||
|
"""Plugin routes."""
|
||||||
|
return [
|
||||||
web.route(
|
web.route(
|
||||||
"*",
|
"*",
|
||||||
"/private/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/userSetting/getSuggestionSetting",
|
"/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/userSetting/getSuggestionSetting",
|
||||||
self.handle_getSuggestionSetting,
|
self.handle_getSuggestionSetting,
|
||||||
name="v1_userSetting_getSuggestionSetting",
|
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue