From 94eba495940d3adb1f268844a3e813e9e63e9e0a Mon Sep 17 00:00:00 2001 From: ivanzaqqa Date: Wed, 18 Oct 2017 22:16:21 +0700 Subject: [PATCH 01/26] import logs service and call it --- app/services/order_service.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/app/services/order_service.py b/app/services/order_service.py index 7f29b220..d141b38e 100644 --- a/app/services/order_service.py +++ b/app/services/order_service.py @@ -4,6 +4,7 @@ import paypalrestsdk import datetime from sqlalchemy.exc import SQLAlchemyError +from app.services.logs_service import LogsService # import model class from app.models.order import Order from app.builders.response_builder import ResponseBuilder @@ -148,7 +149,9 @@ def create(self, payloads, user): payment.transaction_time = datetime.datetime.now() payment.transaction_status = 'pending' db.session.add(payment) - db.session.commit() + db.session.commit() + + LogsService().create_log("Ticket order from " + user['username'] + (" has been processed")) # if payloads['payment_type'] == 'paypal': # self.paypalorder(payloads) @@ -174,6 +177,8 @@ def delete(self, id): self.model_order_payment.delete() db.session.commit() + logsservice().create_log("Ticket order from " + user['username'] + " has been deleted") + # delete row self.model_order.delete() db.session.commit() From d36fe3ef0f6c481fefea27dfd683f4bd8dbbbd65 Mon Sep 17 00:00:00 2001 From: ivanzaqqa Date: Wed, 18 Oct 2017 22:17:41 +0700 Subject: [PATCH 02/26] import logs service and add log for verify and update --- app/services/order_verification_service.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/services/order_verification_service.py b/app/services/order_verification_service.py index 84c4deff..75e163a9 100644 --- a/app/services/order_verification_service.py +++ b/app/services/order_verification_service.py @@ -15,6 +15,7 @@ from app.models.hacker_team import HackerTeam from app.models.user_hacker import UserHacker from app.services.base_service import BaseService +from app.services.logs_service import LogsService from app.builders.response_builder import ResponseBuilder from app.services.user_ticket_service import UserTicketService from app.services.redeem_code_service import RedeemCodeService @@ -101,6 +102,7 @@ def update(self, id, payload): 'updated_at': datetime.datetime.now() }) db.session.commit() + LogsService().create_log(user['username'] + "'s payment has been updated") data = orderverification.first() return response.set_data(data.as_dict()).build() except SQLAlchemyError as e: @@ -220,6 +222,7 @@ def verify(self, id): }) db.session.commit() send_notification = FCMService().send_single_notification('Payment Status', 'Your payment has been verified', user.id, ROLE['admin']) + LogsService().create_log(user['username'] + "'s payment has been verified") return response.set_data(None).set_message('ticket purchased').build() else: return response.set_data(None).set_message('This payment has already verified').build() From 60e428734f88834a6c735796ef47e59741eedb46 Mon Sep 17 00:00:00 2001 From: ivanzaqqa Date: Wed, 18 Oct 2017 22:19:08 +0700 Subject: [PATCH 03/26] import logs service and add for confirm and update --- app/services/payment_service.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/services/payment_service.py b/app/services/payment_service.py index 013f7b6b..c70df4db 100644 --- a/app/services/payment_service.py +++ b/app/services/payment_service.py @@ -16,6 +16,7 @@ from app.models.user_ticket import UserTicket from app.services.user_ticket_service import UserTicketService from app.services.redeem_code_service import RedeemCodeService +from app.services.logs_service import LogsService from app.builders.response_builder import ResponseBuilder from app.services.fcm_service import FCMService from app.configs.constants import MIDTRANS_API_BASE_URL as url, SERVER_KEY @@ -486,6 +487,7 @@ def update(self, id): }) db.session.commit() + LogsService().create_log(user['username'] + "'s payment has been Updated") if (payment.first().as_dict()['transaction_status'] == 'expire'): # on payment success self.save_paid_ticket(order) @@ -640,6 +642,7 @@ def confirm(self, payload, user_id): }) db.session.commit() send_notification = FCMService().send_single_notification('Payment Status', 'Your payment has been confirmed', user.id, ROLE['admin']) + LogsService().create_log(user['username'] + "'s payment has been confirmed") return response.set_data(None).set_message('Purchase Completed').build() else: return response.set_error(True).set_message('Paypal amount did not match').build() From 7f19d182c84de36a484a923a02930e0c16b72ab7 Mon Sep 17 00:00:00 2001 From: ivanzaqqa Date: Wed, 18 Oct 2017 22:20:44 +0700 Subject: [PATCH 04/26] add import logs service and add log for claimed reward --- app/services/referal_service.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/services/referal_service.py b/app/services/referal_service.py index df2a39d9..362a20b0 100644 --- a/app/services/referal_service.py +++ b/app/services/referal_service.py @@ -6,6 +6,7 @@ from app.models.user import User from app.builders.response_builder import ResponseBuilder from app.services.user_ticket_service import UserTicketService +from app.services.logs_service import LogsService class ReferalService(): @@ -55,6 +56,7 @@ def reward_referal(self, user): 'referal_count': 11 }) db.session.commit() + LogsService().create_log(user['username'] + " has been redeemed a reward") UserTicketService().create(payload) return response.set_data(None).set_message('You have successfully redeemed your reward').build() From f144430ccc550951bfe2d44a041fc8d7daaa7daf Mon Sep 17 00:00:00 2001 From: ivanzaqqa Date: Wed, 18 Oct 2017 22:23:04 +0700 Subject: [PATCH 05/26] add import logs service and add log for referal in register --- app/services/user_service.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/services/user_service.py b/app/services/user_service.py index a32633aa..99da8436 100644 --- a/app/services/user_service.py +++ b/app/services/user_service.py @@ -21,6 +21,7 @@ from app.configs.constants import ROLE # noqa from werkzeug.security import generate_password_hash from app.services.base_service import BaseService +from app.services.logs_service import LogsService from app.builders.response_builder import ResponseBuilder from app.models.base_model import BaseModel from app.services.user_ticket_service import UserTicketService @@ -87,6 +88,7 @@ def register(self, payloads): 'referal_count': referer.referal_count + 1 }) db.session.commit() + LogsService().create_log("%s has been referred" % (payloads['username'])) # checking referer add full day ticket if reach 10 counts if referer.referal_count > 0: referer_detail = db.session.query(User).filter_by(referal=payloads['referer']).first().as_dict() From 27aaa87276d2f05ce7b8a3250cd5a9558fccd342 Mon Sep 17 00:00:00 2001 From: ivanzaqqa Date: Wed, 18 Oct 2017 22:23:30 +0700 Subject: [PATCH 06/26] add model for logs --- app/models/logs.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 app/models/logs.py diff --git a/app/models/logs.py b/app/models/logs.py new file mode 100644 index 00000000..6c20cace --- /dev/null +++ b/app/models/logs.py @@ -0,0 +1,20 @@ +import datetime + +from app.models import db +from app.models.base_model import BaseModel + + +class Logs(db.Model, BaseModel): + # table name + __tablename__ = 'logs' + + # visible fields + visible = ['id', 'description', 'created_at'] + + # columns definitions + id = db.Column(db.Integer, primary_key=True) + description = db.Column(db.Text) + created_at = db.Column(db.DateTime) + + def __init__(self): + self.created_at = datetime.datetime.now() From 285f8eada3aa507f6a2d2c8586f729a132e66d79 Mon Sep 17 00:00:00 2001 From: ivanzaqqa Date: Wed, 18 Oct 2017 22:23:55 +0700 Subject: [PATCH 07/26] add services for logs --- app/services/logs_service.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 app/services/logs_service.py diff --git a/app/services/logs_service.py b/app/services/logs_service.py new file mode 100644 index 00000000..19a8f3ed --- /dev/null +++ b/app/services/logs_service.py @@ -0,0 +1,25 @@ +import os +import datetime +from app.models import db +from sqlalchemy.exc import SQLAlchemyError +from sqlalchemy import desc +from app.services.base_service import BaseService + +#import model class +from app.models.logs import Logs +from app.models.base_model import BaseModel +from app.builders.response_builder import ResponseBuilder + + +class LogsService(BaseService): + + def create_log(self, description): + response = ResponseBuilder() + self.log = Logs() + self.log.description = description + db.session.add(self.log) + try: + db.session.commit() + return response.set_message('Log has been create').set_data(None).build() + except SQLAlchemyError as e: + return response.set_message('Cant create log').set_data(e.orig.args).build() From a71fdb4d27d33af7368e5c764301a91f4cab643a Mon Sep 17 00:00:00 2001 From: ivanzaqqa Date: Wed, 18 Oct 2017 22:24:16 +0700 Subject: [PATCH 08/26] add migrations for create logs table --- .../16aa39397e0e_create_logs_table.py | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 migrations/versions/16aa39397e0e_create_logs_table.py diff --git a/migrations/versions/16aa39397e0e_create_logs_table.py b/migrations/versions/16aa39397e0e_create_logs_table.py new file mode 100644 index 00000000..1d76e47d --- /dev/null +++ b/migrations/versions/16aa39397e0e_create_logs_table.py @@ -0,0 +1,30 @@ +"""create logs table + + +Revision ID: 16aa39397e0e +Revises: 66237493cf86 +Create Date: 2017-10-18 15:05:16.692943 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = '16aa39397e0e' +down_revision = '66237493cf86' +branch_labels = None +depends_on = None + + +def upgrade(): + op.create_table( + 'logs', + sa.Column('id', sa.Integer, primary_key=True), + sa.Column('description', sa.Text()), + sa.Column('created_at', sa.DateTime) + ) + + +def downgrade(): + op.drop_table('logs') From 1f347d4d7cb59a893ba3d009006d8a09e86cf57f Mon Sep 17 00:00:00 2001 From: ivanzaqqa Date: Thu, 19 Oct 2017 11:19:02 +0700 Subject: [PATCH 09/26] fix code delete logs --- app/services/order_service.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/services/order_service.py b/app/services/order_service.py index d141b38e..69e0b85a 100644 --- a/app/services/order_service.py +++ b/app/services/order_service.py @@ -177,11 +177,13 @@ def delete(self, id): self.model_order_payment.delete() db.session.commit() - logsservice().create_log("Ticket order from " + user['username'] + " has been deleted") # delete row self.model_order.delete() db.session.commit() + + LogsService().create_log("Ticket order from " + user['username'] + " has been deleted") + return { 'error': False, 'data': None From c2010c6081952b7c0983ea730dbe5d529a7336e9 Mon Sep 17 00:00:00 2001 From: ivanzaqqa Date: Thu, 19 Oct 2017 11:19:35 +0700 Subject: [PATCH 10/26] fix position code --- app/services/order_verification_service.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/services/order_verification_service.py b/app/services/order_verification_service.py index 75e163a9..c3935018 100644 --- a/app/services/order_verification_service.py +++ b/app/services/order_verification_service.py @@ -118,6 +118,9 @@ def delete(self, id): if orderverification.first() is not None: orderverification.delete() db.session.commit() + + LogsService().create_log(user['username'] + "'s payment has been deleted") + return response.set_message('Order Verification entry was deleted').build() else: data = 'Entry not found' From 55745f0a5aee218f858f2469ede4e4cac7513a20 Mon Sep 17 00:00:00 2001 From: ivanzaqqa Date: Thu, 19 Oct 2017 11:20:08 +0700 Subject: [PATCH 11/26] fix position --- app/services/user_service.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/services/user_service.py b/app/services/user_service.py index 99da8436..49f7eb68 100644 --- a/app/services/user_service.py +++ b/app/services/user_service.py @@ -88,7 +88,9 @@ def register(self, payloads): 'referal_count': referer.referal_count + 1 }) db.session.commit() + LogsService().create_log("%s has been referred" % (payloads['username'])) + # checking referer add full day ticket if reach 10 counts if referer.referal_count > 0: referer_detail = db.session.query(User).filter_by(referal=payloads['referer']).first().as_dict() From 76fdf6b9b81d9145191322e51fb315507744da5a Mon Sep 17 00:00:00 2001 From: ivanzaqqa Date: Thu, 19 Oct 2017 15:55:09 +0700 Subject: [PATCH 12/26] add parameter user for delete --- app/controllers/order_controller.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/controllers/order_controller.py b/app/controllers/order_controller.py index 6bcf2af1..43c2fa87 100644 --- a/app/controllers/order_controller.py +++ b/app/controllers/order_controller.py @@ -42,8 +42,8 @@ def create(request, user): return BaseController.send_error_api(None, result['message']) @staticmethod - def delete(id): - order = orderservice.delete(id) + def delete(id, user): + order = orderservice.delete(id, user) if order['error']: return BaseController.send_response_api(None, 'order not found') return BaseController.send_response_api(None, 'order with id: ' + id + ' has been succesfully deleted') From cbe9fb6c9622e5780d1e857f7d5234ee8cfb5308 Mon Sep 17 00:00:00 2001 From: ivanzaqqa Date: Thu, 19 Oct 2017 15:56:07 +0700 Subject: [PATCH 13/26] add User parameter for update delete and verify --- app/controllers/order_verification_controller.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/controllers/order_verification_controller.py b/app/controllers/order_verification_controller.py index a006b138..cd14cbc6 100644 --- a/app/controllers/order_verification_controller.py +++ b/app/controllers/order_verification_controller.py @@ -37,7 +37,7 @@ def show(id, request): @staticmethod - def update(id, request): + def update(id, request, user): user_id = request.form['user_id'] if 'user_id' in request.form else None order_id = request.form['order_id'] if 'order_id' in request.form else None payment_proof = request.files['payment_proof'] if 'payment_proof' in request.files else None @@ -49,23 +49,23 @@ def update(id, request): } else: return BaseController.send_error_api(None, 'field is not complete') - result = orderverificationservice.update(id, payloads) + result = orderverificationservice.update(id, payloads, user) if not result['error']: return BaseController.send_response_api(result['data'], result['message']) else: return BaseController.send_error_api(result['data'], result['message']) @staticmethod - def delete(id): - data = orderverificationservice.delete(id) + def delete(id, user): + data = orderverificationservice.delete(id, user) if data['error']: return BaseController.send_error_api(data['data'], data['message']) return BaseController.send_response_api(data['data'], data['message']) @staticmethod - def verify(id, request): - data = orderverificationservice.verify(id) + def verify(id, request, User): + data = orderverificationservice.verify(id, User) if data['error']: return BaseController.send_error_api(data['data'], data['message']) return BaseController.send_response_api(data['data'], data['message']) From 0c37c31fa7b00591644ddbfd7367355a0ddd7e7d Mon Sep 17 00:00:00 2001 From: ivanzaqqa Date: Thu, 19 Oct 2017 15:57:00 +0700 Subject: [PATCH 14/26] add user parameter for status and confirm --- app/controllers/payment_controller.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/controllers/payment_controller.py b/app/controllers/payment_controller.py index baf9538c..5150aac7 100644 --- a/app/controllers/payment_controller.py +++ b/app/controllers/payment_controller.py @@ -290,9 +290,9 @@ def authorize(request): return BaseController.send_response_api(result['data'], result['message']) @staticmethod - def status(id): + def status(id, user): - payment = paymentservice.update(id) + payment = paymentservice.update(id, user) if not payment['status_code'] == '404': return BaseController.send_response_api(payment, payment['data'], payment['message']) @@ -321,7 +321,7 @@ def card_number_validation(card_number): return ((sum % 10) == 0) @staticmethod - def confirm(request, user_id): + def confirm(request, user_id, User): transaction_id = request.json['transaction_id'] if 'transaction_id' in request.json else None order_id = request.json['order_id'] if 'order_id' in request.json else None if transaction_id and order_id: @@ -329,7 +329,7 @@ def confirm(request, user_id): 'transaction_id' : transaction_id, 'order_id' : order_id } - result = paymentservice.confirm(payload, user_id) + result = paymentservice.confirm(payload, user_id, User) if result['error']: return BaseController.send_error_api(result['data'], result['message']) return BaseController.send_response_api(result['data'], result['message']) From 1810ddec701b3eba1e49e7aa6d938d0598ef5564 Mon Sep 17 00:00:00 2001 From: ivanzaqqa Date: Thu, 19 Oct 2017 15:57:58 +0700 Subject: [PATCH 15/26] add user parameter for register --- app/controllers/user_authorization_controller.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/controllers/user_authorization_controller.py b/app/controllers/user_authorization_controller.py index fe35aa6b..863e3b09 100644 --- a/app/controllers/user_authorization_controller.py +++ b/app/controllers/user_authorization_controller.py @@ -78,7 +78,7 @@ def login(request): return BaseController.send_error_api({'wrong_credential': True}, 'token is invalid') @staticmethod - def register(request): + def register(request, user): provider = request.json['provider'] if 'provider' in request.json else None firstname = request.json['first_name'] if 'first_name' in request.json else None @@ -135,7 +135,7 @@ def register(request): else: return BaseController.send_response_api({'payload_invalid': True}, 'payloads not valid') - result = userservice.register(payloads) + result = userservice.register(payloads, user) if isinstance(result,dict): if result['error']: From 99b283e747d674244cbd54fb7e705418a5ad17e0 Mon Sep 17 00:00:00 2001 From: ivanzaqqa Date: Thu, 19 Oct 2017 16:01:10 +0700 Subject: [PATCH 16/26] add kwargs['user'].as_dict() for orders, payments, and order-verification --- app/routes/api.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/app/routes/api.py b/app/routes/api.py index 8af97c2d..1b445cd3 100644 --- a/app/routes/api.py +++ b/app/routes/api.py @@ -185,10 +185,11 @@ def orders(*args, **kwargs): @api.route('/orders/', methods=['DELETE', 'GET']) @token_required def orders_id(id, *args, **kwargs): + user = kwargs['user'].as_dict() if(request.method == 'GET'): return OrderController.show(id) elif(request.method == 'DELETE'): - return OrderController.delete(id) + return OrderController.delete(id, user) @api.route('/orders//details', methods=['GET', 'POST']) @@ -566,15 +567,17 @@ def authorize_credit_card(*args, **kwargs): @api.route('/payments/status/', methods=['PATCH', 'PUT']) @token_required def status(id, *args, **kwargs): + user = kwargs['user'].as_dict() if (request.method == 'PATCH' or request.method == 'PUT'): - return PaymentController.status(id) + return PaymentController.status(id, user) @api.route('/payments/confirm', methods=['POST']) @token_required def confirm_payment(*args, **kwargs): + User = kwargs['user'].as_dict() user_id = kwargs['user'].id - return PaymentController.confirm(request, user_id) + return PaymentController.confirm(request, user_id, User) @api.route('/payments/', methods=['GET']) @@ -1011,20 +1014,21 @@ def order_verification_general (*args, **kwargs): @api.route('/order-verification/', methods=['PUT', 'PATCH', 'GET', 'DELETE']) @token_required def order_verification_id(id, *args, **kwargs): + user = kwargs['user'].as_dict() if (request.method == 'GET'): return OrderVerificationController.show(id, request) elif (request.method == 'PUT' or request.method == 'PATCH'): - return OrderVerificationController.update(id, request) + return OrderVerificationController.update(id, request, user) else: - return OrderVerificationController.delete(id) + return OrderVerificationController.delete(id, user) @api.route('/order-verification//verify', methods=['POST']) @token_required def verify_payment(id, *args, **kwargs): - user = kwargs['user'].as_dict() + User = kwargs['user'].as_dict() if user['role_id'] == ROLE['admin']: - return OrderVerificationController.verify(id, request) + return OrderVerificationController.verify(id, request, User) return 'Unauthorized' #Hackaton API From 78bd4ec0e23fc02ed07a0effce673202a15a4f63 Mon Sep 17 00:00:00 2001 From: ivanzaqqa Date: Thu, 19 Oct 2017 16:02:05 +0700 Subject: [PATCH 17/26] add kwargs['user'].as_dict() for register --- app/routes/auth.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/routes/auth.py b/app/routes/auth.py index 34065f48..47fa2264 100644 --- a/app/routes/auth.py +++ b/app/routes/auth.py @@ -15,8 +15,10 @@ def login(): @auth.route('/register', methods=['POST']) -def register(): - return UserAuthorizationController.register(request) +@token_required +def register(*args, **kwargs): + user = kwargs['user'].as_dict() + return UserAuthorizationController.register(request, user) @auth.route('/admin/authorize', methods=['POST']) From cd12d668c1e3916486a774a1cbfab44c155df825 Mon Sep 17 00:00:00 2001 From: ivanzaqqa Date: Thu, 19 Oct 2017 16:02:52 +0700 Subject: [PATCH 18/26] fix delete import os, and etc --- app/services/logs_service.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/services/logs_service.py b/app/services/logs_service.py index 19a8f3ed..6d6b5144 100644 --- a/app/services/logs_service.py +++ b/app/services/logs_service.py @@ -1,8 +1,6 @@ -import os import datetime from app.models import db from sqlalchemy.exc import SQLAlchemyError -from sqlalchemy import desc from app.services.base_service import BaseService #import model class From f6d78965b13bddf2b423161c9a0ede7efeb32cb9 Mon Sep 17 00:00:00 2001 From: ivanzaqqa Date: Thu, 19 Oct 2017 16:05:39 +0700 Subject: [PATCH 19/26] add ticket information --- app/services/order_service.py | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/app/services/order_service.py b/app/services/order_service.py index 69e0b85a..cd7ac0d0 100644 --- a/app/services/order_service.py +++ b/app/services/order_service.py @@ -34,7 +34,7 @@ def __init__(self): # ticket = db.session.query(Ticket).filter_by(id=order['ticket_id']).first().as_dict() # item['name'] = ticket['ticket_type'] # item['quantity'] = str(order['count']) - # item['currency'] = payload['currency'] + # item['currency'] = "USD" # item['price'] = ticket['price'] # ord_det.append(item) @@ -46,8 +46,8 @@ def __init__(self): # }, # "transactions": [{ # "amount": { - # "currency":payload['currency'], - # "total": payload['gross_amount'] + # "currency":"USD", + # "total": 400000 # }, # "payee": { # "email": PAYPAL['payee'] @@ -64,6 +64,7 @@ def __init__(self): # result = payment.create() # if result: # self.get_paypal_detail(payment.id) + # print(payment.id) # else: # print(payment.error) # return payment @@ -151,10 +152,10 @@ def create(self, payloads, user): db.session.add(payment) db.session.commit() - LogsService().create_log("Ticket order from " + user['username'] + (" has been processed")) + LogsService().create_log("Ticket id: " + ticket + " order from " + user['username'] + " has been created") - # if payloads['payment_type'] == 'paypal': - # self.paypalorder(payloads) + # if payloads['payment_type'] == 'paypal': + # self.paypalorder(payloads) # save all items return { 'error': False, @@ -168,7 +169,7 @@ def create(self, payloads, user): 'data': data } - def delete(self, id): + def delete(self, id, user): self.model_order = db.session.query(Order).filter_by(id=id) if self.model_order.first() is not None: self.model_order_details = db.session.query(OrderDetails).filter_by(order_id=self.model_order.first().id) @@ -177,13 +178,11 @@ def delete(self, id): self.model_order_payment.delete() db.session.commit() + LogsService().create_log("Ticket id: " + self.model_order_details['ticket_id'] + " order from " + user['username'] + " has been deleted") # delete row self.model_order.delete() db.session.commit() - - LogsService().create_log("Ticket order from " + user['username'] + " has been deleted") - return { 'error': False, 'data': None From f2433f96d64cbc95b0c0a14567c19ad69f3ce9a7 Mon Sep 17 00:00:00 2001 From: ivanzaqqa Date: Thu, 19 Oct 2017 16:07:11 +0700 Subject: [PATCH 20/26] add parameter user and order id to log --- app/services/order_verification_service.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/app/services/order_verification_service.py b/app/services/order_verification_service.py index c3935018..66554cf0 100644 --- a/app/services/order_verification_service.py +++ b/app/services/order_verification_service.py @@ -84,7 +84,7 @@ def show(self, id): return response.set_error(True).set_message('data not found').set_data(None).build() - def update(self, id, payload): + def update(self, id, payload, user): response = ResponseBuilder() orderverification = db.session.query(OrderVerification).filter_by(id=id) data = orderverification.first().as_dict() if orderverification.first() else None @@ -102,14 +102,16 @@ def update(self, id, payload): 'updated_at': datetime.datetime.now() }) db.session.commit() - LogsService().create_log(user['username'] + "'s payment has been updated") + + LogsService().create_log(user['username'] + "'s payment from order id: " + payload['order_id'] + "has been updated") + data = orderverification.first() return response.set_data(data.as_dict()).build() except SQLAlchemyError as e: data = e.orig.args return response.set_error(True).set_data(data).build() - def delete(self, id): + def delete(self, id, user): response = ResponseBuilder() orderverification = db.session.query(OrderVerification).filter_by(id=id).first() if orderverification.payment_proof is not None: @@ -119,7 +121,7 @@ def delete(self, id): orderverification.delete() db.session.commit() - LogsService().create_log(user['username'] + "'s payment has been deleted") + LogsService().create_log(user['username'] + "'s payment from order id: " + orderverification['order_id'] + "has been Deleted") return response.set_message('Order Verification entry was deleted').build() else: @@ -170,7 +172,7 @@ def create_hackaton (self, user): db.session.commit() return hacker_team.id - def verify(self, id): + def verify(self, id, User): response = ResponseBuilder() orderverification_query = db.session.query(OrderVerification).filter_by(id=id) orderverification = orderverification_query.first() @@ -225,7 +227,9 @@ def verify(self, id): }) db.session.commit() send_notification = FCMService().send_single_notification('Payment Status', 'Your payment has been verified', user.id, ROLE['admin']) - LogsService().create_log(user['username'] + "'s payment has been verified") + + LogsService().create_log(User['username'] + "'s payment from order id: " + items + "has been Verified") + return response.set_data(None).set_message('ticket purchased').build() else: return response.set_data(None).set_message('This payment has already verified').build() From 7024c0a1472cbde8d5decda022dad7cb6d87a1f3 Mon Sep 17 00:00:00 2001 From: ivanzaqqa Date: Thu, 19 Oct 2017 16:10:40 +0700 Subject: [PATCH 21/26] fix code and add parameter user --- app/services/payment_service.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/app/services/payment_service.py b/app/services/payment_service.py index c70df4db..0cdc3c6c 100644 --- a/app/services/payment_service.py +++ b/app/services/payment_service.py @@ -460,7 +460,7 @@ def send_to_midtrans_api(self, payloads): message = payload['status_message'] if 'status_message' in payload else 'No message from payload' return response.set_data(payload).set_message(message).build() - def update(self, id): + def update(self, id, user): response = ResponseBuilder() # get the transaction id from payment table payment = db.session.query(Payment).filter_by(id=id).first() @@ -557,7 +557,7 @@ def get_paypal_detail(self, id): payment = False return payment - def confirm(self, payload, user_id): + def confirm(self, payload, user_id, User): response = ResponseBuilder() transaction_exist = db.session.query(Payment).filter_by(transaction_id=payload['transaction_id']).first() if transaction_exist: @@ -587,6 +587,9 @@ def confirm(self, payload, user_id): try: db.session.add(payment) db.session.commit() + + LogsService().create_log(User['username'] + "'s Payment has been " + payment.transaction_status) + except SQLAlchemyError as e: data = e.orig.args return response.set_data(None).set_message(data).set_error(True).build() @@ -642,7 +645,9 @@ def confirm(self, payload, user_id): }) db.session.commit() send_notification = FCMService().send_single_notification('Payment Status', 'Your payment has been confirmed', user.id, ROLE['admin']) - LogsService().create_log(user['username'] + "'s payment has been confirmed") + + LogsService().create_log(User['username'] + "'s Payment has been confirmed and allowed") + return response.set_data(None).set_message('Purchase Completed').build() else: return response.set_error(True).set_message('Paypal amount did not match').build() From c9e513fe86ce4b93714e47fb1e68cc7e3f02b50c Mon Sep 17 00:00:00 2001 From: ivanzaqqa Date: Thu, 19 Oct 2017 16:11:37 +0700 Subject: [PATCH 22/26] changed position log and add ticket id information --- app/services/referal_service.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/services/referal_service.py b/app/services/referal_service.py index 362a20b0..8182a838 100644 --- a/app/services/referal_service.py +++ b/app/services/referal_service.py @@ -56,8 +56,10 @@ def reward_referal(self, user): 'referal_count': 11 }) db.session.commit() - LogsService().create_log(user['username'] + " has been redeemed a reward") UserTicketService().create(payload) + + LogsService().create_log(user['username'] + " has been redeemed a reward ticket id: " + payload['ticket_id']) + return response.set_data(None).set_message('You have successfully redeemed your reward').build() From 417e5ad0d300cc5769edba62c8a53ead7a22b80e Mon Sep 17 00:00:00 2001 From: ivanzaqqa Date: Thu, 19 Oct 2017 16:12:30 +0700 Subject: [PATCH 23/26] add parameter and changed log description --- app/services/user_service.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/services/user_service.py b/app/services/user_service.py index 49f7eb68..c516c74a 100644 --- a/app/services/user_service.py +++ b/app/services/user_service.py @@ -54,7 +54,7 @@ def get_booth_by_uid(self, user_id): return response.set_data(data).build() - def register(self, payloads): + def register(self, payloads, user): user_refcount = 0 user_havref = 0 response = ResponseBuilder() @@ -89,7 +89,7 @@ def register(self, payloads): }) db.session.commit() - LogsService().create_log("%s has been referred" % (payloads['username'])) + LogsService().create_log("referred by: " + user['username']) # checking referer add full day ticket if reach 10 counts if referer.referal_count > 0: From 72d2926d4630e0c2d8967cd176f90ddcf2bf343a Mon Sep 17 00:00:00 2001 From: ivanzaqqa Date: Thu, 19 Oct 2017 18:12:10 +0700 Subject: [PATCH 24/26] remove user parameter --- app/controllers/user_authorization_controller.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/controllers/user_authorization_controller.py b/app/controllers/user_authorization_controller.py index 863e3b09..fe35aa6b 100644 --- a/app/controllers/user_authorization_controller.py +++ b/app/controllers/user_authorization_controller.py @@ -78,7 +78,7 @@ def login(request): return BaseController.send_error_api({'wrong_credential': True}, 'token is invalid') @staticmethod - def register(request, user): + def register(request): provider = request.json['provider'] if 'provider' in request.json else None firstname = request.json['first_name'] if 'first_name' in request.json else None @@ -135,7 +135,7 @@ def register(request, user): else: return BaseController.send_response_api({'payload_invalid': True}, 'payloads not valid') - result = userservice.register(payloads, user) + result = userservice.register(payloads) if isinstance(result,dict): if result['error']: From 224d2d71c2e456a3e6b66984249f0ff86120b8cb Mon Sep 17 00:00:00 2001 From: ivanzaqqa Date: Thu, 19 Oct 2017 18:13:00 +0700 Subject: [PATCH 25/26] remove token required and user variable --- app/routes/auth.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/app/routes/auth.py b/app/routes/auth.py index 47fa2264..34065f48 100644 --- a/app/routes/auth.py +++ b/app/routes/auth.py @@ -15,10 +15,8 @@ def login(): @auth.route('/register', methods=['POST']) -@token_required -def register(*args, **kwargs): - user = kwargs['user'].as_dict() - return UserAuthorizationController.register(request, user) +def register(): + return UserAuthorizationController.register(request) @auth.route('/admin/authorize', methods=['POST']) From 94f4ae6a1809c6844dcf56605777ea202c335d47 Mon Sep 17 00:00:00 2001 From: ivanzaqqa Date: Thu, 19 Oct 2017 18:13:48 +0700 Subject: [PATCH 26/26] remove user parameter for register and change position log and fix description --- app/services/user_service.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app/services/user_service.py b/app/services/user_service.py index c516c74a..1c9d80bb 100644 --- a/app/services/user_service.py +++ b/app/services/user_service.py @@ -54,7 +54,7 @@ def get_booth_by_uid(self, user_id): return response.set_data(data).build() - def register(self, payloads, user): + def register(self, payloads): user_refcount = 0 user_havref = 0 response = ResponseBuilder() @@ -89,8 +89,6 @@ def register(self, payloads, user): }) db.session.commit() - LogsService().create_log("referred by: " + user['username']) - # checking referer add full day ticket if reach 10 counts if referer.referal_count > 0: referer_detail = db.session.query(User).filter_by(referal=payloads['referer']).first().as_dict() @@ -129,6 +127,9 @@ def register(self, payloads, user): self.model_user.hash_password(payloads['password']) db.session.add(self.model_user) db.session.commit() + + LogsService().create_log("A user named: " + payloads['username'] + " has just Registered") + data = self.model_user return data except SQLAlchemyError as e: