addded payment records
This commit is contained in:
@@ -69,8 +69,6 @@ def merms_resetcomplete():
|
||||
response = LoginService.complete_reset(data)
|
||||
return response
|
||||
|
||||
|
||||
|
||||
@api.route("/panel/Login", methods=["POST"])
|
||||
@jwt_required()
|
||||
def merms_login():
|
||||
@@ -135,6 +133,13 @@ def merms_account_product_url():
|
||||
response = ProductsService.product_url_request(data)
|
||||
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"])
|
||||
def myproduct_url():
|
||||
data = request.get_json()
|
||||
|
||||
@@ -7,7 +7,7 @@ from marshmallow import ValidationError
|
||||
from app.api.enums import TransactionType
|
||||
# from app.api.integrations import SimbrellaIntegration
|
||||
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.helpers.response_helper import ResponseHelper
|
||||
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)
|
||||
db.session.rollback()
|
||||
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
|
||||
|
||||
|
||||
@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):
|
||||
return {
|
||||
@@ -81,18 +87,3 @@ class Payments(db.Model):
|
||||
|
||||
def __repr__(self):
|
||||
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