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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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))
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())
def get(self, bank_id): """API Endpoint for getting individual bank """ return json_serialize(Bank.query.get_or_404(bank_id))
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))
def get(self): """API Endpoint for getting all user instances""" return json_serialize(User.query.all())
def get(self, user_id): """API Endpoint for getting user instance""" user = User.query.get_or_404(user_id) return json_serialize(user)
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)
def get(self): """API Endpoint for getting all banks""" return json_serialize(Bank.query.all())