示例#1
0
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):
示例#2
0
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
示例#3
0
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)
示例#5
0
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()
示例#6
0
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)
示例#7
0
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)