user count copied to v2
parent
4e9c1a74cc
commit
06c60d557a
|
|
@ -166,7 +166,7 @@ namespace VELConnect
|
||||||
{ "version", Application.version },
|
{ "version", Application.version },
|
||||||
{ "platform", SystemInfo.operatingSystem },
|
{ "platform", SystemInfo.operatingSystem },
|
||||||
};
|
};
|
||||||
PostRequestCallback(velConnectUrl + "/api/update_user_count", JsonConvert.SerializeObject(postData));
|
PostRequestCallback(velConnectUrl + "/api/v2/update_user_count", JsonConvert.SerializeObject(postData));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ from fastapi.staticfiles import StaticFiles
|
||||||
from routes.api import router as api_router
|
from routes.api import router as api_router
|
||||||
from routes.api_v2 import router as api_v2_router
|
from routes.api_v2 import router as api_v2_router
|
||||||
from routes.user_count import router as user_count_router
|
from routes.user_count import router as user_count_router
|
||||||
|
from routes.user_count_v2 import router as user_count_v2_router
|
||||||
from routes.oculus_api import router as oculus_api_router
|
from routes.oculus_api import router as oculus_api_router
|
||||||
from routes.website import router as website_router
|
from routes.website import router as website_router
|
||||||
|
|
||||||
|
|
@ -31,6 +32,7 @@ app.mount("/static", StaticFiles(directory="static"), name="static")
|
||||||
app.include_router(api_router)
|
app.include_router(api_router)
|
||||||
app.include_router(api_v2_router)
|
app.include_router(api_v2_router)
|
||||||
app.include_router(user_count_router)
|
app.include_router(user_count_router)
|
||||||
|
app.include_router(user_count_v2_router)
|
||||||
app.include_router(oculus_api_router)
|
app.include_router(oculus_api_router)
|
||||||
app.include_router(website_router)
|
app.include_router(website_router)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -50,6 +50,10 @@ async def read_root():
|
||||||
def get_all_devices():
|
def get_all_devices():
|
||||||
"""Returns a list of all devices and details associated with them."""
|
"""Returns a list of all devices and details associated with them."""
|
||||||
values = db.query("SELECT * FROM `Device`;")
|
values = db.query("SELECT * FROM `Device`;")
|
||||||
|
values = [dict(v) for v in values]
|
||||||
|
for device in values:
|
||||||
|
if 'data' in device and len(device['data']) > 0:
|
||||||
|
device['data'] = json.loads(device['data'])
|
||||||
return values
|
return values
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -27,42 +27,28 @@ post_user_count_example = {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@router.post('/update_user_count')
|
@router.post('/update_user_count', tags=["User Count"])
|
||||||
def update_user_count(data: dict = fastapi.Body(..., examples=post_user_count_example)) -> dict:
|
def update_user_count(data: dict):
|
||||||
if 'app_id' not in data:
|
|
||||||
data['app_id'] = ""
|
|
||||||
|
|
||||||
db.insert("""
|
db.insert("""
|
||||||
REPLACE INTO `UserCount` (
|
REPLACE INTO `UserCount`
|
||||||
timestamp,
|
|
||||||
hw_id,
|
|
||||||
app_id,
|
|
||||||
room_id,
|
|
||||||
total_users,
|
|
||||||
room_users,
|
|
||||||
version,
|
|
||||||
platform
|
|
||||||
)
|
|
||||||
VALUES(
|
VALUES(
|
||||||
CURRENT_TIMESTAMP,
|
CURRENT_TIMESTAMP,
|
||||||
:hw_id,
|
%(hw_id)s,
|
||||||
:app_id,
|
%(room_id)s,
|
||||||
:room_id,
|
%(total_users)s,
|
||||||
:total_users,
|
%(room_users)s,
|
||||||
:room_users,
|
%(version)s,
|
||||||
:version,
|
%(platform)s
|
||||||
:platform
|
|
||||||
);
|
);
|
||||||
""", data)
|
""", data)
|
||||||
return {'success': True}
|
return {'success': True}
|
||||||
|
|
||||||
|
|
||||||
@router.get('/get_user_count')
|
@router.get('/get_user_count', tags=["User Count"])
|
||||||
def get_user_count(app_id: str = None, hours: float = 24) -> list:
|
def get_user_count(hours: float = 24):
|
||||||
values = db.query("""
|
values = db.query("""
|
||||||
SELECT timestamp, total_users
|
SELECT timestamp, total_users
|
||||||
FROM `UserCount`
|
FROM `UserCount`
|
||||||
WHERE app_id = :app_id AND
|
WHERE TIMESTAMP > DATE_SUB(NOW(), INTERVAL """ + str(hours) + """ HOUR);
|
||||||
timestamp > datetime('now', '-""" + str(hours) + """ Hour');
|
""")
|
||||||
""", {"app_id": app_id})
|
return values
|
||||||
return values
|
|
||||||
|
|
@ -0,0 +1,68 @@
|
||||||
|
import fastapi
|
||||||
|
|
||||||
|
import db
|
||||||
|
|
||||||
|
db = db.DB("velconnect_v2.db")
|
||||||
|
|
||||||
|
# APIRouter creates path operations for user module
|
||||||
|
router = fastapi.APIRouter(
|
||||||
|
prefix="/api/v2",
|
||||||
|
tags=["User Count V2"],
|
||||||
|
responses={404: {"description": "Not found"}},
|
||||||
|
)
|
||||||
|
|
||||||
|
post_user_count_example = {
|
||||||
|
"default": {
|
||||||
|
"summary": "Example insert for user count",
|
||||||
|
"value": {
|
||||||
|
"hw_id": "1234",
|
||||||
|
"app_id": "example",
|
||||||
|
"room_id": "0",
|
||||||
|
"total_users": 1,
|
||||||
|
"room_users": 1,
|
||||||
|
"version": "0.1",
|
||||||
|
"platform": "Windows"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@router.post('/update_user_count')
|
||||||
|
def update_user_count(data: dict = fastapi.Body(..., examples=post_user_count_example)) -> dict:
|
||||||
|
if 'app_id' not in data:
|
||||||
|
data['app_id'] = ""
|
||||||
|
|
||||||
|
db.insert("""
|
||||||
|
REPLACE INTO `UserCount` (
|
||||||
|
timestamp,
|
||||||
|
hw_id,
|
||||||
|
app_id,
|
||||||
|
room_id,
|
||||||
|
total_users,
|
||||||
|
room_users,
|
||||||
|
version,
|
||||||
|
platform
|
||||||
|
)
|
||||||
|
VALUES(
|
||||||
|
CURRENT_TIMESTAMP,
|
||||||
|
:hw_id,
|
||||||
|
:app_id,
|
||||||
|
:room_id,
|
||||||
|
:total_users,
|
||||||
|
:room_users,
|
||||||
|
:version,
|
||||||
|
:platform
|
||||||
|
);
|
||||||
|
""", data)
|
||||||
|
return {'success': True}
|
||||||
|
|
||||||
|
|
||||||
|
@router.get('/get_user_count')
|
||||||
|
def get_user_count(app_id: str = None, hours: float = 24) -> list:
|
||||||
|
values = db.query("""
|
||||||
|
SELECT timestamp, total_users
|
||||||
|
FROM `UserCount`
|
||||||
|
WHERE app_id = :app_id AND
|
||||||
|
timestamp > datetime('now', '-""" + str(hours) + """ Hour');
|
||||||
|
""", {"app_id": app_id})
|
||||||
|
return values
|
||||||
Loading…
Reference in New Issue