Files
2025-10-11 06:17:27 -04:00

141 lines
5.5 KiB
Python

from flask import jsonify
from app.utils.logger import logger
from app.api.services.base_service import BaseService
from sqlalchemy import func, desc
from datetime import datetime, timedelta, timezone
from app.extensions import db
from app.models import OfficeUsers, CustomTemplates, MembersProducts, ProductsTemplates, MembersProductsRefresh
class OfficeTemplatesService(BaseService):
@staticmethod
def set_office_custom_template(data):
logger.info('set_office_custom_template')
try:
with db.session.begin():
subscrtiption_uid = data.get('subscrtiption_uid', '')
custom_id = data.get('custom_id', '')
membersSubResult = MembersProducts.get_member_product_by_subscription_uid(subscrtiption_uid)
if not membersSubResult:
return {
"message": "Invalid Subscription",
"error_message": "Error - Please select a valid product to view",
"data": None,
"error": f"Subscription with UID {subscrtiption_uid} does not exist."
}, 400
member_id = membersSubResult.member_id
logger.info(f'set_office_custom_template {member_id} {subscrtiption_uid} {custom_id}')
MembersProducts.set_member_product_custom_template(member_id, subscrtiption_uid, custom_id)
office_users_result = {
"set_office_custom_template": [],
}
return office_users_result
except Exception as e:
logger.error(f"An error occurred: {str(e)}", exc_info=True)
office_users_result = {
"error": f"An error occurred: {str(e)}",
}
return office_users_result
@staticmethod
def set_office_user_template(data):
logger.info('set_office_user_template')
try:
subscrtiption_uid = data.get('subscrtiption_uid', '')
template_uid = data.get('template_uid', '')
selectProduct = None
selectedTemplate = None
selectProduct = MembersProducts.get_member_product_by_subscription_uid(subscrtiption_uid)
if selectProduct:
selectedTemplate = ProductsTemplates.get_template_by_uid(template_uid)
if selectedTemplate is None or selectedTemplate is None:
return jsonify({
'error': 'Missing credentials',
'message': 'Invalid credentials',
}), 400
office_users_result = {
"set_office_user_template": [],
}
return office_users_result
except Exception as e:
logger.error(f"An error occurred: {str(e)}", exc_info=True)
office_users_result = {
"error": f"An error occurred: {str(e)}",
}
return office_users_result
@staticmethod
def create_custom_template(data):
logger.info('create_custom_template')
try:
custom_id = data.get('custom_id', '')
provision_name = data.get('provision_name', '')
similarName = CustomTemplates.get_template_by_custom_id(custom_id)
if not similarName and provision_name != '':
# with db.session.begin():
custom_data = CustomTemplates.create_template(custom_id, provision_name)
else:
custom_data = {
"error": "Possible duplicate"
}
office_users_result = {
"custom_data": custom_data,
}
return office_users_result
except Exception as e:
logger.error(f"An error occurred: {str(e)}", exc_info=True)
office_users_result = {
"error": f"An error occurred: {str(e)}",
}
return office_users_result
@staticmethod
def office_template_rebuild(data):
logger.info('office_template_rebuild')
try:
with db.session.begin():
subscription_uid = data.get('subscription_uid', '')
custom_id = data.get('custom_id', '')
membersSubResult = MembersProducts.get_member_product_by_subscription_uid(subscription_uid)
if not membersSubResult:
return {
"message": "Invalid Subscription",
"error_message": "Error - Please select a valid product to view",
"data": None,
"error": f"Subscription with UID {subscription_uid} does not exist."
}, 400
member_id = membersSubResult.member_id
product_id = membersSubResult.product_id
logger.info(f'office_template_rebuild {member_id} {subscription_uid} {product_id}')
# with db.session.begin():
plannedRefresh = MembersProductsRefresh.create_subscription_refresh(member_id, product_id,
subscription_uid)
office_rebuild_result = {
"office_template_rebuild": [],
}
return office_rebuild_result
except Exception as e:
logger.error(f"An error occurred: {str(e)}", exc_info=True)
office_rebuild_result = {
"error": f"An error occurred: {str(e)}",
}
return office_rebuild_result