diff --git a/calls.go b/calls.go index 294a4a8..d18d28c 100644 --- a/calls.go +++ b/calls.go @@ -892,6 +892,14 @@ func (a *DerivAPI) TradingPlatformPasswordReset(r schema.TradingPlatformPassword return } +// TradingPlatformStatus Request trading platform status +func (a *DerivAPI) TradingPlatformStatus(r schema.TradingPlatformStatus) (resp schema.TradingPlatformStatusResp, err error) { + id := a.getNextRequestID() + r.ReqId = &id + err = a.SendRequest(id, r, &resp) + return +} + // TradingServers Get the list of servers for a trading platform. func (a *DerivAPI) TradingServers(r schema.TradingServers) (resp schema.TradingServersResp, err error) { id := a.getNextRequestID() diff --git a/schema/trading_platform_status.go b/schema/trading_platform_status.go new file mode 100644 index 0000000..52ed0bd --- /dev/null +++ b/schema/trading_platform_status.go @@ -0,0 +1,68 @@ +// Code generated by github.com/atombender/go-jsonschema, DO NOT EDIT. + +package schema + +import "encoding/json" +import "fmt" +import "reflect" + +// Request trading platform status +type TradingPlatformStatus struct { + // [Optional] Used to pass data through the websocket, which may be retrieved via + // the `echo_req` output field. + Passthrough TradingPlatformStatusPassthrough `json:"passthrough,omitempty"` + + // [Optional] Used to map request to response. + ReqId *int `json:"req_id,omitempty"` + + // Must be `1` + TradingPlatformStatus TradingPlatformStatusTradingPlatformStatus `json:"trading_platform_status"` +} + +// [Optional] Used to pass data through the websocket, which may be retrieved via +// the `echo_req` output field. +type TradingPlatformStatusPassthrough map[string]interface{} + +type TradingPlatformStatusTradingPlatformStatus int + +var enumValues_TradingPlatformStatusTradingPlatformStatus = []interface{}{ + 1, +} + +// UnmarshalJSON implements json.Unmarshaler. +func (j *TradingPlatformStatusTradingPlatformStatus) UnmarshalJSON(b []byte) error { + var v int + if err := json.Unmarshal(b, &v); err != nil { + return err + } + var ok bool + for _, expected := range enumValues_TradingPlatformStatusTradingPlatformStatus { + if reflect.DeepEqual(v, expected) { + ok = true + break + } + } + if !ok { + return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_TradingPlatformStatusTradingPlatformStatus, v) + } + *j = TradingPlatformStatusTradingPlatformStatus(v) + return nil +} + +// UnmarshalJSON implements json.Unmarshaler. +func (j *TradingPlatformStatus) UnmarshalJSON(b []byte) error { + var raw map[string]interface{} + if err := json.Unmarshal(b, &raw); err != nil { + return err + } + if _, ok := raw["trading_platform_status"]; raw != nil && !ok { + return fmt.Errorf("field trading_platform_status in TradingPlatformStatus: required") + } + type Plain TradingPlatformStatus + var plain Plain + if err := json.Unmarshal(b, &plain); err != nil { + return err + } + *j = TradingPlatformStatus(plain) + return nil +} diff --git a/schema/trading_platform_status_resp.go b/schema/trading_platform_status_resp.go new file mode 100644 index 0000000..39bf383 --- /dev/null +++ b/schema/trading_platform_status_resp.go @@ -0,0 +1,78 @@ +// Code generated by github.com/atombender/go-jsonschema, DO NOT EDIT. + +package schema + +import "encoding/json" +import "fmt" +import "reflect" + +// Provides current suspension status of trading platforms +type TradingPlatformStatusResp struct { + // Echo of the request made. + EchoReq TradingPlatformStatusRespEchoReq `json:"echo_req"` + + // Action name of the request made. + MsgType TradingPlatformStatusRespMsgType `json:"msg_type"` + + // Optional field sent in request to map to response, present only when request + // contains `req_id`. + ReqId *int `json:"req_id,omitempty"` + + // Availability status of the trading platforms + TradingPlatformStatus []interface{} `json:"trading_platform_status"` +} + +// Echo of the request made. +type TradingPlatformStatusRespEchoReq map[string]interface{} + +type TradingPlatformStatusRespMsgType string + +const TradingPlatformStatusRespMsgTypeTradingPlatformStatus TradingPlatformStatusRespMsgType = "trading_platform_status" + +var enumValues_TradingPlatformStatusRespMsgType = []interface{}{ + "trading_platform_status", +} + +// UnmarshalJSON implements json.Unmarshaler. +func (j *TradingPlatformStatusRespMsgType) UnmarshalJSON(b []byte) error { + var v string + if err := json.Unmarshal(b, &v); err != nil { + return err + } + var ok bool + for _, expected := range enumValues_TradingPlatformStatusRespMsgType { + if reflect.DeepEqual(v, expected) { + ok = true + break + } + } + if !ok { + return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_TradingPlatformStatusRespMsgType, v) + } + *j = TradingPlatformStatusRespMsgType(v) + return nil +} + +// UnmarshalJSON implements json.Unmarshaler. +func (j *TradingPlatformStatusResp) UnmarshalJSON(b []byte) error { + var raw map[string]interface{} + if err := json.Unmarshal(b, &raw); err != nil { + return err + } + if _, ok := raw["echo_req"]; raw != nil && !ok { + return fmt.Errorf("field echo_req in TradingPlatformStatusResp: required") + } + if _, ok := raw["msg_type"]; raw != nil && !ok { + return fmt.Errorf("field msg_type in TradingPlatformStatusResp: required") + } + if _, ok := raw["trading_platform_status"]; raw != nil && !ok { + return fmt.Errorf("field trading_platform_status in TradingPlatformStatusResp: required") + } + type Plain TradingPlatformStatusResp + var plain Plain + if err := json.Unmarshal(b, &plain); err != nil { + return err + } + *j = TradingPlatformStatusResp(plain) + return nil +}