import logging from flask import request from flask_restx import Resource from app.api.restx import api from app.api.v1.parsers import pagination_arguments from app.api.v1.serializers import page_of_broadcasts, sms_broadcast from app.api.v1.business import create_broadcast, update_broadcast, delete_broadcast from app.database.models import SMSBroadcast log = logging.getLogger(__name__) ns = api.namespace('broadcast') @ns.route('') class BroadcastCollection(Resource): @api.expect(pagination_arguments) @api.marshal_list_with(page_of_broadcasts) def get(self): pagination_args = pagination_arguments.parse_args(request) page = pagination_args.get('page', 1) per_page = pagination_args.get('per_page', 10) broadcasts_query = SMSBroadcast.query return broadcasts_query.paginate(page, per_page, error_out=False) @api.expect(sms_broadcast) @api.marshal_with(sms_broadcast) @api.response(201, 'Broadcast successfully created.') def post(self):
import logging from flask import request from flask_restx import Resource from app.api.restx import api from app.api.v1.business import create_africastalking_status from app.api.v1.serializers import africastalking_sms_log log = logging.getLogger(__name__) ns = api.namespace( 'africastalking/status', description= 'Used by Africa\'s Talking as callback URL to push status updates') @ns.route('') class AfricasTalkingStatusCollection(Resource): @api.expect(africastalking_sms_log) @api.marshal_with(africastalking_sms_log) @api.response(201, 'Service successfully created.') def post(self): data = request.json status = create_africastalking_status(data) return status, 201
import logging from flask import request from flask_restx import Resource from app.api.restx import api log = logging.getLogger(__name__) ns = api.namespace("test") @ns.route('') class TestCollection(Resource): def get(self): return {'msg': 'hello'}, 200
import logging from flask import request from flask_restx import Resource from app.api.restx import api from app.api.v1.parsers import pagination_arguments from app.api.v1.serializers import page_of_broadcast_messages, broadcast_message from app.api.v1.business import create_broadcast_message, update_broadcast_message, delete_broadcast_message from app.database.models import SMSBroadcastMessage log = logging.getLogger(__name__) ns = api.namespace('broadcast/message') @ns.route('') class BroadcastMessageCollection(Resource): @api.expect(pagination_arguments) @api.marshal_list_with(page_of_broadcast_messages) def get(self): pagination_args = pagination_arguments.parse_args(request) page = pagination_args.get('page', 1) per_page = pagination_args.get('per_page', 10) broadcast_message_query = SMSBroadcastMessage.query return broadcast_message_query.paginate(page, per_page, error_out=False) @api.expect(broadcast_message) @api.marshal_with(broadcast_message)
from flask_restx import Resource from app.api.restx import api from app.api.v1.serializers import africastalking_balance from app.api.v1.business import send_balance_mail_alert ns = api.namespace('africastalking/balance') @ns.route('') class AfricasTalkingBalanceCollection(Resource): @api.marshal_with(africastalking_balance) def get(self): return send_balance_mail_alert()
import logging from flask import request from flask_restx import Resource from app.api.restx import api from app.api.v1.parsers import pagination_arguments, sms_arguments from app.api.v1.serializers import page_of_sms, sms, sms_status, sms_post from app.api.v1.business import create_sms from app.database.models import SMSMessage log = logging.getLogger(__name__) ns = api.namespace('sms') @ns.route('') class SMSCollection(Resource): @api.expect(pagination_arguments, sms_arguments) @api.marshal_list_with(page_of_sms) def get(self): pagination_args = pagination_arguments.parse_args(request) page = pagination_args.get('page', 1) per_page = pagination_args.get('per_page', 10) sms_args = sms_arguments.parse_args(request) phone = sms_args.get('phone') sms_query = SMSMessage.query if phone: sms_query = sms_query.filter(SMSMessage._phone.contains(phone)) return sms_query.paginate(page, per_page, error_out=False)
from flask import request from app.api.restx import api from app.api.v1.serializers import payment_schema as payment from app.api.v1.business import ProcessPayment from app.api.v1.validators import validate_payment from flask_restx import Resource ns = api.namespace('payment', path='/payment') @ns.route('') class PaymentCollection(Resource): @api.expect(payment) @api.response(200,'Ok') @api.response(400,'Bad Request') @api.response(500,'Internal Server Error') def post(self): data = request.json if validate_payment(data): ProcessPayment(data) return {'message': 'Payment is processed'}, 200 else: return {'message': 'The request is invalid'}, 400
import logging from flask import request from flask_restx import Resource from app.api.restx import api from app.api.v1.parsers import pagination_arguments from app.api.v1.serializers import page_of_broadcast_subscriptions, broadcast_subscription from app.api.v1.business import create_broadcast_subscription, update_broadcast_subscription, delete_broadcast_subscription from app.database.models import SMSBroadcastSubscription log = logging.getLogger(__name__) ns = api.namespace('broadcast/subscription') @ns.route('') class BroadcastSubscriptionCollection(Resource): @api.expect(pagination_arguments) @api.marshal_list_with(page_of_broadcast_subscriptions) def get(self): pagination_args = pagination_arguments.parse_args(request) page = pagination_args.get('page', 1) per_page = pagination_args.get('per_page', 10) broadcast_subscriptions_query = SMSBroadcastSubscription.query return broadcast_subscriptions_query.paginate(page, per_page, error_out=False) @api.expect(broadcast_subscription) @api.marshal_with(broadcast_subscription)