[][src]Struct botfair::client::BFClient

pub struct BFClient { /* fields omitted */ }

A thread-safe client with automatic login implementing all methods of the Betfair SportsAPING.

BFClient implements Sync and so can safely be wrapped in an Arc for multithreaded use with the same session token.

Methods

impl BFClient[src]

pub fn new(creds: BFCredentials, proxy_uri: Option<String>) -> Result<Self>[src]

impl BFClient[src]

pub fn listEventTypes(
    &self,
    filter: MarketFilter,
    locale: Option<String>
) -> Result<Vec<EventTypeResult>>
[src]

Returns a list of Event Types (i.e. Sports) associated with the markets selected by the MarketFilter.

pub fn listCompetitions(
    &self,
    filter: MarketFilter,
    locale: Option<String>
) -> Result<Vec<CompetitionResult>>
[src]

Returns a list of Competitions (i.e., World Cup 2013) associated with the markets selected by the MarketFilter. Currently only Football markets have an associated competition.

pub fn listTimeRanges(
    &self,
    filter: MarketFilter,
    granularity: TimeGranularity
) -> Result<Vec<TimeRangeResult>>
[src]

Returns a list of time ranges in the granularity specified in the request (i.e. 3PM to 4PM, Aug 14th to Aug 15th) associated with the markets selected by the MarketFilter.

pub fn listEvents(
    &self,
    filter: MarketFilter,
    locale: Option<String>
) -> Result<Vec<EventResult>>
[src]

Returns a list of Events (i.e, Reading vs. Man United) associated with the markets selected by the MarketFilter.

pub fn listMarketTypes(
    &self,
    filter: MarketFilter,
    locale: Option<String>
) -> Result<Vec<MarketTypeResult>>
[src]

Returns a list of market types (i.e. MATCH_ODDS, NEXT_GOAL) associated with the markets selected by the MarketFilter. The market types are always the same, regardless of locale.

pub fn listCountries(
    &self,
    filter: MarketFilter,
    locale: Option<String>
) -> Result<Vec<CountryCodeResult>>
[src]

Returns a list of Countries associated with the markets selected by the MarketFilter.

pub fn listVenues(
    &self,
    filter: MarketFilter,
    locale: Option<String>
) -> Result<Vec<VenueResult>>
[src]

Returns a list of Venues (i.e. Cheltenham, Ascot) associated with the markets selected by the MarketFilter. Currently, only Horse Racing markets are associated with a Venue.

pub fn listMarketCatalogue(
    &self,
    filter: MarketFilter,
    marketProjection: Option<Vec<MarketProjection>>,
    sort: Option<MarketSort>,
    maxResults: i32,
    locale: Option<String>
) -> Result<Vec<MarketCatalogue>>
[src]

Returns a list of information about markets that does not change (or changes very rarely). You use listMarketCatalogue to retrieve the name of the market, the names of selections and other information about markets.

pub fn listMarketBook(
    &self,
    marketIds: Vec<MarketId>,
    priceProjection: Option<PriceProjection>,
    orderProjection: Option<OrderProjection>,
    matchProjection: Option<MatchProjection>,
    includeOverallPosition: Option<bool>,
    partitionMatchedByStrategyRef: Option<bool>,
    customerStrategyRefs: Option<Vec<String>>,
    currencyCode: Option<String>,
    locale: Option<String>,
    matchedSince: Option<DateTime<Utc>>,
    betIds: Option<Vec<BetId>>
) -> Result<Vec<MarketBook>>
[src]

Returns a list of dynamic data about markets. Dynamic data includes prices, the status of the market, the status of selections, the traded volume, and the status of any orders you have placed in the market.

pub fn listRunnerBook(
    &self,
    marketId: MarketId,
    selectionId: SelectionId,
    handicap: Option<f64>,
    priceProjection: Option<PriceProjection>,
    orderProjection: Option<OrderProjection>,
    matchProjection: Option<MatchProjection>,
    includeOverallPosition: Option<bool>,
    partitionMatchedByStrategyRef: Option<bool>,
    customerStrategyRefs: Option<Vec<String>>,
    currencyCode: Option<String>,
    locale: Option<String>,
    matchedSince: Option<DateTime<Utc>>,
    betIds: Option<Vec<BetId>>
) -> Result<Vec<MarketBook>>
[src]

Returns a list of dynamic data about a market and a specified runner. Dynamic data includes prices, the status of the market, the status of selections, the traded volume, and the status of any orders you have placed in the market.

pub fn listCurrentOrders(
    &self,
    betIds: Option<Vec<BetId>>,
    marketIds: Option<Vec<MarketId>>,
    orderProjection: Option<OrderProjection>,
    customerOrderRefs: Option<Vec<CustomerOrderRef>>,
    customerStrategyRefs: Option<Vec<CustomerStrategyRef>>,
    placedDateRange: Option<TimeRange>,
    dateRange: Option<TimeRange>,
    orderBy: Option<OrderBy>,
    sortDir: Option<SortDir>,
    fromRecord: Option<i32>,
    recordCount: Option<i32>
) -> Result<CurrentOrderSummaryReport>
[src]

Returns a list of your current orders. Optionally you can filter and sort your current orders using the various parameters, setting none of the parameters will return all of your current orders, up to a maximum of 1000 bets, ordered BY_BET and sorted EARLIEST_TO_LATEST. To retrieve more than 1000 orders, you need to make use of the fromRecord and recordCount parameters.

pub fn listClearedOrders(
    &self,
    betStatus: BetStatus,
    eventTypeIds: Option<Vec<EventTypeId>>,
    eventIds: Option<Vec<EventId>>,
    marketIds: Option<Vec<MarketId>>,
    runnerIds: Option<Vec<RunnerId>>,
    betIds: Option<Vec<BetId>>,
    customerOrderRefs: Option<Vec<CustomerOrderRef>>,
    customerStrategyRefs: Option<Vec<CustomerStrategyRef>>,
    side: Option<Side>,
    settledDateRange: Option<TimeRange>,
    groupBy: Option<GroupBy>,
    includeItemDescription: Option<bool>,
    locale: Option<String>,
    fromRecord: Option<i32>,
    recordCount: Option<i32>
) -> Result<ClearedOrderSummaryReport>
[src]

Returns a List of bets based on the bet status, ordered by settled date

pub fn placeOrders(
    &self,
    marketId: MarketId,
    instructions: Vec<PlaceInstruction>,
    customerRef: Option<String>,
    marketVersion: Option<MarketVersion>,
    customerStrategyRef: Option<String>,
    async: Option<bool>
) -> Result<PlaceExecutionReport>
[src]

Place new orders into market. LIMIT orders below the minimum bet size are allowed if there is an unmatched bet at the same price in the market. This operation is atomic in that all orders will be placed or none will be placed.

pub fn cancelOrders(
    &self,
    marketId: Option<MarketId>,
    instructions: Option<Vec<CancelInstruction>>,
    customerRef: Option<String>
) -> Result<CancelExecutionReport>
[src]

Cancel all bets OR cancel all bets on a market OR fully or partially cancel particular orders on a market. Only LIMIT orders an be cancelled or partially cancelled once placed.

pub fn replaceOrders(
    &self,
    marketId: MarketId,
    instructions: Vec<ReplaceInstruction>,
    customerRef: Option<String>,
    marketVersion: Option<MarketVersion>,
    async: Option<bool>
) -> Result<ReplaceExecutionReport>
[src]

This operation is logically a bulk cancel followed by a bulk place. The cancel is completed first then the new orders are placed. The new orders will be placed atomically in that they will all be placed or none will be placed. In the case where the new orders cannot be placed the cancellations will not be rolled back. See ReplaceInstruction.

pub fn updateOrders(
    &self,
    marketId: MarketId,
    instructions: Vec<UpdateInstruction>,
    customerRef: Option<String>
) -> Result<UpdateExecutionReport>
[src]

Update non-exposure changing fields

pub fn listMarketProfitAndLoss(
    &self,
    marketIds: Vec<MarketId>,
    includeSettledBets: Option<bool>,
    includeBspBets: Option<bool>,
    netOfCommission: Option<bool>
) -> Result<Vec<MarketProfitAndLoss>>
[src]

Retrieve profit and loss for a given list of markets. The values are calculated using matched bets and optionally settled bets. Only odds markets are implemented, markets of other types are silently ignored.

pub fn setDefaultExposureLimitForMarketGroups(
    &self,
    marketGroupType: MarketGroupType,
    limit: ExposureLimit
) -> Result<String>
[src]

Create/update default exposure limit for market groups of given type. New value and breach action will be immediately applied to existing instances of this type (unless overridden using setExposureLimitForMarketGroup). If default values are overridden for market groups (using setExposureLimitForMarketGroup), overrides will NOT be touched. In order to clear this limit "removeDefaultExposureLimitForMarketGroups" operation should be used. It's not allowed to set default limit to an empty limit (see type ExposureLimit).

pub fn setExposureLimitForMarketGroup(
    &self,
    marketGroup: MarketGroup,
    limit: ExposureLimit
) -> Result<String>
[src]

Create/update exposure limit for a market group. New limit will be applied immediately (even if a default limit exists for this type). The limit will be deleted upon account action (see deleteMarketGroupExposureLimit) or when no active markets remain under market group. It is possible to "invalidate" default limit for a specific group by using a "empty" limit (see type ExposureLimit). Upon successful execution of the request, the effective limit for this group will be the one set by this request (Properties will NOT be inherited from default limit).

pub fn removeDefaultExposureLimitForMarketGroups(
    &self,
    marketGroupType: MarketGroupType
) -> Result<String>
[src]

Remove default exposure limit for a market group type. This operation will NOT remove/update any market group limits.

pub fn removeExposureLimitForMarketGroup(
    &self,
    marketGroup: MarketGroup
) -> Result<String>
[src]

Delete exposure limit for a market group. If a default exposure limit exist for market type, it takes effect immediately.

pub fn listExposureLimitsForMarketGroups(
    &self,
    marketGroupTypeFilter: Option<MarketGroupType>,
    marketGroupFilter: Option<Vec<MarketGroup>>
) -> Result<Vec<ExposureLimitsForMarketGroups>>
[src]

Response to this request returns default group limit and group limits grouped by type. If marketGroupTypeFilter is not populated values for all types are returned. The response will always contain the default limit. It is possible to control which groups to return using marketGroupsFilter parameter. If marketGroupsFilter is not set all group limits are returned. If an emtpy list is passed only default limit(s) is returned. When marketGroupTypeFilter and marketGroupsFilter used together, all groups in marketGroupsFilter are required to be of same type (type used in marketGroupTypeFilter).

pub fn unblockMarketGroup(&self, marketGroup: MarketGroup) -> Result<String>[src]

Unblock a market group after it has been blocked due to the breach of a previously set exposure limit.

pub fn getExposureReuseEnabledEvents(&self) -> Result<Vec<i64>>[src]

Retrieves events from exposure reuse enabled events list. To edit this list use addExposureReuseEnabledEvents and removeExposureReuseEnabledEvents operations.

pub fn addExposureReuseEnabledEvents(
    &self,
    eventIds: Vec<i64>
) -> Result<String>
[src]

Enables events for exposure reuse by appending them to the current list of events already enabled.

pub fn removeExposureReuseEnabledEvents(
    &self,
    eventIds: Vec<i64>
) -> Result<String>
[src]

Removes events from exposure reuse enabled events list.

Trait Implementations

impl Drop for BFClient[src]

Auto Trait Implementations

impl Send for BFClient

impl Sync for BFClient

impl Unpin for BFClient

impl !UnwindSafe for BFClient

impl !RefUnwindSafe for BFClient

Blanket Implementations

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> From<T> for T[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 

type Err = <U as TryFrom<T>>::Err