Files
MermsCoreFlask/app/api/services/file_upload.py
T
CHIEFSOFT\ameye 21f55b2e5c file config
2025-12-28 15:19:36 -05:00

65 lines
2.1 KiB
Python

from flask import jsonify
from app.api.enums import KafkaMessage
from app.api.services import MyProductsService
from app.config import settings
from app.models import Members
from app.utils.logger import logger
from app.api.services.base_service import BaseService
from sqlalchemy import func, desc
from app.extensions import db
import os
from werkzeug.utils import secure_filename
import time
class FileUploadService(BaseService):
UPLOAD_FOLDER = settings.UPLOAD_FOLDER # '/app/uploads' # '/uploads'
ALLOWED_EXTENSIONS = {'txt', 'pdf', 'png', 'jpg', 'jpeg', 'gif'}
@staticmethod
def process_file_upload(upload_type: str, file, member_uid):
timestamp_integer = int(time.time())
## MAKE SURE WE HAVE BASE FOLDERS
if not os.path.isdir(FileUploadService.UPLOAD_FOLDER):
os.makedirs(FileUploadService.UPLOAD_FOLDER)
file_uid = "I GOT HERE "
try:
# Who is this
member_data = Members.get_member_by_uid(member_uid)
if not member_data:
return []
final_folder = f"W{member_data.id:010d}"
save_path = FileUploadService.UPLOAD_FOLDER + "/WEBSITE"
if not os.path.isdir(save_path):
os.makedirs(save_path)
logger.info(f'POST CALLED 5 {file.filename}')
save_path = FileUploadService.UPLOAD_FOLDER + "/WEBSITE/" + final_folder
if not os.path.isdir(save_path):
os.makedirs(save_path)
filename = secure_filename(file.filename)
# This is to avert duplicate file name issues
save_filename = str(timestamp_integer) + "-" + filename
final_save_path = os.path.join(save_path, save_filename)
logger.info(f'POST CALLED 6 {final_save_path}')
file.save(final_save_path)
response_data = {
"file_uid": file_uid,
}
return response_data
except Exception as e:
logger.error(f"An error occurred while uploading file: {str(e)}", exc_info=True)
return jsonify({"message": "Internal Server Error"}), 500