def post_account(): # Prepare basic response response = basic_response.get_basic_response() # Get request JSON account_data_from_request = request.get_json() # Check if it's valid JSON if account_data_from_request is None: response['status']['code'] = status_codes.BAD_REQUEST response['status']['errors'].append( 'Incoming data is not application/json') else: try: # Initialize account (exception will be thrown is JSON is not valid) account = Account(account_data_from_request) # Add to database (exception will be thrown from database if smth is wrong) DB_SESSION.add(account) DB_SESSION.commit() # Respond to user with new ID response['count'] = 1 response['accounts'].append(account.to_dict()) response['status']['code'] = status_codes.CREATED except ModelInitializationException as initError: response['status']['code'] = status_codes.BAD_REQUEST response['status']['errors'] = initError.errors except IntegrityError as integrityError: response['status']['code'] = status_codes.INTERNAL_SERVER_ERROR response['status']['errors'] = integrityError.detail except ProgrammingError as programmingError: response['status']['code'] = status_codes.INTERNAL_SERVER_ERROR response['status']['errors'].append(str(programmingError.orig)) return jsonify(response)
def get_transactions(): # Prepare basic response response = basic_response.get_basic_response() # Query database for all transactions transactions = Transaction.query.all() # Put count of transactions to response object response['count'] = len(transactions) for transaction in transactions: response['transactions'].append(transaction.to_dict()) return jsonify(response)
def get_entities(): # Prepare basic response response = basic_response.get_basic_response() # Query database for all entities entities = Counterparty.query.all() # Put count of entities to response object response['count'] = len(entities) for entity in entities: response['entities'].append(entity.to_dict()) return jsonify(response)
def get_entity(entity_id): # Prepare basic response response = basic_response.get_basic_response() # Query database for entity by id entity = Counterparty.query.filter_by(id=entity_id).first() if entity is None: response['status']['code'] = status_codes.NOT_FOUND else: response['count'] = 1 response['entities'].append(entity.to_dict()) return jsonify(response)
def get_transaction(transaction_id): # Prepare basic response response = basic_response.get_basic_response() # Query database for transaction by id transaction = Transaction.query.filter_by(id=transaction_id).first() if transaction is None: response['status']['code'] = status_codes.NOT_FOUND else: response['count'] = 1 response['transactions'].append(transaction.to_dict()) return jsonify(response)
def get_account(account_id): # Prepare basic response response = basic_response.get_basic_response() # Query database for account by id account = Account.query.filter_by(id = account_id).first() if account is None: response['status']['code'] = status_codes.NOT_FOUND else: response['count'] = 1 response['accounts'].append(account.to_dict()) return jsonify(response)
def not_found(message): return jsonify(error(404, message), 404)
def success(response_body): return jsonify(response_body, 200)
def created(response_body): return jsonify(response_body, 204)
def bad_request(message): return jsonify(error(400, message), 400)