Ejemplo n.º 1
0
def read_structure(external_code: str, q: Optional[str] = None):
    db = redis_service.get_connection(settings.REDIS_DB)
    result = db.hget('structures', external_code)
    if result is None: raise HTTPException(404)

    db.hdel('structures', external_code)
    return Response(status_code=204)
Ejemplo n.º 2
0
def read_structure(external_code: str,
                   item: Structure = Body(...),
                   q: Optional[str] = None):
    if (item.external_code is not None and
            item.external_code != '') and external_code != item.external_code:
        raise HTTPException(
            400, "Request parameter doesn't match external code from Body")

    item.external_code = external_code
    db = redis_service.get_connection(settings.REDIS_DB)

    structure = db.hget('structures', external_code)
    structure = Structure.parse_result(structure)

    logger.info('From DB %s', structure)
    logger.info('JSON %s', structure.json())

    if structure is None:
        return None

    structure_dict = item.dict()
    for key in structure_dict:
        if key == 'id' or key == 'external_code': continue
        setattr(structure, key, structure_dict[key])

    json_data = {structure.external_code: structure.json()}
    db.hmset('structures', json_data)

    return structure
Ejemplo n.º 3
0
async def websocket_endpoint(websocket: WebSocket):

    await websocket.accept()
    while True:
        try:
            data = await websocket.receive_text()
            db = redis_service.get_connection(settings.REDIS_DB)
            result = db.hget('structures', data)
            result = Structure.parse_result(result)
            logger.info(data)
            logger.info(type(data))
            await websocket.send_json(result.dict())
        except json.JSONDecodeError:
            await websocket.send_json({"data": "error"})
Ejemplo n.º 4
0
def read_structures(q: Optional[str] = None):
    db = redis_service.get_connection(settings.REDIS_DB)
    result = db.hgetall('structures')
    return Structure.parse_result(result)
Ejemplo n.º 5
0
def read_structure(external_code: str, q: Optional[str] = None):
    db = redis_service.get_connection(settings.REDIS_DB)
    result = db.hget('structures', external_code)
    result = Structure.parse_result(result)
    if result is None: raise HTTPException(404)
    return result