addded payment records
This commit is contained in:
@@ -69,8 +69,6 @@ def merms_resetcomplete():
|
|||||||
response = LoginService.complete_reset(data)
|
response = LoginService.complete_reset(data)
|
||||||
return response
|
return response
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@api.route("/panel/Login", methods=["POST"])
|
@api.route("/panel/Login", methods=["POST"])
|
||||||
@jwt_required()
|
@jwt_required()
|
||||||
def merms_login():
|
def merms_login():
|
||||||
@@ -135,6 +133,13 @@ def merms_account_product_url():
|
|||||||
response = ProductsService.product_url_request(data)
|
response = ProductsService.product_url_request(data)
|
||||||
return response
|
return response
|
||||||
|
|
||||||
|
@api.route("/panel/account/payments", methods=["POST"])
|
||||||
|
@jwt_required()
|
||||||
|
def merms_account_payments():
|
||||||
|
data = request.get_json()
|
||||||
|
response = AccountService.process_payments_data(data)
|
||||||
|
return response
|
||||||
|
|
||||||
@api.route("/panel/account/products/url", methods=["POST"])
|
@api.route("/panel/account/products/url", methods=["POST"])
|
||||||
def myproduct_url():
|
def myproduct_url():
|
||||||
data = request.get_json()
|
data = request.get_json()
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ from marshmallow import ValidationError
|
|||||||
from app.api.enums import TransactionType
|
from app.api.enums import TransactionType
|
||||||
# from app.api.integrations import SimbrellaIntegration
|
# from app.api.integrations import SimbrellaIntegration
|
||||||
from app.extensions import db
|
from app.extensions import db
|
||||||
from app.models import Members, MembersActions, MembersProfile
|
from app.models import Members, MembersActions, MembersProfile, Payments
|
||||||
# from app.api.services.offer_analysis import OfferAnalysis
|
# from app.api.services.offer_analysis import OfferAnalysis
|
||||||
from app.api.helpers.response_helper import ResponseHelper
|
from app.api.helpers.response_helper import ResponseHelper
|
||||||
from werkzeug.security import generate_password_hash, check_password_hash
|
from werkzeug.security import generate_password_hash, check_password_hash
|
||||||
@@ -321,3 +321,56 @@ class AccountService(BaseService):
|
|||||||
logger.error(f"An error occurred: {str(e)}", exc_info=True)
|
logger.error(f"An error occurred: {str(e)}", exc_info=True)
|
||||||
db.session.rollback()
|
db.session.rollback()
|
||||||
return ResponseHelper.internal_server_error()
|
return ResponseHelper.internal_server_error()
|
||||||
|
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def process_payments_data(data):
|
||||||
|
|
||||||
|
try:
|
||||||
|
with db.session.begin():
|
||||||
|
|
||||||
|
validated_data = AccountService.validate_data(data, UserSchema())
|
||||||
|
user_token = validated_data.get('token')
|
||||||
|
uid = str(validated_data.get('uid'))
|
||||||
|
member_data = Members.get_member_by_uid(uid)
|
||||||
|
|
||||||
|
member_payments = Payments.get_member_payments_by_member_id(member_data['id'])
|
||||||
|
|
||||||
|
member_payments_data = []
|
||||||
|
|
||||||
|
for t in member_payments:
|
||||||
|
member_payments_data.append({
|
||||||
|
'id': t.id,
|
||||||
|
'uid': t.uid,
|
||||||
|
'option_name': t.option_name,
|
||||||
|
'option_type': t.option_type,
|
||||||
|
'payment_uid': t.payment_uid,
|
||||||
|
'amount': t.amount,
|
||||||
|
'status': t.status,
|
||||||
|
'added': t.added
|
||||||
|
})
|
||||||
|
|
||||||
|
action_data = {
|
||||||
|
"member_payments": member_payments,
|
||||||
|
"last_update": datetime.datetime.utcnow(),
|
||||||
|
}
|
||||||
|
|
||||||
|
# logger.info(f"Member Actions : {action_data}")
|
||||||
|
|
||||||
|
return ResponseHelper.success(data=action_data)
|
||||||
|
|
||||||
|
except ValidationError as err:
|
||||||
|
|
||||||
|
logger.error(f"Validation Error: {getattr(err, 'messages', str(err))}")
|
||||||
|
db.session.rollback()
|
||||||
|
return ResponseHelper.unprocessable_entity(result_description="Validation exception")
|
||||||
|
|
||||||
|
except ValueError as err:
|
||||||
|
logger.error(f"{getattr(err, 'messages', str(err))}")
|
||||||
|
db.session.rollback()
|
||||||
|
return ResponseHelper.error(result_description=str(err))
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"An error occurred: {str(e)}", exc_info=True)
|
||||||
|
db.session.rollback()
|
||||||
|
return ResponseHelper.internal_server_error()
|
||||||
+6
-15
@@ -61,6 +61,12 @@ class Payments(db.Model):
|
|||||||
return pay_data
|
return pay_data
|
||||||
|
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def get_member_payments_by_member_id(cls, member_id):
|
||||||
|
member_payments = cls.query.filter_by(member_id=str(member_id))
|
||||||
|
if not member_payments:
|
||||||
|
return None
|
||||||
|
return member_payments
|
||||||
|
|
||||||
def to_dict(self):
|
def to_dict(self):
|
||||||
return {
|
return {
|
||||||
@@ -81,18 +87,3 @@ class Payments(db.Model):
|
|||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return f'<Payments {self.id}>'
|
return f'<Payments {self.id}>'
|
||||||
|
|
||||||
'''
|
|
||||||
id SERIAL,
|
|
||||||
uid uuid DEFAULT uuid_generate_v4(),
|
|
||||||
member_id INT REFERENCES members(id),
|
|
||||||
option_name VARCHAR(100) REFERENCES subscription_options(option_name),
|
|
||||||
option_type VARCHAR(25),
|
|
||||||
payment_uid VARCHAR(100) UNIQUE NOT NULL,
|
|
||||||
amount INT DEFAULT 0,
|
|
||||||
status INT DEFAULT 1,
|
|
||||||
added timestamp without time zone DEFAULT now(),
|
|
||||||
sub_start timestamp without time zone,
|
|
||||||
next_billing timestamp without time zone,
|
|
||||||
sub_stop timestamp without time zone
|
|
||||||
'''
|
|
||||||
|
|||||||
Reference in New Issue
Block a user