add missing endpoints
This commit is contained in:
parent
b984261749
commit
35834b47cb
6 changed files with 335 additions and 9 deletions
|
|
@ -32,14 +32,29 @@ class AppsvrPlugin(WebserverPlugin):
|
||||||
),
|
),
|
||||||
web.route(
|
web.route(
|
||||||
"*",
|
"*",
|
||||||
"/appsvr/service/list",
|
"/appsvr/app/config",
|
||||||
_handle_appsvr_service_list,
|
_handle_appsvr_app_config,
|
||||||
|
),
|
||||||
|
web.route(
|
||||||
|
"*",
|
||||||
|
"/appsvr/improve/accept",
|
||||||
|
_handle_appsvr_improve_accept,
|
||||||
|
),
|
||||||
|
web.route(
|
||||||
|
"*",
|
||||||
|
"/appsvr/notice/home",
|
||||||
|
_handle_appsvr_notice_home,
|
||||||
),
|
),
|
||||||
web.route(
|
web.route(
|
||||||
"*",
|
"*",
|
||||||
"/appsvr/oauth_callback",
|
"/appsvr/oauth_callback",
|
||||||
_handle_appsvr_oauth_callback,
|
_handle_appsvr_oauth_callback,
|
||||||
),
|
),
|
||||||
|
web.route(
|
||||||
|
"*",
|
||||||
|
"/appsvr/service/list",
|
||||||
|
_handle_appsvr_service_list,
|
||||||
|
),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -56,7 +71,7 @@ async def _handle_appsvr_app(request: Request) -> Response:
|
||||||
|
|
||||||
todo = postbody["todo"]
|
todo = postbody["todo"]
|
||||||
|
|
||||||
if todo == "GetGlobalDeviceList": # EcoVacs Home
|
if todo == "GetGlobalDeviceList":
|
||||||
bots = db_get().table("bots").all()
|
bots = db_get().table("bots").all()
|
||||||
devices = []
|
devices = []
|
||||||
for bot in bots:
|
for bot in bots:
|
||||||
|
|
@ -74,6 +89,15 @@ async def _handle_appsvr_app(request: Request) -> Response:
|
||||||
}
|
}
|
||||||
|
|
||||||
return web.json_response(body)
|
return web.json_response(body)
|
||||||
|
if todo == "GetCodepush":
|
||||||
|
return web.json_response(
|
||||||
|
{
|
||||||
|
"code": 0,
|
||||||
|
"data": {"extend": {}, "type": "microsoft", "url": ""},
|
||||||
|
"ret": "ok",
|
||||||
|
"todo": "result",
|
||||||
|
}
|
||||||
|
)
|
||||||
except Exception: # pylint: disable=broad-except
|
except Exception: # pylint: disable=broad-except
|
||||||
logging.error("Unexpected exception occurred", exc_info=True)
|
logging.error("Unexpected exception occurred", exc_info=True)
|
||||||
|
|
||||||
|
|
@ -171,3 +195,151 @@ async def _handle_appsvr_oauth_callback(request: Request) -> Response:
|
||||||
logging.error("Unexpected exception occurred", exc_info=True)
|
logging.error("Unexpected exception occurred", exc_info=True)
|
||||||
|
|
||||||
raise HTTPInternalServerError
|
raise HTTPInternalServerError
|
||||||
|
|
||||||
|
|
||||||
|
async def _handle_appsvr_improve_accept(_: Request) -> Response:
|
||||||
|
return web.json_response({"code": 0})
|
||||||
|
|
||||||
|
|
||||||
|
async def _handle_appsvr_notice_home(_: Request) -> Response:
|
||||||
|
return web.json_response({"code": 0, "data": [], "ret": "ok", "todo": "result"})
|
||||||
|
|
||||||
|
|
||||||
|
async def _handle_appsvr_app_config(_: Request) -> Response:
|
||||||
|
body = {
|
||||||
|
"todo": "result",
|
||||||
|
"ret": "ok",
|
||||||
|
"code": 0,
|
||||||
|
"data": [
|
||||||
|
{
|
||||||
|
"resId": "614d73873d80d1deed8be299",
|
||||||
|
"code": "codepush_config",
|
||||||
|
"name": "",
|
||||||
|
"description": "",
|
||||||
|
"type": "jsonObject",
|
||||||
|
"content": {
|
||||||
|
"netDiagno": {
|
||||||
|
"deploymentKey": {
|
||||||
|
"production": "1YhT34XSJJ-iUPtrBsi-zXA1LPCyAtLjsEW7IU",
|
||||||
|
"staging": "Cqn5Kl-UYcru2RYKN9xJvMHaA7lWAmd7d-vli",
|
||||||
|
"current": "production",
|
||||||
|
},
|
||||||
|
"version": "1.0.0",
|
||||||
|
},
|
||||||
|
"robotDiscovery": {
|
||||||
|
"deploymentKey": {
|
||||||
|
"production": "z94xCOc2FnBqdw6IJMFvMoWFLALxVNGsK0wHuJ",
|
||||||
|
"staging": "w3nVjj2mBV1JdO8tBO2JcU8EL4W6nBrv8KOVo",
|
||||||
|
"current": "production",
|
||||||
|
},
|
||||||
|
"version": "1.0.0",
|
||||||
|
},
|
||||||
|
"language": {
|
||||||
|
"deploymentKey": {
|
||||||
|
"production": "mQ7b_ImAD5t_hapi17Dt_CK0ZU1nArKrTYdCTI",
|
||||||
|
"staging": "IPbEkwK4wD9MCzWtncXQ8C0lDdLQxOMn13Owg",
|
||||||
|
"current": "production",
|
||||||
|
},
|
||||||
|
"version": "1.0.0",
|
||||||
|
},
|
||||||
|
"winbot": {
|
||||||
|
"deploymentKey": {
|
||||||
|
"production": "QEdpHlrNp1ANHhYFbEJ63dYo1bcsZCShQ9H938",
|
||||||
|
"staging": "uYmbjPDsvnfIBjjY9pM0PdESrZX8_QxMpm-bH",
|
||||||
|
"current": "production",
|
||||||
|
},
|
||||||
|
"version": "1.0.0",
|
||||||
|
},
|
||||||
|
"beluga": {
|
||||||
|
"deploymentKey": {
|
||||||
|
"production": "vhaH5f2nNpKiXPFDhVq6yf4gr6xFGAOKoMGTFT",
|
||||||
|
"staging": "RT1aLYD7YwQms9vs539Qn5GjRlExVWeMTOHeF",
|
||||||
|
},
|
||||||
|
"version": "1.0.0",
|
||||||
|
},
|
||||||
|
"hwPush": {
|
||||||
|
"deploymentKey": {
|
||||||
|
"production": "4cPMrbntK2vbs-KRgsrJq4HI0W-hrTHP1BMTKq",
|
||||||
|
"staging": "dXgPCPco60Fc_JlZ5S_bS0ZanhlaNiU9elFaj",
|
||||||
|
"current": "production",
|
||||||
|
},
|
||||||
|
"version": "1.0.0",
|
||||||
|
},
|
||||||
|
"t10More": {
|
||||||
|
"deploymentKey": {
|
||||||
|
"production": "RSYAx668chaf0tpKvf1kJNaVJmDzi4g83wsg78",
|
||||||
|
"staging": "yQeevYX5q1yVhr_dH0VwKNJ3x3iDBSxJ-E91G",
|
||||||
|
"current": "production",
|
||||||
|
},
|
||||||
|
"version": "1.0.0",
|
||||||
|
},
|
||||||
|
"test20": {
|
||||||
|
"deploymentKey": {
|
||||||
|
"production": "n1MBCZHFWVi3PFdxg-u6N7yF6CStEXtlKms3O",
|
||||||
|
"staging": "vCmfAvE-g-OkOvLm8ckIfjLwf1c9a-fBGI6u2",
|
||||||
|
"current": "production",
|
||||||
|
},
|
||||||
|
"version": "1.0.0",
|
||||||
|
},
|
||||||
|
"at90": {
|
||||||
|
"deploymentKey": {
|
||||||
|
"production": "1W2Lw4KvqTz0D-UMxzfZSEcv2yWpoD7SZyGzb4",
|
||||||
|
"staging": "bokwAmqkL-svCnwI8Fd1pGSHBSf-aBoXWtNyi",
|
||||||
|
"current": "production",
|
||||||
|
},
|
||||||
|
"version": "1.0.0",
|
||||||
|
},
|
||||||
|
"bruceMore": {
|
||||||
|
"deploymentKey": {
|
||||||
|
"production": "P5sN80W6TdO5nQ63CJWvtTgnu-BKYqxQmf8IEi",
|
||||||
|
"staging": "1FXFufgsGXUcHc2F7eLWPPDXDsVySG9sj5VKc",
|
||||||
|
"current": "production",
|
||||||
|
},
|
||||||
|
"version": "1.0.0",
|
||||||
|
},
|
||||||
|
"furniture": {
|
||||||
|
"deploymentKey": {
|
||||||
|
"production": "VKfJlwYCG58sJN3FfCjYGqRd2M81HCIn2kOBrw",
|
||||||
|
"staging": "M7lyba6OXxVBG_KrkIgbv569Jnwz6V1gdk0oA",
|
||||||
|
"current": "production",
|
||||||
|
},
|
||||||
|
"version": "1.0.0",
|
||||||
|
},
|
||||||
|
"bruce3dRes": {
|
||||||
|
"deploymentKey": {
|
||||||
|
"production": "uOtNaTLAbWAFiQhovEqW4nyhvUbSxFNF92vdiV",
|
||||||
|
"staging": "4mm6F3Jak4JtMwO2AMHlbTHElUOMWZd_IzL5P",
|
||||||
|
"current": "production",
|
||||||
|
},
|
||||||
|
"version": "2.1.4",
|
||||||
|
},
|
||||||
|
"t10H5": {
|
||||||
|
"deploymentKey": {
|
||||||
|
"production": "mackERM5dTh8cqiAk9MEBuRhdgLEytf1emmE4H",
|
||||||
|
"staging": "f93aQ5QrspoyG5vYvPTICrfmS65YJVNFuNJ0o",
|
||||||
|
"current": "production",
|
||||||
|
},
|
||||||
|
"version": "1.0.0",
|
||||||
|
},
|
||||||
|
"x1proH5": {
|
||||||
|
"deploymentKey": {
|
||||||
|
"production": "Wt3wZa8Hs69dbZgtNXsiNVcda9P-GBSBDm4lDw",
|
||||||
|
"staging": "UvSn3tgPRYfmhwT7YOwP4WO5Us6HKC-sq91HS",
|
||||||
|
"current": "production",
|
||||||
|
},
|
||||||
|
"version": "1.0.0",
|
||||||
|
},
|
||||||
|
"andyproH5": {
|
||||||
|
"deploymentKey": {
|
||||||
|
"production": "SmTGB14wfXJnTZ0iHh03tEq83S9j6vK_B0zI9s",
|
||||||
|
"staging": "zhiPemGhbl0FV3V8_kBY9luOBgLd55YwYuImG",
|
||||||
|
"current": "production",
|
||||||
|
},
|
||||||
|
"version": "1.0.0",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
],
|
||||||
|
}
|
||||||
|
|
||||||
|
return web.json_response(body)
|
||||||
|
|
|
||||||
52
bumper/web/plugins/api/homed.py
Normal file
52
bumper/web/plugins/api/homed.py
Normal file
|
|
@ -0,0 +1,52 @@
|
||||||
|
"""Homed plugin module."""
|
||||||
|
import logging
|
||||||
|
from typing import Iterable
|
||||||
|
|
||||||
|
from aiohttp import web
|
||||||
|
from aiohttp.web_exceptions import HTTPInternalServerError
|
||||||
|
from aiohttp.web_request import Request
|
||||||
|
from aiohttp.web_response import Response
|
||||||
|
from aiohttp.web_routedef import AbstractRouteDef
|
||||||
|
|
||||||
|
from .. import WebserverPlugin
|
||||||
|
|
||||||
|
|
||||||
|
class HomedPlugin(WebserverPlugin):
|
||||||
|
"""Homed plugin."""
|
||||||
|
|
||||||
|
@property
|
||||||
|
def routes(self) -> Iterable[AbstractRouteDef]:
|
||||||
|
"""Plugin routes."""
|
||||||
|
return [
|
||||||
|
web.route(
|
||||||
|
"*",
|
||||||
|
"(homed/home/list",
|
||||||
|
_handle_home_list,
|
||||||
|
),
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
async def _handle_home_list(request: Request) -> Response:
|
||||||
|
try:
|
||||||
|
body = {
|
||||||
|
"code": 0,
|
||||||
|
"data": [
|
||||||
|
{
|
||||||
|
"createTime": 1650545319746,
|
||||||
|
"createUser": request.query["userid"],
|
||||||
|
"createUserName": request.query["userid"],
|
||||||
|
"firstCreate": False,
|
||||||
|
"homeId": "781a0733923f2240cf304757",
|
||||||
|
"name": "My Home",
|
||||||
|
"type": "own",
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message": "success",
|
||||||
|
}
|
||||||
|
|
||||||
|
return web.json_response(body)
|
||||||
|
|
||||||
|
except Exception: # pylint: disable=broad-except
|
||||||
|
logging.error("Unexpected exception occurred", exc_info=True)
|
||||||
|
|
||||||
|
raise HTTPInternalServerError
|
||||||
3
bumper/web/plugins/v2/private/__init__.py
Normal file
3
bumper/web/plugins/v2/private/__init__.py
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
"""Private plugins module."""
|
||||||
|
|
||||||
|
BASE_URL = "/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/"
|
||||||
68
bumper/web/plugins/v2/private/common.py
Normal file
68
bumper/web/plugins/v2/private/common.py
Normal file
|
|
@ -0,0 +1,68 @@
|
||||||
|
"""Common plugin module."""
|
||||||
|
from typing import Iterable
|
||||||
|
|
||||||
|
from aiohttp import web
|
||||||
|
from aiohttp.web_request import Request
|
||||||
|
from aiohttp.web_response import Response
|
||||||
|
from aiohttp.web_routedef import AbstractRouteDef
|
||||||
|
|
||||||
|
from ... import WebserverPlugin, get_success_response
|
||||||
|
from . import BASE_URL
|
||||||
|
|
||||||
|
|
||||||
|
class CommonPlugin(WebserverPlugin):
|
||||||
|
"""Common plugin."""
|
||||||
|
|
||||||
|
@property
|
||||||
|
def routes(self) -> Iterable[AbstractRouteDef]:
|
||||||
|
"""Plugin routes."""
|
||||||
|
return [
|
||||||
|
web.route(
|
||||||
|
"*",
|
||||||
|
f"{BASE_URL}common/getBottomNavigateInfoList",
|
||||||
|
_handle_get_bottom_navigate_info_list,
|
||||||
|
),
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
async def _handle_get_bottom_navigate_info_list(_: Request) -> Response:
|
||||||
|
return get_success_response(
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"iconId": "20220630090128_a52665b919e83a96326cfd8d1500989b",
|
||||||
|
"iconName": "Roboter",
|
||||||
|
"iconType": "ROBOT",
|
||||||
|
"defaultImgUrl": "https://gl-us-pub.ecovacs.com/upload/global/2022/03/02/20220302010444_8b161f90b4245f740e439fe5eee49de5.png",
|
||||||
|
"lightImgUrl": "https://gl-us-pub.ecovacs.com/upload/global/2022/03/02/20220302010449_8f17ad41995c874d4fe1028f8c61a233.png",
|
||||||
|
"lightNameRgb": "#005EB8",
|
||||||
|
"mediaType": None,
|
||||||
|
"mediaUrl": "NULL",
|
||||||
|
"positionType": "Robot",
|
||||||
|
"tabItemActionUrl": None,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"iconId": "20220630090128_0c7424cf783de485ca15a43fb1f4ddf8",
|
||||||
|
"iconName": "Geschäft",
|
||||||
|
"iconType": "MALL",
|
||||||
|
"defaultImgUrl": "https://gl-us-pub.ecovacs.com/upload/global/2022/03/02/20220302010612_7db1c568c734cfb708e55b9f1eb3d71c.png",
|
||||||
|
"lightImgUrl": "https://gl-us-pub.ecovacs.com/upload/global/2022/03/02/20220302010617_0da5c81774dcf27bb2e37c44a1691d88.png",
|
||||||
|
"lightNameRgb": "#005EB8",
|
||||||
|
"mediaType": None,
|
||||||
|
"mediaUrl": "NULL",
|
||||||
|
"positionType": "Store",
|
||||||
|
"tabItemActionUrl": "https://www.ecovacs.com/it?utm_source=ecovacsGlobalApp&utm_medium=Appshopclick_IT&utm_campaign=Menu_IT",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"iconId": "20220630090128_67c33cb9c3120c5448e2cda230a7abd1",
|
||||||
|
"iconName": "Mein",
|
||||||
|
"iconType": "MINE",
|
||||||
|
"defaultImgUrl": "https://gl-us-pub.ecovacs.com/upload/global/2022/03/02/20220302011202_a79a79b85247a6dff7e27356de1293bb.png",
|
||||||
|
"lightImgUrl": "https://gl-us-pub.ecovacs.com/upload/global/2022/03/02/20220302011209_ff6592b7ae5b286f1bc3df52d9d5e7e3.png",
|
||||||
|
"lightNameRgb": "#005EB8",
|
||||||
|
"mediaType": None,
|
||||||
|
"mediaUrl": "NULL",
|
||||||
|
"positionType": "Mine",
|
||||||
|
"tabItemActionUrl": None,
|
||||||
|
},
|
||||||
|
]
|
||||||
|
)
|
||||||
29
bumper/web/plugins/v2/private/message.py
Normal file
29
bumper/web/plugins/v2/private/message.py
Normal file
|
|
@ -0,0 +1,29 @@
|
||||||
|
"""Message plugin module."""
|
||||||
|
from typing import Iterable
|
||||||
|
|
||||||
|
from aiohttp import web
|
||||||
|
from aiohttp.web_request import Request
|
||||||
|
from aiohttp.web_response import Response
|
||||||
|
from aiohttp.web_routedef import AbstractRouteDef
|
||||||
|
|
||||||
|
from ... import WebserverPlugin, get_success_response
|
||||||
|
from . import BASE_URL
|
||||||
|
|
||||||
|
|
||||||
|
class MessagePlugin(WebserverPlugin):
|
||||||
|
"""Message plugin."""
|
||||||
|
|
||||||
|
@property
|
||||||
|
def routes(self) -> Iterable[AbstractRouteDef]:
|
||||||
|
"""Plugin routes."""
|
||||||
|
return [
|
||||||
|
web.route(
|
||||||
|
"*",
|
||||||
|
f"{BASE_URL}message/hasMoreUnReadMsg",
|
||||||
|
_handle_has_more_unread_message,
|
||||||
|
),
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
async def _handle_has_more_unread_message(_: Request) -> Response:
|
||||||
|
return get_success_response({"moreUnReadMsg": "N"})
|
||||||
|
|
@ -1,15 +1,17 @@
|
||||||
"""Private user module."""
|
"""User plugin module."""
|
||||||
from typing import Iterable
|
from typing import Iterable
|
||||||
|
|
||||||
from aiohttp import web
|
from aiohttp import web
|
||||||
from aiohttp.web_routedef import AbstractRouteDef
|
from aiohttp.web_routedef import AbstractRouteDef
|
||||||
|
|
||||||
from ... import auth_util
|
from bumper.web import auth_util
|
||||||
from .. import WebserverPlugin
|
|
||||||
|
from ... import WebserverPlugin
|
||||||
|
from . import BASE_URL
|
||||||
|
|
||||||
|
|
||||||
class PrivateUserPlugin(WebserverPlugin):
|
class UserPlugin(WebserverPlugin):
|
||||||
"""Private user plugin."""
|
"""User plugin."""
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def routes(self) -> Iterable[AbstractRouteDef]:
|
def routes(self) -> Iterable[AbstractRouteDef]:
|
||||||
|
|
@ -17,7 +19,7 @@ class PrivateUserPlugin(WebserverPlugin):
|
||||||
return [
|
return [
|
||||||
web.route(
|
web.route(
|
||||||
"*",
|
"*",
|
||||||
"/private/{country}/{language}/{devid}/{apptype}/{appversion}/{devtype}/{aid}/user/checkLogin",
|
f"{BASE_URL}user/checkLogin",
|
||||||
auth_util.login,
|
auth_util.login,
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
Loading…
Add table
Add a link
Reference in a new issue