Пример #1
0
 def delete(self, bank_id, branch_id, staff_id):
     """API Endpoint for deleting staff instance
     """
     staff = Staff.query.get_or_404(staff_id)
     db.session.delete(staff)
     db.session.commit()
     return json_serialize(staff)
Пример #2
0
 def post(self, user_id):
     """API Endpoint for updating user instance"""
     user = User.query.get_or_404(user_id)
     args = self.parser.parse_args()
     user.update(args)
     db.session.commit()
     return json_serialize(user)
 def delete(self, bank_id, account_id):
     """API Endpoint for closing account instance
     """
     account = Account.query.get_or_404(account_id)
     account.close()
     db.session.commit()
     return json_serialize(account)
 def delete(self, bank_id, account_id, check_id):
     """API Endpoint for voicing issued check instance
     """
     check = Check.query.get_or_404(check_id)
     check.void()
     db.session.commit()
     return json_serialize(check)
Пример #5
0
 def delete(self, bank_id):
     """API Endpoint for Deleting bank instance
     """
     bank = Bank.query.get_or_404(bank_id)
     db.session.delete(bank)
     db.session.commit()
     return json_serialize(bank)
Пример #6
0
 def get(self, bank_id, branch_id):
     """API Endpoint for getting branch instance
     """
     bank = Bank.query.get_or_404(bank_id)
     branch = BankBranch.query.filter_by(bank=bank,
                                         id=branch_id).first_or_404()
     return json_serialize(branch)
Пример #7
0
 def post(self, bank_id, branch_id, staff_id):
     """API Endpoint for updating staff instance
     """
     args = _staff_update_parser.parse_args()
     staff = Staff.query.get_or_404(staff_id)
     staff.update(args)
     db.session.commit()
     return json_serialize(staff)
Пример #8
0
 def put(self):
     """API Endpoint for creating new bank
     """
     args = _bank_parser.parse_args()
     bank = Bank(name=args['name'])
     db.session.add(bank)
     db.session.commit()
     return json_serialize(bank)
Пример #9
0
 def post(self, bank_id):
     """API Endpoint for changing bank instance data
     """
     args = _bank_parser.parse_args()
     bank = Bank.query.get_or_404(bank_id)
     bank.update(args)
     db.session.commit()
     return json_serialize(bank)
Пример #10
0
 def delete(self, bank_id, account_config_id):
     """API Endpoint for deleting account config
     """
     bank = Bank.query.get_or_404(bank_id)
     conf = AccountConfig.query.filter_by(bank=bank, id=account_config_id).first_or_404()
     db.session.delete(conf)
     db.session.commit()
     return json_serialize(conf)
Пример #11
0
 def put(self):
     """API Endpoint for creating user instance"""
     args = self.parser.parse_args()
     user = User(fname=args['fname'], lname=args['lname'])
     if args['credit_score']:
         user.credit_score = args['credit_score']
     db.session.add(user)
     db.session.commit()
     return json_serialize(user)
Пример #12
0
 def put(self, bank_id, account_id):
     """API Endpoint for issuing a check
     """
     args = _check_parser.parse_args()
     account = Account.query.get_or_404(account_id)
     check = Check(issuing_account=account, amount=args['amount'], payable_to=args['payable_to'])
     db.session.add(check)
     db.session.commit()
     return json_serialize(check)
Пример #13
0
 def put(self, bank_id):
     """API Endpoint for adding a branch to a given bank
     """
     args = _branch_parser.parse_args()
     bank = Bank.query.get_or_404(bank_id)
     branch = BankBranch(name=args['name'], bank=bank)
     db.session.add(branch)
     db.session.commit()
     return json_serialize(branch)
Пример #14
0
 def delete(self, bank_id, branch_id):
     """API Endpoint for deleting branch instance
     """
     bank = Bank.query.get_or_404(bank_id)
     branch = BankBranch.query.filter_by(bank=bank,
                                         id=branch_id).first_or_404()
     db.session.delete(branch)
     db.session.commit()
     return json_serialize(branch)
Пример #15
0
 def post(self, bank_id, account_config_id):
     """API Endpoint for updating account config instance
     """
     args = _account_config_update_parser.parse_args()
     bank = Bank.query.get_or_404(bank_id)
     conf = AccountConfig.query.filter_by(bank=bank, id=account_config_id).first_or_404()
     conf.update(args)
     conf.check_account_type_valid()
     db.session.commit()
     return json_serialize(conf)
Пример #16
0
 def post(self, bank_id, branch_id):
     """API Endpoint for modifying branch instance
     """
     args = _branch_parser.parse_args()
     bank = Bank.query.get_or_404(bank_id)
     branch = BankBranch.query.filter_by(bank=bank,
                                         id=branch_id).first_or_404()
     branch.update(args)
     db.session.commit()
     return json_serialize(branch)
