Commit b7921ea4 by arun.uday

commit5

parent 8fc6d080
import uvicorn import uvicorn
from scripts.config.application_config import uvicorn_app, uvicorn_port from scripts.logging.loggers import logger
from scripts.config.application_config import uvicorn_port
# starting the application
if __name__ == "__main__":
print("MQTT task")
uvicorn.run(uvicorn_app, port=int(uvicorn_port))
# pip install python-multipart # pip install python-multipart
if __name__ == "__main__":
try:
print("MQTT task")
uvicorn.run("main:app", port=int(uvicorn_port))
except Exception as e:
logger.error("Interruption occurred: ", e)
import uvicorn
from fastapi import FastAPI
from scripts.config.application_config import uvicorn_port
from scripts.logging.loggers import logger
from scripts.services.app_services_run import sender_tasks
app = FastAPI()
app.include_router(sender_tasks)
# starting the application
if __name__ == "__main__":
try:
print("Fast API task")
uvicorn.run(app, port=int(uvicorn_port))
except Exception as e:
logger.error("Interruption occurred: ", e)
import json
from paho.mqtt.client import Client
from scripts.config import application_config
from scripts.core.handlers.dict_to_json import extract_data
from scripts.core.handlers.remove_list_json import remove_list
def extract_send_data():
dict_data = extract_data(application_config.full_path_csv)
list_removed = remove_list(dict_data)
json_data = json.dumps(list_removed)
client = Client()
client.connect(application_config.mqtt_host, int(application_config.mqtt_port))
client.publish(application_config.topic_name, json_data)
client.disconnect()
import logging
import os
from logging.handlers import RotatingFileHandler
from scripts.config import application_config
def get_logger():
"""
Creates a rotating log
"""
__logger__ = logging.getLogger('')
__logger__.setLevel(logging.INFO)
log_formatter = '%(asctime)s - %(levelname)-6s - %(message)s'
time_format = "%Y-%m-%d %H:%M:%S"
file_path = application_config.full_path
formatter = logging.Formatter(log_formatter, time_format)
if not os.path.exists(file_path):
os.makedirs(file_path)
log_file = os.path.join(f"{file_path}{application_config.db_name}.log")
temp_handler = RotatingFileHandler(log_file, maxBytes=1)
temp_handler.setFormatter(formatter)
__logger__.addHandler(temp_handler)
return __logger__
logger = get_logger()
from fastapi import FastAPI, Request, UploadFile, File from fastapi import APIRouter, Request, UploadFile, File
import json
from fastapi.templating import Jinja2Templates from fastapi.templating import Jinja2Templates
from fastapi.responses import HTMLResponse from fastapi.responses import HTMLResponse
from scripts.config.api_routes_config import api_upload, api_submit, api_csv from scripts.config.api_routes_config import api_upload, api_submit, api_csv
from scripts.config import application_config from scripts.config import application_config
from scripts.core.handlers.dict_to_json import extract_data from scripts.core.handlers.extracting_sending import extract_send_data
from scripts.core.handlers.remove_list_json import remove_list
from paho.mqtt.client import Client
from scripts.core.handlers.uploaded_file_ import extract_uploaded_data from scripts.core.handlers.uploaded_file_ import extract_uploaded_data
from scripts.logging.loggers import logger
app = FastAPI() sender_tasks = APIRouter()
templates = Jinja2Templates(application_config.base_path + application_config.core_path + templates = Jinja2Templates(application_config.base_path + application_config.core_path +
application_config.handlers_path) application_config.handlers_path)
# html form access using api # html form access using api
@app.get(api_upload, response_class=HTMLResponse) @sender_tasks.get(api_upload, response_class=HTMLResponse)
def template_render(request: Request): def template_render(request: Request):
return templates.TemplateResponse(application_config.html_template, {"request": request}) try:
return templates.TemplateResponse(application_config.html_template, {"request": request})
except Exception as e:
logger.error("Some exception occurred : ", e)
# handling the form submit using api # handling the form submit using api
@app.post(api_submit) @sender_tasks.post(api_submit)
async def submit_file_data(file_data: UploadFile = File(...)): async def submit_file_data(file_data: UploadFile = File(...)):
try: try:
extract_uploaded_data(application_config.full_path_csv, file_data) extract_uploaded_data(application_config.full_path_csv, file_data)
except Exception as e: except Exception as e:
print(e) logger.error("Some exception occurred while extracting the file: ", e)
else: else:
return {"msg": "file uploading successful..."} return {"msg": "file uploading successful..."}
# reading csv and loading the data to json finally publishing it to mqtt # reading csv and loading the data to json finally publishing it to mqtt
@app.get(api_csv) @sender_tasks.get(api_csv)
def dict_to_json(): def dict_to_json():
try: try:
dict_data = extract_data(application_config.full_path_csv) extract_send_data()
list_removed = remove_list(dict_data)
json_data = json.dumps(list_removed)
client = Client()
client.connect(application_config.mqtt_host, int(application_config.mqtt_port))
client.publish(application_config.topic_name, json_data)
client.disconnect()
except Exception as e: except Exception as e:
print(e) logger.error("Some exception occurred: ", e)
else: else:
print("Data published") print("Data published")
return {"msg": "Data published"} return {"msg": "Data published"}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment