Contents:
Models¶
Trading¶
Models here represents any interaction between a user and stocks
-
class
trading.models.
TradeBucket
(*args, **kwargs)[source]¶ Bases:
django.db.models.base.Model
Same as trade but for buckets
-
class
trading.models.
TradeStock
(*args, **kwargs)[source]¶ Bases:
django.db.models.base.Model
A Trade represents a single exchange of a stock for money
Authentication¶
Models keeps track of all the persistent data around the user profile
-
class
authentication.models.
Profile
(*args, **kwargs)[source]¶ Bases:
django.db.models.base.Model
Profile is an extension of
django.contrib.auth.models.User
, that allows us to store additional values per User.-
default_acc
()[source]¶ This method retrieves the default account for the profile. If none exists, a new one will be created with the name ‘default’.
Returns: The default trading.models.TradingAccount
.
-
-
class
authentication.models.
UserBank
(*args, **kwargs)[source]¶ Bases:
django.db.models.base.Model
The UserBank wraps a connection to Plaid. It stores the access token for the User. At the same time it also caches past queries to reduce initial load time.
-
current_balance
(update=True)[source]¶ Returns the latest balance for the bank account. If update is set, then the balance will be synced with the original bank account.
Parameters: update (bool) – Whether to sync with the remote bank account. Returns: float of the current balance for the account
-
-
authentication.models.
create_user_profile
(instance, created, **_)[source]¶ This method will be called every time a
django.contrib.auth.models.User
is saved. It will create aauthentication.models.Profile
to associate with the user.Parameters: - instance (
django.contrib.auth.models.User
) – The User instance that was saved. - created – True if the instance was just created.
- type – bool
- instance (
-
authentication.models.
save_user_profile
(instance, **_)[source]¶ This method ensures that the
authentication.models.Profile
is kept in sync with the User (django.contrib.auth.models.User
)Parameters: instance ( django.contrib.auth.models.User
) – The User instance that was saved.
Stocks¶
Models keeps track of all the persistent data around stocks
-
class
stocks.models.
DailyStockQuote
(*args, **kwargs)[source]¶ Bases:
django.db.models.base.Model
DailyStockQuote is one day in the performance of a stock, for example 2nd July GOOGL value is 281.31$
-
class
stocks.models.
InvestmentBucket
(*args, **kwargs)[source]¶ Bases:
django.db.models.base.Model
An investment bucket represents a collection of stocks to invest in
-
class
stocks.models.
InvestmentBucketDescription
(*args, **kwargs)[source]¶ Bases:
django.db.models.base.Model
An investment bucket represents a collection of stocks to invest in
-
class
stocks.models.
InvestmentStockConfiguration
(*args, **kwargs)[source]¶ Bases:
django.db.models.base.Model
Represents the configuration of how much of a stock to invest for a bucket
GraphQL¶
Trading¶
GraphQL definitions for the Trading App
-
class
trading.graphql.
AddTrade
(*args, **kwargs)[source]¶ Bases:
graphene.types.mutation.Mutation
AddTrade creates a new Trade for the user and stock
-
class
trading.graphql.
GInvestmentBucketTrade
(*args, **kwargs)[source]¶ Bases:
graphene_django.types.DjangoObjectType
Exposing the whole Trade object to GraphQL
-
class
trading.graphql.
GTrade
(*args, **kwargs)[source]¶ Bases:
graphene_django.types.DjangoObjectType
Exposing the whole Trade object to GraphQL
-
class
trading.graphql.
GTradingAccount
(*args, **kwargs)[source]¶ Bases:
graphene_django.types.DjangoObjectType
Exposing the whole TradingAccount to GraphQL
Authentication¶
GraphQL definitions for the Authentication App
-
class
authentication.graphql.
AddTradingAccount
(*args, **kwargs)[source]¶ Bases:
graphene.types.mutation.Mutation
AddTradingAccount creates a new
trading.models.TradingAccount
for the user.-
class
Arguments
[source]¶ Bases:
object
Arguments to create a
trading.models.TradingAccount
. Right now we only need the name.
-
static
mutate
(_self, info, name, **_args)[source]¶ Creates a new
trading.models.TradingAccount
for the user and returns it.Parameters: - info – Information about the request / user.
- name (str) – Name of the new trading account.
-
class
-
class
authentication.graphql.
GProfile
(*args, **kwargs)[source]¶ Bases:
graphene_django.types.DjangoObjectType
This is the GraphQL representation of a
authentication.models.Profile
. This is more of a publically accessible object. Even though we won’t expose everything, this object allows us to add more fields to the user object.-
static
resolve_invest_suggestions
(_data, info, **_args)[source]¶ Returns a list of buckets that the User can invest in. (see
stocks.models.InvestmentBucket.available_buckets()
)Parameters: info (Graphene Request Info.) – Information about the user to check which recommendations are best for the user. Returns: django.db.models.query.QuerySet
ofstocks.models.InvestmentBucket
-
static
resolve_selected_acc
(data, _info, **_args)[source]¶ Returns the current account the user has selected. Right now it just calls the default account of the profile. (see
authentication.models.Profile.default_acc()
)Returns: django.db.models.query.QuerySet
oftrading.models.TradingAccount
-
static
resolve_stock_find
(_self, _info, text, first=None, **_args)[source]¶ Finds a stock given a case insensitive name. (see
stocks.models.Stock.find_stock()
)Parameters: - text – The text the user want to search for.
- first – The maximum number of results to return
Returns: django.db.models.query.QuerySet
ofstocks.stocks.Stock
-
static
-
class
authentication.graphql.
GUser
(*args, **kwargs)[source]¶ Bases:
graphene_django.types.DjangoObjectType
This is the GraphQL representation of a
django.contrib.auth.models.User
. This should only be accessible for the user himself.
-
class
authentication.graphql.
GUserBank
(*args, **kwargs)[source]¶ Bases:
graphene_django.types.DjangoObjectType
GraphQL wrapper around the
authentication.models.UserBank
model. This should only be accessible to the user.-
static
resolve_balance
(data, _info, **_args)[source]¶ Calls
authentication.models.UserBank.current_balance()
on data.Parameters: data ( authentication.models.UserBank
) – The Userbank we want to extract the balance from.Returns: The current balance of that the user has.
-
static
resolve_history
(data, _info, start, **_args)[source]¶ This method returns the account history for a user. This is, how much value the bank account historically had. (see
authentication.models.UserBank.historical_data()
)Parameters: - data (
authentication.models.UserBank
) – The bank we want to extract the history from. - start (str (YYYY-MM-dd)) – The date with that the history should start. The query will return the history from start until today.
Returns: stocks.graphql.DataPoint representing the history.
- data (
-
static
resolve_income
(data, _info, **_args)[source]¶ Calls
authentication.models.UserBank.income()
on data.Parameters: data ( authentication.models.UserBank
) – The Userbank we want to extract the income from.Returns: The monthly income of the account.
-
static
resolve_monthly_end
(_data, _info)[source]¶ End date for measuring the monthly income/expenditure
-
static
resolve_monthly_start
(_data, _info)[source]¶ Start date for measuring the monthly income/expenditure
-
static
resolve_name
(data, _info, **_args)[source]¶ Calls
authentication.models.UserBank.account_name()
on data.Parameters: data ( authentication.models.UserBank
) – The Userbank we want to get the account name.Returns: The account name of the bank.
-
static
resolve_outcome
(data, _info, **_args)[source]¶ Calls
authentication.models.UserBank.expenditure()
on data.Parameters: data ( authentication.models.UserBank
) – The Userbank we want to extract the expenditures from.Returns: The monthly expenditure of the account.
-
static
Stocks¶
GraphQL definitions for the Stocks App
-
class
stocks.graphql.
AddAttributeToInvestment
(*args, **kwargs)[source]¶ Bases:
graphene.types.mutation.Mutation
Adds a description to an Investment Bucket and returns the bucket
-
class
stocks.graphql.
AddBucket
(*args, **kwargs)[source]¶ Bases:
graphene.types.mutation.Mutation
Creates a new InvestmentBucket and returns the new bucket
-
class
stocks.graphql.
AddStock
(*args, **kwargs)[source]¶ Bases:
graphene.types.mutation.Mutation
AddStock creates a new Stock that is tracked
-
class
stocks.graphql.
Config
(id, quantity)¶ Bases:
tuple
-
id
¶ Alias for field number 0
-
quantity
¶ Alias for field number 1
-
-
class
stocks.graphql.
DataPoint
(date, value)[source]¶ Bases:
object
Dummy class to represent a date / value DataPoint
-
class
stocks.graphql.
DeleteAttribute
(*args, **kwargs)[source]¶ Bases:
graphene.types.mutation.Mutation
Deletes an attribute from a bucket
-
class
stocks.graphql.
DeleteBucket
(*args, **kwargs)[source]¶ Bases:
graphene.types.mutation.Mutation
Deletes an attribute from a bucket
-
class
stocks.graphql.
EditAttribute
(*args, **kwargs)[source]¶ Bases:
graphene.types.mutation.Mutation
Allows to edit an attribute description
-
class
stocks.graphql.
EditConfiguration
(*args, **kwargs)[source]¶ Bases:
graphene.types.mutation.Mutation
Mutation to change the stock configuration of a bucket
-
class
stocks.graphql.
GDailyStockQuote
(*args, **kwargs)[source]¶ Bases:
graphene_django.types.DjangoObjectType
GraphQL representation of a DailyStockQuote
-
class
stocks.graphql.
GDataPoint
(*args, **kwargs)[source]¶ Bases:
graphene.types.objecttype.ObjectType
GraphQL definition of the DataPoint above
-
class
stocks.graphql.
GInvestmentBucket
(*args, **kwargs)[source]¶ Bases:
graphene_django.types.DjangoObjectType
GraphQL representation of a InvestmentBucket
-
static
resolve_history
(data, _info, count=None, skip=None, **_args)[source]¶ Returns the historic data for the bucket
-
static
resolve_is_owner
(data, info, **_args)[source]¶ Returns whether the user ownes the investment bucket
-
static
-
class
stocks.graphql.
GInvestmentBucketAttribute
(*args, **kwargs)[source]¶ Bases:
graphene_django.types.DjangoObjectType
GraphQL representation of a InvestmentBucketDescription
-
class
stocks.graphql.
GInvestmentBucketConfigurationUpdate
(*args, **kwargs)[source]¶ Bases:
graphene.types.inputobjecttype.InputObjectType
Represents one choice of stock for a bucket
-
class
stocks.graphql.
GInvestmentStockConfiguration
(*args, **kwargs)[source]¶ Bases:
graphene_django.types.DjangoObjectType
GraphQL representation of a InvestmentStockConfiguration