Skip to content

Instantly share code, notes, and snippets.

@Albus
Last active October 24, 2023 13:23
Show Gist options
  • Save Albus/b5ef4e2fbdfb4340294a603746114614 to your computer and use it in GitHub Desktop.
Save Albus/b5ef4e2fbdfb4340294a603746114614 to your computer and use it in GitHub Desktop.
Сервис общих баз данных 1С
from hashlib import sha1
from pathlib import Path
from typing import Union
from uuid import UUID, uuid4
from fastapi import FastAPI, Response
from uvicorn import Server, Config
app = FastAPI(debug=True, docs_url=None, redoc_url=None)
@app.head(r'/WebCommonInfoBases', response_class=Response, response_model=None)
async def web_common_info_bases_head(): pass
v8i = {r'InfoBases': Path(r'ibases.v8i').read_bytes()}
v8i.setdefault(r'InfoBasesCheckCode', sha1(v8i[r'InfoBases']).hexdigest()) # noqa
@app.get(r'/WebCommonInfoBases/CheckInfoBases/')
async def web_common_info_bases_get(ClientID: UUID, InfoBasesCheckCode: Union[UUID, str]): # noqa
return {r'root': {r'InfoBasesChanged': not v8i[r'InfoBasesCheckCode'] == InfoBasesCheckCode}}
@app.get(r'/WebCommonInfoBases/GetInfoBases/')
async def web_common_info_bases_get(ClientID: UUID, InfoBasesCheckCode: Union[UUID, str]): # noqa
return {r'root': {r'ClientID': uuid4() if not ClientID.int else ClientID, **v8i}}
if __name__ == r'__main__':
Server(Config(app=app, host=r'127.0.0.1', port=8000, debug=app.debug, date_header=False, server_header=False)).run()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment