Releases: skelpo/PayPal
v0.3.2
Padded Currency Values
Format money decimal values with trailing 0 characters, so there are as many fraction digits as the currency exponent number:
85.8 USD => 85.80
10 USD => 10.00
10 XXX => 10
This is because some endpoint returned validation errors if this padding wasn't there.
v0.3.1
Decoding Int and String for quantity Properties
The Order.Item.quantity and Payment.Item.quantity properties are documented as strings in the PayPal API documentation, but you actually get ints back when you create a payment or order. Because of this, we attempt to decode an int, and fall back to a string if we get a type mismatch decoding error.
v0.3.0
Failing Properties
The biggest change in this release is that properties themselves handle validations, instead of the parent type. You will notice that quite a few initializers don't accept the primitive types like String or Int, but instead something like Failable<Int, ...>. You can wrap the those value in .init(value) and everything should work again:
try Name(
prefix: .init("Mr."),
given: .init("Caleb"),
surname: .init("Kleveter"),
middle: .init("J"),
suffix: .init(nil),
full: .init("Caleb J Kleveter")
)Instead of setting the properties with the .set method like you used to:
try name.set(\.prefix <~ nil)`You can use plain old property setting:
try name.prefix <~ nilThe Environment.domain property is now public, so you can easily get the API domain for the endpoints you are using.
v0.2.0
No Environmental Variation
- Pass client ID and secret into
PayPalProviderinitializer for flexibility during app configuration, instead of requiring environment variables. - Remove all ID assignment from initializers.
- Made some types into sub-types, i.e. AgreementState => Agreement.State.
- Replaced
MoneyandAmountstructs with genericAmountTypestruct. - Created
Countrystruct which encodes/decodes using a single value container to handle country code validation. - Created a
Provinceenum that represents the states or provinces a country can have. - Extended
HTTPHeaderNamewith custom PayPal headers.
v0.1.0
You'll Pay. No, the Buyer Will.
A mostly incomplete and partially broken interface for PayPal's REST API, but hey, that's what pre-releases are for, right?
The only thing that we know works are basic payments. You can read about how to implement that in the README.
Be sure to leave feed back and suggestions for the next releases!