Beispiel #1
0
def delete_asset_operations(portfolio_id, operation_id):
  managed_portfolio = portfolio_manager.get_portfolio(portfolio_id)
  operation_to_delete = (
      operation_manager.get_operation(managed_portfolio, operation_id))
  operation_manager.delete_operation(managed_portfolio, operation_to_delete)

  return operation_to_delete.to_dict()
Beispiel #2
0
def get_portfolio_assets(portfolio_id):
  managed_portfolio = portfolio_manager.get_portfolio(portfolio_id)
  portfolio_assets = asset_manager.get_assets(managed_portfolio)
  return flask.jsonify([
      portfolio_asset.to_dict()
      for portfolio_asset in portfolio_assets.values()
  ])
Beispiel #3
0
def get_asset_stats(portfolio_id,):
  managed_portfolio = portfolio_manager.get_portfolio(portfolio_id)
  portfolio_stats = stats_manager.update_portfolio_stats(managed_portfolio)

  return flask.jsonify([
      asset_stats.to_dict()
      for asset_stats in portfolio_stats.values()
  ])
Beispiel #4
0
def get_portfolio_operations(portfolio_id):
  managed_portfolio = portfolio_manager.get_portfolio(portfolio_id)
  portfolio_operations = operation_manager.get_operations(managed_portfolio)

  return flask.jsonify([
      portfolio_operation.to_dict()
      for portfolio_operation in portfolio_operations.values()
  ])
Beispiel #5
0
def get_portfolio(portfolio_id):
    managed_portfolio = portfolio_manager.get_portfolio(portfolio_id)
    portfolio_positions = position_manager.get_positions(managed_portfolio)

    return flask.render_template(
        'views/portfolio.jinja2',
        portfolio=managed_portfolio,
        portfolio_positions=portfolio_positions,
    )
Beispiel #6
0
def get_portfolio_history(portfolio_id):
    managed_portfolio = portfolio_manager.get_portfolio(portfolio_id)
    portfolio_operations = operation_manager.get_operations(managed_portfolio)

    return flask.render_template(
        'views/portfolio_history.jinja2',
        portfolio=managed_portfolio,
        portfolio_operations=portfolio_operations,
    )
Beispiel #7
0
def get_asset_operations(portfolio_id, asset_name):
  managed_portfolio = portfolio_manager.get_portfolio(portfolio_id)
  managed_asset = asset_manager.get_asset(managed_portfolio, asset_name)
  asset_operations = asset_manager.get_operations(managed_asset)

  return flask.jsonify([
      asset_operation.to_dict()
      for asset_operation in asset_operations.values()
  ])
Beispiel #8
0
def get_portfolio_stats(portfolio_id):
    managed_portfolio = portfolio_manager.get_portfolio(portfolio_id)
    portfolio_stats = stats_manager.get_portfolio_stats(managed_portfolio)

    return flask.render_template(
        'views/portfolio_stats.jinja2',
        portfolio=managed_portfolio,
        portfolio_stats=portfolio_stats,
    )
Beispiel #9
0
def get_portfolio_balance(portfolio_id):
  managed_portfolio = portfolio_manager.get_portfolio(portfolio_id)
  portfolio_positions = position_manager.get_positions(managed_portfolio)

  portfolio_position_list = {
      managed_asset.get_id(): asset_position.to_dict()
      for managed_asset, asset_position in portfolio_positions.items()
  }

  return portfolio_position_list
Beispiel #10
0
def get_asset(portfolio_id, asset_name):
    managed_portfolio = portfolio_manager.get_portfolio(portfolio_id)
    managed_asset = asset_manager.get_asset(managed_portfolio, asset_name)
    asset_operations = asset_manager.get_operations(managed_asset)
    asset_position = position_manager.get_position(managed_asset)

    return flask.render_template(
        'views/asset.jinja2',
        portfolio=managed_portfolio,
        asset=managed_asset,
        asset_operations=asset_operations,
        asset_position=asset_position,
    )
Beispiel #11
0
def update_portfolio_asset(portfolio_id, asset_code):
  managed_portfolio = portfolio_manager.get_portfolio(portfolio_id)
  managed_asset = asset_manager.get_asset(managed_portfolio, asset_code)

  request_data = flask.request.get_json()

  asset_name = request_data.get('asset_name')
  asset_price = float(request_data.get('asset_price', 0.0))
  asset_currency = request_data.get('asset_currency')

  managed_asset = asset_manager.update_asset(
      managed_portfolio, managed_asset, asset_name, asset_price,
      asset_currency)

  return managed_asset.to_dict()
Beispiel #12
0
def create_portfolio_asset(portfolio_id):
  managed_portfolio = portfolio_manager.get_portfolio(portfolio_id)

  request_data = flask.request.get_json()

  asset_code = request_data['asset_code']
  asset_name = request_data.get('asset_name', asset_code)
  asset_price = float(request_data.get('asset_price', 0))
  asset_currency = request_data.get(
      'asset_currency', managed_portfolio.currency)

  managed_asset = asset_manager.add_asset(
      managed_portfolio, asset_code, asset_name, asset_price, asset_currency)

  return managed_asset.to_dict()
Beispiel #13
0
def create_asset_operation(portfolio_id, asset_code):
  request_data = flask.request.get_json()

  managed_portfolio = portfolio_manager.get_portfolio(portfolio_id)
  managed_asset = asset_manager.get_asset(managed_portfolio, asset_code)

  timestamp_int = int(request_data['timestamp'])
  timestamp = datetime.datetime.fromtimestamp(timestamp_int)

  operation_type_name = request_data['operation_type']
  operation_type = operation_manager.get_operation_type(operation_type_name)

  quantity = int(request_data['quantity'])
  price_per_unit = float(request_data['price_per_unit'])
  operation_currency = request_data['operation_currency']

  new_operation = operation_manager.add_operation(
      managed_portfolio, managed_asset, timestamp, operation_type, quantity,
      price_per_unit, operation_currency)

  return new_operation.to_dict()
Beispiel #14
0
def get_portfolio(portfolio_id):
  managed_portfolio = portfolio_manager.get_portfolio(portfolio_id)
  return managed_portfolio.to_dict()
Beispiel #15
0
def get_portfolio_asset_balance(portfolio_id, asset_name):
  managed_portfolio = portfolio_manager.get_portfolio(portfolio_id)
  managed_asset = asset_manager.get_asset(managed_portfolio, asset_name)
  asset_position = position_manager.get_position(managed_asset)
  return asset_position.to_dict()
Beispiel #16
0
def update_asset_stats(portfolio_id, asset_name):
  managed_portfolio = portfolio_manager.get_portfolio(portfolio_id)
  managed_asset = asset_manager.get_asset(managed_portfolio, asset_name)
  asset_stats = stats_manager.update_asset_stats(managed_asset)

  return flask.jsonify(asset_stats.to_dict())
Beispiel #17
0
def delete_portfolio_asset(portfolio_id, asset_code):
  managed_portfolio = portfolio_manager.get_portfolio(portfolio_id)
  managed_asset = asset_manager.get_asset(managed_portfolio, asset_code)
  asset_manager.delete_asset(managed_portfolio, managed_asset)
  return managed_asset.to_dict()