Пример #17
0
 def put(self, bank_id):
     """API Endpoint to add account config for a bank
     """
     args = _account_config_create_parser.parse_args()
     bank = Bank.query.get_or_404(bank_id)
     conf = AccountConfig(bank=bank, **args)
     conf.check_account_type_valid()
     db.session.add(conf)
     db.session.commit()
     return json_serialize(conf)
Пример #18
0
 def put(self, bank_id, branch_id):
     """API Endpoint for adding staff to a branch instance
     """
     args = _staff_create_parser.parse_args()
     bank = Bank.query.get_or_404(bank_id)
     branch = BankBranch.query.filter_by(bank=bank,
                                         id=branch_id).first_or_404()
     user = User.query.get_or_404(args['user_id'])
     staff = Staff(branch=branch, user=user, role=args['role'])
     user.staff = staff
     db.session.add(staff)
     db.session.commit()
     return json_serialize(staff)
Пример #19
0
 def put(self, bank_id):
     """API Endpoint for adding new account to a bank
     """
     args = _account_parser.parse_args()
     bank = Bank.query.get_or_404(bank_id)
     user = User.query.get_or_404(args['user_id'])
     account_config = AccountConfig.query.get_or_404(args['account_config_id'])
     # Verify initial deposit is not an issue
     if account_config.min_opening_balance and args['initial_deposit'] < account_config.min_opening_balance:
         abort(400, "You must deposit at least {} to open this account.".format(account_config.min_opening_balance))
     # Create account
     account = Account(bank=bank, config=account_config, user=user, _balance=0)
     # If initial deposit, make initial deposit
     if args['initial_deposit']:
         transaction = _gen_deposit_transaction(account, args['initial_deposit'], description="Initial Deposit")
         account.process_transaction(transaction)
     db.session.add(account)
     db.session.commit()
     return json_serialize(account)
Пример #20
0
    def put(self, bank_id, account_id):
        """API Endpoint for adding account transaction
        """
        args = _transaction_parser.parse_args()
        account = Account.query.get_or_404(account_id)
        cash_amount = args['cash_amount']
        raw_checks = args['checks']
        checks = [Check.query.get_or_404(check_id) for check_id in raw_checks]

        # Classify Transaction
        if cash_amount < 0 and not checks:
            # Withdrawal
            transaction = _gen_withdraw_transaction(account, cash_amount, args['description'])
        elif cash_amount >= 0:
            # Deposit
            transaction = _gen_deposit_transaction(account, cash_amount, checks=checks, description=args['description'])
        else:
            abort(400, "Invalid Transaction: Must either have negative cash amount and no checks, or positive cash amount and checks.")

        # Change balance
        account.process_transaction(transaction)
        db.session.commit()
        return json_serialize(transaction)
Пример #21
0
 def delete(self, user_id):
     """API Endpoint for deleting user instance"""
     user = User.query.get_or_404(user_id)
     db.session.delete(user)
     db.session.commit()
     return json_serialize(user)
Пример #22
0
 def get(self, bank_id):
     """API Endpoint for getting all branches for a given bank
     """
     bank = Bank.query.get_or_404(bank_id)
     branches = BankBranch.query.filter_by(bank=bank).all()
     return json_serialize(branches)
Пример #23
0
 def get(self, bank_id, account_id, transaction_id):
     """API Endpoint for accessing transaction instance
     """
     return json_serialize(Transaction.query.get_or_404(transaction_id))
Пример #24
0
 def get(self, bank_id, account_id):
     """API Endpoint for accessing account's checks
     """
     account = Account.query.get_or_404(account_id)
     return json_serialize(Check.query.filter(Check.issuing_account == account).filter_by(_void=False).all())
Пример #25
0
 def get(self, bank_id):
     """API Endpoint for getting individual bank
     """
     return json_serialize(Bank.query.get_or_404(bank_id))
Пример #26
0
 def get(self, bank_id, account_id, check_id):
     """API Endpoint for accessing check instance
     """
     return json_serialize(Check.query.get_or_404(check_id))
Пример #27
0
 def get(self):
     """API Endpoint for getting all user instances"""
     return json_serialize(User.query.all())
Пример #28
0
 def get(self, user_id):
     """API Endpoint for getting user instance"""
     user = User.query.get_or_404(user_id)
     return json_serialize(user)
Пример #29
0
 def get(self, bank_id, branch_id, staff_id):
     """API Endpoint for getting staff instance
     """
     staff = Staff.query.get_or_404(staff_id)
     return json_serialize(staff)
Пример #30
0
 def get(self):
     """API Endpoint for getting all banks"""
     return json_serialize(Bank.query.all())