// Generated from WebIDL - DO NOT EDIT
// Source: @webref/idl/payment-request
///|
/// PaymentShippingType enum
pub(all) enum PaymentShippingType {
Shipping
Delivery
Pickup
} derive(Eq, Show)
///|
/// Convert to string value
pub fn PaymentShippingType::to_string(self : PaymentShippingType) -> String {
match self {
PaymentShippingType::Shipping => "shipping"
PaymentShippingType::Delivery => "delivery"
PaymentShippingType::Pickup => "pickup"
}
}
///|
/// Parse from string value
pub fn PaymentShippingType::from_string(s : String) -> PaymentShippingType? {
match s {
"shipping" => Some(PaymentShippingType::Shipping)
"delivery" => Some(PaymentShippingType::Delivery)
"pickup" => Some(PaymentShippingType::Pickup)
_ => None
}
}
///|
/// PaymentComplete enum
pub(all) enum PaymentComplete {
Fail
Success
Unknown
} derive(Eq, Show)
///|
/// Convert to string value
pub fn PaymentComplete::to_string(self : PaymentComplete) -> String {
match self {
PaymentComplete::Fail => "fail"
PaymentComplete::Success => "success"
PaymentComplete::Unknown => "unknown"
}
}
///|
/// Parse from string value
pub fn PaymentComplete::from_string(s : String) -> PaymentComplete? {
match s {
"fail" => Some(PaymentComplete::Fail)
"success" => Some(PaymentComplete::Success)
"unknown" => Some(PaymentComplete::Unknown)
_ => None
}
}
///|
/// PaymentMethodData dictionary
pub(all) struct PaymentMethodData {
supportedMethods : String
data : JsValue?
}
///|
/// Create a new PaymentMethodData with default values
pub fn PaymentMethodData::default() -> PaymentMethodData {
PaymentMethodData::{ supportedMethods: "", data: None }
}
///|
extern "js" fn PaymentMethodData::to_js_ffi(
self : PaymentMethodData,
) -> JsValue =
#| (self) => ({
#| supportedMethods: self.supportedMethods,
#| data: ((() => { const v = self.data; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })())
#| })
///|
/// Convert to JsValue
pub fn PaymentMethodData::to_js(self : PaymentMethodData) -> JsValue {
PaymentMethodData::to_js_ffi(self)
}
///|
extern "js" fn PaymentMethodData::from_js_ffi(
value : JsValue,
) -> PaymentMethodData =
#| (v) => ({
#| supportedMethods: v.supportedMethods,
#| data: (v.data === undefined ? { $tag: 0 } : { $tag: 1, _0: v.data })
#| })
///|
/// Convert from JsValue
pub fn PaymentMethodData::from_js(value : JsValue) -> PaymentMethodData {
PaymentMethodData::from_js_ffi(value)
}
///|
/// PaymentCurrencyAmount dictionary
pub(all) struct PaymentCurrencyAmount {
currency : String
value : String
}
///|
/// Create a new PaymentCurrencyAmount with default values
pub fn PaymentCurrencyAmount::default() -> PaymentCurrencyAmount {
PaymentCurrencyAmount::{ currency: "", value: "" }
}
///|
extern "js" fn PaymentCurrencyAmount::to_js_ffi(
self : PaymentCurrencyAmount,
) -> JsValue =
#| (self) => ({
#| currency: self.currency,
#| value: self.value
#| })
///|
/// Convert to JsValue
pub fn PaymentCurrencyAmount::to_js(self : PaymentCurrencyAmount) -> JsValue {
PaymentCurrencyAmount::to_js_ffi(self)
}
///|
extern "js" fn PaymentCurrencyAmount::from_js_ffi(
value : JsValue,
) -> PaymentCurrencyAmount =
#| (v) => ({
#| currency: v.currency,
#| value: v.value
#| })
///|
/// Convert from JsValue
pub fn PaymentCurrencyAmount::from_js(value : JsValue) -> PaymentCurrencyAmount {
PaymentCurrencyAmount::from_js_ffi(value)
}
///|
/// PaymentDetailsBase dictionary
pub(all) struct PaymentDetailsBase {
displayItems : Array[PaymentItem]?
shippingOptions : Array[PaymentShippingOption]?
modifiers : Array[PaymentDetailsModifier]?
}
///|
/// Create a new PaymentDetailsBase with default values
pub fn PaymentDetailsBase::default() -> PaymentDetailsBase {
PaymentDetailsBase::{
displayItems: None,
shippingOptions: None,
modifiers: None,
}
}
///|
extern "js" fn PaymentDetailsBase::to_js_ffi(
self : PaymentDetailsBase,
) -> JsValue =
#| (self) => ({
#| displayItems: ((() => { const v = self.displayItems; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })()),
#| shippingOptions: ((() => { const v = self.shippingOptions; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })()),
#| modifiers: ((() => { const v = self.modifiers; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })())
#| })
///|
/// Convert to JsValue
pub fn PaymentDetailsBase::to_js(self : PaymentDetailsBase) -> JsValue {
PaymentDetailsBase::to_js_ffi(self)
}
///|
extern "js" fn PaymentDetailsBase::from_js_ffi(
value : JsValue,
) -> PaymentDetailsBase =
#| (v) => ({
#| displayItems: (v.displayItems === undefined ? { $tag: 0 } : { $tag: 1, _0: v.displayItems }),
#| shippingOptions: (v.shippingOptions === undefined ? { $tag: 0 } : { $tag: 1, _0: v.shippingOptions }),
#| modifiers: (v.modifiers === undefined ? { $tag: 0 } : { $tag: 1, _0: v.modifiers })
#| })
///|
/// Convert from JsValue
pub fn PaymentDetailsBase::from_js(value : JsValue) -> PaymentDetailsBase {
PaymentDetailsBase::from_js_ffi(value)
}
///|
/// PaymentDetailsInit dictionary
pub(all) struct PaymentDetailsInit {
displayItems : Array[PaymentItem]?
shippingOptions : Array[PaymentShippingOption]?
modifiers : Array[PaymentDetailsModifier]?
id : String?
total : PaymentItem
}
///|
/// Create a new PaymentDetailsInit
pub fn PaymentDetailsInit::new(total~ : PaymentItem) -> PaymentDetailsInit {
PaymentDetailsInit::{
displayItems: None,
shippingOptions: None,
modifiers: None,
id: None,
total,
}
}
///|
extern "js" fn PaymentDetailsInit::to_js_ffi(
self : PaymentDetailsInit,
) -> JsValue =
#| (self) => ({
#| displayItems: ((() => { const v = self.displayItems; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })()),
#| shippingOptions: ((() => { const v = self.shippingOptions; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })()),
#| modifiers: ((() => { const v = self.modifiers; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })()),
#| id: self.id,
#| total: self.total
#| })
///|
/// Convert to JsValue
pub fn PaymentDetailsInit::to_js(self : PaymentDetailsInit) -> JsValue {
PaymentDetailsInit::to_js_ffi(self)
}
///|
extern "js" fn PaymentDetailsInit::from_js_ffi(
value : JsValue,
) -> PaymentDetailsInit =
#| (v) => ({
#| displayItems: (v.displayItems === undefined ? { $tag: 0 } : { $tag: 1, _0: v.displayItems }),
#| shippingOptions: (v.shippingOptions === undefined ? { $tag: 0 } : { $tag: 1, _0: v.shippingOptions }),
#| modifiers: (v.modifiers === undefined ? { $tag: 0 } : { $tag: 1, _0: v.modifiers }),
#| id: v.id,
#| total: v.total
#| })
///|
/// Convert from JsValue
pub fn PaymentDetailsInit::from_js(value : JsValue) -> PaymentDetailsInit {
PaymentDetailsInit::from_js_ffi(value)
}
///|
/// PaymentDetailsUpdate dictionary
pub(all) struct PaymentDetailsUpdate {
displayItems : Array[PaymentItem]?
shippingOptions : Array[PaymentShippingOption]?
modifiers : Array[PaymentDetailsModifier]?
error : String?
total : PaymentItem?
shippingAddressErrors : AddressErrors?
payerErrors : PayerErrors?
paymentMethodErrors : JsValue?
}
///|
/// Create a new PaymentDetailsUpdate with default values
pub fn PaymentDetailsUpdate::default() -> PaymentDetailsUpdate {
PaymentDetailsUpdate::{
displayItems: None,
shippingOptions: None,
modifiers: None,
error: None,
total: None,
shippingAddressErrors: None,
payerErrors: None,
paymentMethodErrors: None,
}
}
///|
extern "js" fn PaymentDetailsUpdate::to_js_ffi(
self : PaymentDetailsUpdate,
) -> JsValue =
#| (self) => ({
#| displayItems: ((() => { const v = self.displayItems; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })()),
#| shippingOptions: ((() => { const v = self.shippingOptions; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })()),
#| modifiers: ((() => { const v = self.modifiers; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })()),
#| error: self.error,
#| total: ((() => { const v = self.total; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })()),
#| shippingAddressErrors: ((() => { const v = self.shippingAddressErrors; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })()),
#| payerErrors: ((() => { const v = self.payerErrors; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })()),
#| paymentMethodErrors: ((() => { const v = self.paymentMethodErrors; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })())
#| })
///|
/// Convert to JsValue
pub fn PaymentDetailsUpdate::to_js(self : PaymentDetailsUpdate) -> JsValue {
PaymentDetailsUpdate::to_js_ffi(self)
}
///|
extern "js" fn PaymentDetailsUpdate::from_js_ffi(
value : JsValue,
) -> PaymentDetailsUpdate =
#| (v) => ({
#| displayItems: (v.displayItems === undefined ? { $tag: 0 } : { $tag: 1, _0: v.displayItems }),
#| shippingOptions: (v.shippingOptions === undefined ? { $tag: 0 } : { $tag: 1, _0: v.shippingOptions }),
#| modifiers: (v.modifiers === undefined ? { $tag: 0 } : { $tag: 1, _0: v.modifiers }),
#| error: v.error,
#| total: (v.total === undefined ? { $tag: 0 } : { $tag: 1, _0: v.total }),
#| shippingAddressErrors: (v.shippingAddressErrors === undefined ? { $tag: 0 } : { $tag: 1, _0: v.shippingAddressErrors }),
#| payerErrors: (v.payerErrors === undefined ? { $tag: 0 } : { $tag: 1, _0: v.payerErrors }),
#| paymentMethodErrors: (v.paymentMethodErrors === undefined ? { $tag: 0 } : { $tag: 1, _0: v.paymentMethodErrors })
#| })
///|
/// Convert from JsValue
pub fn PaymentDetailsUpdate::from_js(value : JsValue) -> PaymentDetailsUpdate {
PaymentDetailsUpdate::from_js_ffi(value)
}
///|
/// PaymentDetailsModifier dictionary
pub(all) struct PaymentDetailsModifier {
supportedMethods : String
total : PaymentItem?
additionalDisplayItems : Array[PaymentItem]?
data : JsValue?
}
///|
/// Create a new PaymentDetailsModifier with default values
pub fn PaymentDetailsModifier::default() -> PaymentDetailsModifier {
PaymentDetailsModifier::{
supportedMethods: "",
total: None,
additionalDisplayItems: None,
data: None,
}
}
///|
extern "js" fn PaymentDetailsModifier::to_js_ffi(
self : PaymentDetailsModifier,
) -> JsValue =
#| (self) => ({
#| supportedMethods: self.supportedMethods,
#| total: ((() => { const v = self.total; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })()),
#| additionalDisplayItems: ((() => { const v = self.additionalDisplayItems; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })()),
#| data: ((() => { const v = self.data; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })())
#| })
///|
/// Convert to JsValue
pub fn PaymentDetailsModifier::to_js(self : PaymentDetailsModifier) -> JsValue {
PaymentDetailsModifier::to_js_ffi(self)
}
///|
extern "js" fn PaymentDetailsModifier::from_js_ffi(
value : JsValue,
) -> PaymentDetailsModifier =
#| (v) => ({
#| supportedMethods: v.supportedMethods,
#| total: (v.total === undefined ? { $tag: 0 } : { $tag: 1, _0: v.total }),
#| additionalDisplayItems: (v.additionalDisplayItems === undefined ? { $tag: 0 } : { $tag: 1, _0: v.additionalDisplayItems }),
#| data: (v.data === undefined ? { $tag: 0 } : { $tag: 1, _0: v.data })
#| })
///|
/// Convert from JsValue
pub fn PaymentDetailsModifier::from_js(
value : JsValue,
) -> PaymentDetailsModifier {
PaymentDetailsModifier::from_js_ffi(value)
}
///|
/// PaymentOptions dictionary
pub(all) struct PaymentOptions {
requestPayerName : Bool?
requestBillingAddress : Bool?
requestPayerEmail : Bool?
requestPayerPhone : Bool?
requestShipping : Bool?
shippingType : PaymentShippingType?
}
///|
/// Create a new PaymentOptions with default values
pub fn PaymentOptions::default() -> PaymentOptions {
PaymentOptions::{
requestPayerName: None,
requestBillingAddress: None,
requestPayerEmail: None,
requestPayerPhone: None,
requestShipping: None,
shippingType: None,
}
}
///|
extern "js" fn PaymentOptions::to_js_ffi(self : PaymentOptions) -> JsValue =
#| (self) => ({
#| requestPayerName: (self.requestPayerName === -1 ? undefined : self.requestPayerName),
#| requestBillingAddress: (self.requestBillingAddress === -1 ? undefined : self.requestBillingAddress),
#| requestPayerEmail: (self.requestPayerEmail === -1 ? undefined : self.requestPayerEmail),
#| requestPayerPhone: (self.requestPayerPhone === -1 ? undefined : self.requestPayerPhone),
#| requestShipping: (self.requestShipping === -1 ? undefined : self.requestShipping),
#| shippingType: ((() => { const v = self.shippingType; if (v === undefined) return undefined; return ['shipping', 'delivery', 'pickup'][v]; })())
#| })
///|
/// Convert to JsValue
pub fn PaymentOptions::to_js(self : PaymentOptions) -> JsValue {
PaymentOptions::to_js_ffi(self)
}
///|
extern "js" fn PaymentOptions::from_js_ffi(value : JsValue) -> PaymentOptions =
#| (v) => ({
#| requestPayerName: (v.requestPayerName === undefined ? -1 : v.requestPayerName),
#| requestBillingAddress: (v.requestBillingAddress === undefined ? -1 : v.requestBillingAddress),
#| requestPayerEmail: (v.requestPayerEmail === undefined ? -1 : v.requestPayerEmail),
#| requestPayerPhone: (v.requestPayerPhone === undefined ? -1 : v.requestPayerPhone),
#| requestShipping: (v.requestShipping === undefined ? -1 : v.requestShipping),
#| shippingType: (v.shippingType === undefined ? undefined : ['shipping', 'delivery', 'pickup'].indexOf(v.shippingType))
#| })
///|
/// Convert from JsValue
pub fn PaymentOptions::from_js(value : JsValue) -> PaymentOptions {
PaymentOptions::from_js_ffi(value)
}
///|
/// PaymentItem dictionary
pub(all) struct PaymentItem {
label : String
amount : PaymentCurrencyAmount
pending : Bool?
}
///|
/// Create a new PaymentItem
pub fn PaymentItem::new(amount~ : PaymentCurrencyAmount) -> PaymentItem {
PaymentItem::{ label: "", amount, pending: None }
}
///|
extern "js" fn PaymentItem::to_js_ffi(self : PaymentItem) -> JsValue =
#| (self) => ({
#| label: self.label,
#| amount: self.amount,
#| pending: (self.pending === -1 ? undefined : self.pending)
#| })
///|
/// Convert to JsValue
pub fn PaymentItem::to_js(self : PaymentItem) -> JsValue {
PaymentItem::to_js_ffi(self)
}
///|
extern "js" fn PaymentItem::from_js_ffi(value : JsValue) -> PaymentItem =
#| (v) => ({
#| label: v.label,
#| amount: v.amount,
#| pending: (v.pending === undefined ? -1 : v.pending)
#| })
///|
/// Convert from JsValue
pub fn PaymentItem::from_js(value : JsValue) -> PaymentItem {
PaymentItem::from_js_ffi(value)
}
///|
/// PaymentCompleteDetails dictionary
pub(all) struct PaymentCompleteDetails {
data : Nullable[JsValue]
}
///|
/// Create a new PaymentCompleteDetails with default values
pub fn PaymentCompleteDetails::default() -> PaymentCompleteDetails {
PaymentCompleteDetails::{ data: Nullable::Undefined }
}
///|
extern "js" fn PaymentCompleteDetails::to_js_ffi(
self : PaymentCompleteDetails,
) -> JsValue =
#| (self) => ({
#| data: ((() => { const v = self.data; if (v.$tag === 0) return undefined; if (v.$tag === 1) return null; return v._0; })())
#| })
///|
/// Convert to JsValue
pub fn PaymentCompleteDetails::to_js(self : PaymentCompleteDetails) -> JsValue {
PaymentCompleteDetails::to_js_ffi(self)
}
///|
extern "js" fn PaymentCompleteDetails::from_js_ffi(
value : JsValue,
) -> PaymentCompleteDetails =
#| (v) => ({
#| data: (v.data === undefined ? { $tag: 0 } : v.data === null ? { $tag: 1 } : { $tag: 2, _0: v.data })
#| })
///|
/// Convert from JsValue
pub fn PaymentCompleteDetails::from_js(
value : JsValue,
) -> PaymentCompleteDetails {
PaymentCompleteDetails::from_js_ffi(value)
}
///|
/// PaymentShippingOption dictionary
pub(all) struct PaymentShippingOption {
id : String
label : String
amount : PaymentCurrencyAmount
selected : Bool?
}
///|
/// Create a new PaymentShippingOption
pub fn PaymentShippingOption::new(
amount~ : PaymentCurrencyAmount,
) -> PaymentShippingOption {
PaymentShippingOption::{ id: "", label: "", amount, selected: None }
}
///|
extern "js" fn PaymentShippingOption::to_js_ffi(
self : PaymentShippingOption,
) -> JsValue =
#| (self) => ({
#| id: self.id,
#| label: self.label,
#| amount: self.amount,
#| selected: (self.selected === -1 ? undefined : self.selected)
#| })
///|
/// Convert to JsValue
pub fn PaymentShippingOption::to_js(self : PaymentShippingOption) -> JsValue {
PaymentShippingOption::to_js_ffi(self)
}
///|
extern "js" fn PaymentShippingOption::from_js_ffi(
value : JsValue,
) -> PaymentShippingOption =
#| (v) => ({
#| id: v.id,
#| label: v.label,
#| amount: v.amount,
#| selected: (v.selected === undefined ? -1 : v.selected)
#| })
///|
/// Convert from JsValue
pub fn PaymentShippingOption::from_js(value : JsValue) -> PaymentShippingOption {
PaymentShippingOption::from_js_ffi(value)
}
///|
/// PaymentValidationErrors dictionary
pub(all) struct PaymentValidationErrors {
payer : PayerErrors?
shippingAddress : AddressErrors?
error : String?
paymentMethod : JsValue?
}
///|
/// Create a new PaymentValidationErrors with default values
pub fn PaymentValidationErrors::default() -> PaymentValidationErrors {
PaymentValidationErrors::{
payer: None,
shippingAddress: None,
error: None,
paymentMethod: None,
}
}
///|
extern "js" fn PaymentValidationErrors::to_js_ffi(
self : PaymentValidationErrors,
) -> JsValue =
#| (self) => ({
#| payer: ((() => { const v = self.payer; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })()),
#| shippingAddress: ((() => { const v = self.shippingAddress; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })()),
#| error: self.error,
#| paymentMethod: ((() => { const v = self.paymentMethod; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })())
#| })
///|
/// Convert to JsValue
pub fn PaymentValidationErrors::to_js(
self : PaymentValidationErrors,
) -> JsValue {
PaymentValidationErrors::to_js_ffi(self)
}
///|
extern "js" fn PaymentValidationErrors::from_js_ffi(
value : JsValue,
) -> PaymentValidationErrors =
#| (v) => ({
#| payer: (v.payer === undefined ? { $tag: 0 } : { $tag: 1, _0: v.payer }),
#| shippingAddress: (v.shippingAddress === undefined ? { $tag: 0 } : { $tag: 1, _0: v.shippingAddress }),
#| error: v.error,
#| paymentMethod: (v.paymentMethod === undefined ? { $tag: 0 } : { $tag: 1, _0: v.paymentMethod })
#| })
///|
/// Convert from JsValue
pub fn PaymentValidationErrors::from_js(
value : JsValue,
) -> PaymentValidationErrors {
PaymentValidationErrors::from_js_ffi(value)
}
///|
/// PayerErrors dictionary
pub(all) struct PayerErrors {
email : String?
name : String?
phone : String?
}
///|
/// Create a new PayerErrors with default values
pub fn PayerErrors::default() -> PayerErrors {
PayerErrors::{ email: None, name: None, phone: None }
}
///|
extern "js" fn PayerErrors::to_js_ffi(self : PayerErrors) -> JsValue =
#| (self) => ({
#| email: self.email,
#| name: self.name,
#| phone: self.phone
#| })
///|
/// Convert to JsValue
pub fn PayerErrors::to_js(self : PayerErrors) -> JsValue {
PayerErrors::to_js_ffi(self)
}
///|
extern "js" fn PayerErrors::from_js_ffi(value : JsValue) -> PayerErrors =
#| (v) => ({
#| email: v.email,
#| name: v.name,
#| phone: v.phone
#| })
///|
/// Convert from JsValue
pub fn PayerErrors::from_js(value : JsValue) -> PayerErrors {
PayerErrors::from_js_ffi(value)
}
///|
/// AddressErrors dictionary
pub(all) struct AddressErrors {
addressLine : String?
city : String?
country : String?
dependentLocality : String?
organization : String?
phone : String?
postalCode : String?
recipient : String?
region : String?
sortingCode : String?
}
///|
/// Create a new AddressErrors with default values
pub fn AddressErrors::default() -> AddressErrors {
AddressErrors::{
addressLine: None,
city: None,
country: None,
dependentLocality: None,
organization: None,
phone: None,
postalCode: None,
recipient: None,
region: None,
sortingCode: None,
}
}
///|
extern "js" fn AddressErrors::to_js_ffi(self : AddressErrors) -> JsValue =
#| (self) => ({
#| addressLine: self.addressLine,
#| city: self.city,
#| country: self.country,
#| dependentLocality: self.dependentLocality,
#| organization: self.organization,
#| phone: self.phone,
#| postalCode: self.postalCode,
#| recipient: self.recipient,
#| region: self.region,
#| sortingCode: self.sortingCode
#| })
///|
/// Convert to JsValue
pub fn AddressErrors::to_js(self : AddressErrors) -> JsValue {
AddressErrors::to_js_ffi(self)
}
///|
extern "js" fn AddressErrors::from_js_ffi(value : JsValue) -> AddressErrors =
#| (v) => ({
#| addressLine: v.addressLine,
#| city: v.city,
#| country: v.country,
#| dependentLocality: v.dependentLocality,
#| organization: v.organization,
#| phone: v.phone,
#| postalCode: v.postalCode,
#| recipient: v.recipient,
#| region: v.region,
#| sortingCode: v.sortingCode
#| })
///|
/// Convert from JsValue
pub fn AddressErrors::from_js(value : JsValue) -> AddressErrors {
AddressErrors::from_js_ffi(value)
}
///|
/// PaymentMethodChangeEventInit dictionary
pub(all) struct PaymentMethodChangeEventInit {
methodName : String?
methodDetails : Nullable[JsValue]
}
///|
/// Create a new PaymentMethodChangeEventInit with default values
pub fn PaymentMethodChangeEventInit::default() -> PaymentMethodChangeEventInit {
PaymentMethodChangeEventInit::{
methodName: None,
methodDetails: Nullable::Undefined,
}
}
///|
extern "js" fn PaymentMethodChangeEventInit::to_js_ffi(
self : PaymentMethodChangeEventInit,
) -> JsValue =
#| (self) => ({
#| methodName: self.methodName,
#| methodDetails: ((() => { const v = self.methodDetails; if (v.$tag === 0) return undefined; if (v.$tag === 1) return null; return v._0; })())
#| })
///|
/// Convert to JsValue
pub fn PaymentMethodChangeEventInit::to_js(
self : PaymentMethodChangeEventInit,
) -> JsValue {
PaymentMethodChangeEventInit::to_js_ffi(self)
}
///|
extern "js" fn PaymentMethodChangeEventInit::from_js_ffi(
value : JsValue,
) -> PaymentMethodChangeEventInit =
#| (v) => ({
#| methodName: v.methodName,
#| methodDetails: (v.methodDetails === undefined ? { $tag: 0 } : v.methodDetails === null ? { $tag: 1 } : { $tag: 2, _0: v.methodDetails })
#| })
///|
/// Convert from JsValue
pub fn PaymentMethodChangeEventInit::from_js(
value : JsValue,
) -> PaymentMethodChangeEventInit {
PaymentMethodChangeEventInit::from_js_ffi(value)
}
///|
/// PaymentRequestUpdateEventInit dictionary
pub(all) struct PaymentRequestUpdateEventInit {}
///|
/// Create a new PaymentRequestUpdateEventInit with default values
pub fn PaymentRequestUpdateEventInit::default() -> PaymentRequestUpdateEventInit {
PaymentRequestUpdateEventInit::{ }
}
///|
extern "js" fn PaymentRequestUpdateEventInit::to_js_ffi(
self : PaymentRequestUpdateEventInit,
) -> JsValue =
#| (self) => ({
#| })
///|
/// Convert to JsValue
pub fn PaymentRequestUpdateEventInit::to_js(
self : PaymentRequestUpdateEventInit,
) -> JsValue {
PaymentRequestUpdateEventInit::to_js_ffi(self)
}
///|
extern "js" fn PaymentRequestUpdateEventInit::from_js_ffi(
value : JsValue,
) -> PaymentRequestUpdateEventInit =
#| (v) => ({
#| })
///|
/// Convert from JsValue
pub fn PaymentRequestUpdateEventInit::from_js(
value : JsValue,
) -> PaymentRequestUpdateEventInit {
PaymentRequestUpdateEventInit::from_js_ffi(value)
}
///|
/// PaymentRequest interface
pub type PaymentRequest
///|
pub extern "js" fn PaymentRequest::to_js_value(
self : PaymentRequest,
) -> JsValue =
#| (self) => self
///|
/// Cast JsValue to PaymentRequest (unchecked)
pub extern "js" fn PaymentRequest::from_js_value(v : JsValue) -> PaymentRequest =
#| (v) => v
///|
/// Safely cast JsValue to PaymentRequest (checked with instanceof)
pub extern "js" fn PaymentRequest::from_js_value_opt(
v : JsValue,
) -> PaymentRequest? =
#| (v) => (v instanceof PaymentRequest) ? { $tag: 1, _0: v } : { $tag: 0 }
///|
/// Safely cast JsValue to PaymentRequest (checked with instanceof)
pub extern "js" fn JsValue::as_payment_request(
self : JsValue,
) -> PaymentRequest? =
#| (self) => (self instanceof PaymentRequest) ? { $tag: 1, _0: self } : { $tag: 0 }
///|
/// Cast JsValue to PaymentRequest (unchecked)
pub extern "js" fn JsValue::to_payment_request(
self : JsValue,
) -> PaymentRequest =
#| (self) => self
///|
pub extern "js" fn PaymentRequest::to_event_target(
self : PaymentRequest,
) -> EventTarget =
#| (self) => self
///|
/// Error type for throwing methods
pub(all) enum PaymentRequestConstructorError {
SecurityError(JsError)
OtherError(JsError)
} derive(Show)
///|
/// Error type for throwing methods
pub(all) enum PaymentRequestShowError {
AbortError(JsError)
SecurityError(JsError)
InvalidStateError(JsError)
NotSupportedError(JsError)
OtherError(JsError)
} derive(Show)
///|
extern "js" fn PaymentRequest::new_ffi(
method_data : Array[PaymentMethodData],
details : JsValue,
) -> Result[PaymentRequest, PaymentRequestConstructorError] =
#| (method_data, details) => (() => { try { return { $tag: 1, _0: new PaymentRequest(method_data, details) }; } catch(e) { return { $tag: 0, _0: (() => { const n = (e && e.name) || ''; if (n === 'SecurityError') return { $tag: 0, _0: e }; return { $tag: 1, _0: e }; })() }; } })()
///|
pub fn PaymentRequest::new(
method_data : Array[PaymentMethodData],
details : PaymentDetailsInit,
) -> Result[PaymentRequest, PaymentRequestConstructorError] {
PaymentRequest::new_ffi(method_data, details.to_js())
}
///|
extern "js" fn PaymentRequest::new_with_options_ffi(
method_data : Array[PaymentMethodData],
details : JsValue,
options : JsValue,
) -> Result[PaymentRequest, PaymentRequestConstructorError] =
#| (method_data, details, options) => (() => { try { return { $tag: 1, _0: new PaymentRequest(method_data, details, options) }; } catch(e) { return { $tag: 0, _0: (() => { const n = (e && e.name) || ''; if (n === 'SecurityError') return { $tag: 0, _0: e }; return { $tag: 1, _0: e }; })() }; } })()
///|
pub fn PaymentRequest::new_with_options(
method_data : Array[PaymentMethodData],
details : PaymentDetailsInit,
options : PaymentOptions,
) -> Result[PaymentRequest, PaymentRequestConstructorError] {
PaymentRequest::new_with_options_ffi(
method_data,
details.to_js(),
options.to_js(),
)
}
///|
pub extern "js" fn PaymentRequest::show(
self : PaymentRequest,
) -> Promise[Result[PaymentResponse, PaymentRequestShowError]] =
#| (self) => self.show().then(r => ({ $tag: 1, _0: r })).catch(e => ({ $tag: 0, _0: (() => { const n = (e && e.name) || ''; if (n === 'AbortError') return { $tag: 0, _0: e }; if (n === 'SecurityError') return { $tag: 1, _0: e }; if (n === 'InvalidStateError') return { $tag: 2, _0: e }; if (n === 'NotSupportedError') return { $tag: 3, _0: e }; return { $tag: 4, _0: e }; })() }))
///|
pub extern "js" fn PaymentRequest::show_with_details_promise(
self : PaymentRequest,
details_promise : Promise[PaymentDetailsUpdate],
) -> Promise[Result[PaymentResponse, PaymentRequestShowError]] =
#| (self, details_promise) => self.show(details_promise).then(r => ({ $tag: 1, _0: r })).catch(e => ({ $tag: 0, _0: (() => { const n = (e && e.name) || ''; if (n === 'AbortError') return { $tag: 0, _0: e }; if (n === 'SecurityError') return { $tag: 1, _0: e }; if (n === 'InvalidStateError') return { $tag: 2, _0: e }; if (n === 'NotSupportedError') return { $tag: 3, _0: e }; return { $tag: 4, _0: e }; })() }))
///|
pub extern "js" fn PaymentRequest::abort(
self : PaymentRequest,
) -> Promise[Unit] =
#| (self) => self.abort()
///|
pub extern "js" fn PaymentRequest::can_make_payment(
self : PaymentRequest,
) -> Promise[Bool] =
#| (self) => self.canMakePayment()
///|
pub extern "js" fn PaymentRequest::get_id(self : PaymentRequest) -> String =
#| (self) => self.id
///|
pub extern "js" fn PaymentRequest::get_shipping_address(
self : PaymentRequest,
) -> ContactAddress? =
#| (self) => (() => { const v = self.shippingAddress; return v == null ? { $tag: 0 } : { $tag: 1, _0: v }; })()
///|
pub extern "js" fn PaymentRequest::get_shipping_option(
self : PaymentRequest,
) -> String? =
#| (self) => (self.shippingOption) ?? undefined
///|
pub extern "js" fn PaymentRequest::get_shipping_type(
self : PaymentRequest,
) -> PaymentShippingType? =
#| (self) => (() => { const v = self.shippingType; return v == null ? undefined : ['shipping', 'delivery', 'pickup'].indexOf(v); })()
///|
pub extern "js" fn PaymentRequest::set_onshippingaddresschange(
self : PaymentRequest,
handler : (PaymentRequestUpdateEvent) -> Unit,
) -> Unit =
#| (self, handler) => { self.onshippingaddresschange = (e) => handler(e) }
///|
pub extern "js" fn PaymentRequest::clear_onshippingaddresschange(
self : PaymentRequest,
) -> Unit =
#| (self) => { self.onshippingaddresschange = null }
///|
pub extern "js" fn PaymentRequest::set_onshippingoptionchange(
self : PaymentRequest,
handler : (PaymentRequestUpdateEvent) -> Unit,
) -> Unit =
#| (self, handler) => { self.onshippingoptionchange = (e) => handler(e) }
///|
pub extern "js" fn PaymentRequest::clear_onshippingoptionchange(
self : PaymentRequest,
) -> Unit =
#| (self) => { self.onshippingoptionchange = null }
///|
pub extern "js" fn PaymentRequest::set_onpaymentmethodchange(
self : PaymentRequest,
handler : (PaymentMethodChangeEvent) -> Unit,
) -> Unit =
#| (self, handler) => { self.onpaymentmethodchange = (e) => handler(e) }
///|
pub extern "js" fn PaymentRequest::clear_onpaymentmethodchange(
self : PaymentRequest,
) -> Unit =
#| (self) => { self.onpaymentmethodchange = null }
///|
pub extern "js" fn PaymentRequest::secure_payment_confirmation_availability() -> Promise[
SecurePaymentConfirmationAvailability,
] =
#| () => PaymentRequest.securePaymentConfirmationAvailability()
///|
/// PaymentResponse interface
pub type PaymentResponse
///|
pub extern "js" fn PaymentResponse::to_js_value(
self : PaymentResponse,
) -> JsValue =
#| (self) => self
///|
/// Cast JsValue to PaymentResponse (unchecked)
pub extern "js" fn PaymentResponse::from_js_value(
v : JsValue,
) -> PaymentResponse =
#| (v) => v
///|
/// Safely cast JsValue to PaymentResponse (checked with instanceof)
pub extern "js" fn PaymentResponse::from_js_value_opt(
v : JsValue,
) -> PaymentResponse? =
#| (v) => (v instanceof PaymentResponse) ? { $tag: 1, _0: v } : { $tag: 0 }
///|
/// Safely cast JsValue to PaymentResponse (checked with instanceof)
pub extern "js" fn JsValue::as_payment_response(
self : JsValue,
) -> PaymentResponse? =
#| (self) => (self instanceof PaymentResponse) ? { $tag: 1, _0: self } : { $tag: 0 }
///|
/// Cast JsValue to PaymentResponse (unchecked)
pub extern "js" fn JsValue::to_payment_response(
self : JsValue,
) -> PaymentResponse =
#| (self) => self
///|
pub extern "js" fn PaymentResponse::to_event_target(
self : PaymentResponse,
) -> EventTarget =
#| (self) => self
///|
/// Error type for throwing methods
pub(all) enum PaymentResponseCompleteError {
AbortError(JsError)
InvalidStateError(JsError)
OtherError(JsError)
} derive(Show)
///|
pub extern "js" fn PaymentResponse::to_json(self : PaymentResponse) -> JsValue =
#| (self) => self.toJSON()
///|
pub extern "js" fn PaymentResponse::get_request_id(
self : PaymentResponse,
) -> String =
#| (self) => self.requestId
///|
pub extern "js" fn PaymentResponse::get_method_name(
self : PaymentResponse,
) -> String =
#| (self) => self.methodName
///|
pub extern "js" fn PaymentResponse::get_details(
self : PaymentResponse,
) -> JsValue =
#| (self) => self.details
///|
pub extern "js" fn PaymentResponse::get_shipping_address(
self : PaymentResponse,
) -> ContactAddress? =
#| (self) => (() => { const v = self.shippingAddress; return v == null ? { $tag: 0 } : { $tag: 1, _0: v }; })()
///|
pub extern "js" fn PaymentResponse::get_shipping_option(
self : PaymentResponse,
) -> String? =
#| (self) => (self.shippingOption) ?? undefined
///|
pub extern "js" fn PaymentResponse::get_payer_name(
self : PaymentResponse,
) -> String? =
#| (self) => (self.payerName) ?? undefined
///|
pub extern "js" fn PaymentResponse::get_payer_email(
self : PaymentResponse,
) -> String? =
#| (self) => (self.payerEmail) ?? undefined
///|
pub extern "js" fn PaymentResponse::get_payer_phone(
self : PaymentResponse,
) -> String? =
#| (self) => (self.payerPhone) ?? undefined
///|
pub extern "js" fn PaymentResponse::complete(
self : PaymentResponse,
) -> Promise[Result[Unit, PaymentResponseCompleteError]] =
#| (self) => self.complete().then(r => ({ $tag: 1, _0: undefined })).catch(e => ({ $tag: 0, _0: (() => { const n = (e && e.name) || ''; if (n === 'AbortError') return { $tag: 0, _0: e }; if (n === 'InvalidStateError') return { $tag: 1, _0: e }; return { $tag: 2, _0: e }; })() }))
///|
extern "js" fn PaymentResponse::complete_with_details_ffi(
self : PaymentResponse,
result : PaymentComplete,
details : JsValue,
) -> Promise[Result[Unit, PaymentResponseCompleteError]] =
#| (self, result, details) => self.complete(['fail', 'success', 'unknown'][result], details).then(r => ({ $tag: 1, _0: undefined })).catch(e => ({ $tag: 0, _0: (() => { const n = (e && e.name) || ''; if (n === 'AbortError') return { $tag: 0, _0: e }; if (n === 'InvalidStateError') return { $tag: 1, _0: e }; return { $tag: 2, _0: e }; })() }))
///|
pub fn PaymentResponse::complete_with_details(
self : PaymentResponse,
result : PaymentComplete,
details : PaymentCompleteDetails,
) -> Promise[Result[Unit, PaymentResponseCompleteError]] {
PaymentResponse::complete_with_details_ffi(self, result, details.to_js())
}
///|
pub extern "js" fn PaymentResponse::retry(
self : PaymentResponse,
) -> Promise[Unit] =
#| (self) => self.retry()
///|
extern "js" fn PaymentResponse::retry_with_error_fields_ffi(
self : PaymentResponse,
error_fields : JsValue,
) -> Promise[Unit] =
#| (self, error_fields) => self.retry(error_fields)
///|
pub fn PaymentResponse::retry_with_error_fields(
self : PaymentResponse,
error_fields : PaymentValidationErrors,
) -> Promise[Unit] {
PaymentResponse::retry_with_error_fields_ffi(self, error_fields.to_js())
}
///|
pub extern "js" fn PaymentResponse::set_onpayerdetailchange(
self : PaymentResponse,
handler : (PaymentRequestUpdateEvent) -> Unit,
) -> Unit =
#| (self, handler) => { self.onpayerdetailchange = (e) => handler(e) }
///|
pub extern "js" fn PaymentResponse::clear_onpayerdetailchange(
self : PaymentResponse,
) -> Unit =
#| (self) => { self.onpayerdetailchange = null }
///|
/// PaymentMethodChangeEvent interface
pub type PaymentMethodChangeEvent
///|
pub extern "js" fn PaymentMethodChangeEvent::to_js_value(
self : PaymentMethodChangeEvent,
) -> JsValue =
#| (self) => self
///|
/// Cast JsValue to PaymentMethodChangeEvent (unchecked)
pub extern "js" fn PaymentMethodChangeEvent::from_js_value(
v : JsValue,
) -> PaymentMethodChangeEvent =
#| (v) => v
///|
/// Safely cast JsValue to PaymentMethodChangeEvent (checked with instanceof)
pub extern "js" fn PaymentMethodChangeEvent::from_js_value_opt(
v : JsValue,
) -> PaymentMethodChangeEvent? =
#| (v) => (v instanceof PaymentMethodChangeEvent) ? { $tag: 1, _0: v } : { $tag: 0 }
///|
/// Safely cast JsValue to PaymentMethodChangeEvent (checked with instanceof)
pub extern "js" fn JsValue::as_payment_method_change_event(
self : JsValue,
) -> PaymentMethodChangeEvent? =
#| (self) => (self instanceof PaymentMethodChangeEvent) ? { $tag: 1, _0: self } : { $tag: 0 }
///|
/// Cast JsValue to PaymentMethodChangeEvent (unchecked)
pub extern "js" fn JsValue::to_payment_method_change_event(
self : JsValue,
) -> PaymentMethodChangeEvent =
#| (self) => self
///|
pub extern "js" fn PaymentMethodChangeEvent::to_payment_request_update_event(
self : PaymentMethodChangeEvent,
) -> PaymentRequestUpdateEvent =
#| (self) => self
///|
pub extern "js" fn PaymentMethodChangeEvent::to_event(
self : PaymentMethodChangeEvent,
) -> Event =
#| (self) => self
///|
pub extern "js" fn PaymentMethodChangeEvent::new(
type_ : String,
) -> PaymentMethodChangeEvent =
#| (type_) => new PaymentMethodChangeEvent(type_)
///|
extern "js" fn PaymentMethodChangeEvent::new_with_event_init_dict_ffi(
type_ : String,
event_init_dict : JsValue,
) -> PaymentMethodChangeEvent =
#| (type_, event_init_dict) => new PaymentMethodChangeEvent(type_, event_init_dict)
///|
pub fn PaymentMethodChangeEvent::new_with_event_init_dict(
type_ : String,
event_init_dict : PaymentMethodChangeEventInit,
) -> PaymentMethodChangeEvent {
PaymentMethodChangeEvent::new_with_event_init_dict_ffi(
type_,
event_init_dict.to_js(),
)
}
///|
pub extern "js" fn PaymentMethodChangeEvent::get_method_name(
self : PaymentMethodChangeEvent,
) -> String =
#| (self) => self.methodName
///|
pub extern "js" fn PaymentMethodChangeEvent::get_method_details(
self : PaymentMethodChangeEvent,
) -> JsValue? =
#| (self) => (() => { const v = self.methodDetails; return v == null ? { $tag: 0 } : { $tag: 1, _0: v }; })()
///|
/// PaymentRequestUpdateEvent interface
pub type PaymentRequestUpdateEvent
///|
pub extern "js" fn PaymentRequestUpdateEvent::to_js_value(
self : PaymentRequestUpdateEvent,
) -> JsValue =
#| (self) => self
///|
/// Cast JsValue to PaymentRequestUpdateEvent (unchecked)
pub extern "js" fn PaymentRequestUpdateEvent::from_js_value(
v : JsValue,
) -> PaymentRequestUpdateEvent =
#| (v) => v
///|
/// Safely cast JsValue to PaymentRequestUpdateEvent (checked with instanceof)
pub extern "js" fn PaymentRequestUpdateEvent::from_js_value_opt(
v : JsValue,
) -> PaymentRequestUpdateEvent? =
#| (v) => (v instanceof PaymentRequestUpdateEvent) ? { $tag: 1, _0: v } : { $tag: 0 }
///|
/// Safely cast JsValue to PaymentRequestUpdateEvent (checked with instanceof)
pub extern "js" fn JsValue::as_payment_request_update_event(
self : JsValue,
) -> PaymentRequestUpdateEvent? =
#| (self) => (self instanceof PaymentRequestUpdateEvent) ? { $tag: 1, _0: self } : { $tag: 0 }
///|
/// Cast JsValue to PaymentRequestUpdateEvent (unchecked)
pub extern "js" fn JsValue::to_payment_request_update_event(
self : JsValue,
) -> PaymentRequestUpdateEvent =
#| (self) => self
///|
pub extern "js" fn PaymentRequestUpdateEvent::to_event(
self : PaymentRequestUpdateEvent,
) -> Event =
#| (self) => self
///|
pub extern "js" fn PaymentRequestUpdateEvent::as_payment_method_change_event(
self : PaymentRequestUpdateEvent,
) -> PaymentMethodChangeEvent? =
#| (self) => (self instanceof PaymentMethodChangeEvent) ? { $tag: 1, _0: self } : { $tag: 0 }
///|
pub extern "js" fn PaymentRequestUpdateEvent::new(
type_ : String,
) -> PaymentRequestUpdateEvent =
#| (type_) => new PaymentRequestUpdateEvent(type_)
///|
extern "js" fn PaymentRequestUpdateEvent::new_with_event_init_dict_ffi(
type_ : String,
event_init_dict : JsValue,
) -> PaymentRequestUpdateEvent =
#| (type_, event_init_dict) => new PaymentRequestUpdateEvent(type_, event_init_dict)
///|
pub fn PaymentRequestUpdateEvent::new_with_event_init_dict(
type_ : String,
event_init_dict : PaymentRequestUpdateEventInit,
) -> PaymentRequestUpdateEvent {
PaymentRequestUpdateEvent::new_with_event_init_dict_ffi(
type_,
event_init_dict.to_js(),
)
}
///|
pub extern "js" fn PaymentRequestUpdateEvent::update_with(
self : PaymentRequestUpdateEvent,
details_promise : Promise[PaymentDetailsUpdate],
) -> Unit =
#| (self, details_promise) => self.updateWith(details_promise)