Resolves issue #69. Thanks to @hmuronaka for pull request.
Resolves issue #70. Thanks to @hmuronaka for pull request.
Fixed error in identity method's response handler. (Resolves issue #60.)
Change access to ConnectedApp.revoke
method from internal
to public
.
Replace '+' with '%2B' in URLRequest.queryParameters. (Resolves issue #58.) Thanks to @hmuronaka for pull request.
- Clear token from secure storage after revocation (issue #57).
- Fixed error in revocation endpoint URL. (Thanks to @daichi1021 for pull request.)
Fixed bug in Salesorce.apex
and Salesforce.custom
methods so that callers can now set the HTTP body data.
This release contains breaking changes. See README and documentation. Highlights of changes and improvements:
- Incorporated Swift 4's new
Codable
protocol (i.e.Decodable
andEncodable
throughout. This simplifies both Swiftly Salesforce's code and the creation of your own models that represent Salesforce objects. - Simpler and faster to incorporate Swiftly Salesforce in your apps.
- New
Record
type to represent generic Salesforce object records, replacesSObject
from version 5.0.0. If you prefer, you could create your own model objects and use those instead, via the magic of Swift generics and the newCodable
protocol. See the README and example app for samples. - New
Organization
type holds information about the Salesforce "org." Callsalesforce.org( )
to retrieve org information. - References to
redirectURL
replaced withcallbackURL
to be consistent with Salesforce Connected App terminology. - More and better test coverage.
This release contains breaking changes. See README and documentation. Highlights of changes and improvements:
- Incorporated Swift 4's new
Decodable
protocol throughout. This simplifies both Swiftly Salesforce's code and the creation of your own models that represent Salesforce objects. - New
SObject
type to represent a generic Salesforce objects. If you prefer, you can create your own model objects and use those instead, via the magic of Swift generics and the newDecodable
protocol. See the README and example app for samples. - Revamped Error types.
- More and better test coverage.
- Removed Alamofire dependency
- Increased test coverage
- Added Keychain wrapper class
- Removed Locksmith dependency
Support Swift 4
Changed access level of Address
members to explicitly public
(were implicitly internal
)
Fixed misspelling in enum Address.GeocodeAccuracy
(issue #44)
Documentation updates
This release contains breaking changes. See README and documentation. Highlights of changes and improvements:
- Removed the
salesforce
singleton (you could still instantiate your own globalsalesforce
variable, if you like; see example). Salesforce
now instantiated with newConnectedApp
class. See README.- Supports switching among multiple users and securely storing their access & refresh tokens.
Salesforce.apexREST
method renamedSalesforce.apex
, and now returnsPromise<Data>
(instead ofPromise<Any>
).- New
Salesforce.fetchImage
methods to get relatively-small images, such as user thumbnails or Contact photos (issue #33 and issue #35). - New
Address
struct to hold standard, compound address fields, including longitude and latitude (issue #38 and issue #39).
Updated the default Salesforce API version to 40.0 (Summer '17)
Fixes issue #29.
- Updated the default Salesforce API version to 39.0 (Spring '17).
- Added method
Salesforce.describeAll()
to retrieve metadata about all objects defined in the org (issue #28). - Bug fix;
ObjectDescription.keyPrefix
now returns an empty string if the retrieved object metadata value is null. (In the next major releasekeyPrefix
will become an optional string.) (issue #36) ObjectDescription.fields
now returns an empty dictionary if the retrieved metadata has no field-level information, as is the case withSalesforce.describeAll()
. (In the next major release,fields
will become an optional dictionary.)- Bug fix;
Salesforce.limits()
broke with the Salesforce Spring '17 release, which changed the JSON payload returned by the REST API'slimits
resource (issue #37). Model.UserInfo
andModel.QueryResult
now have public initializers (issue #34).
Support for registering with Salesforce notification services. (Thanks to @quintonwall for pull request.)
Support Carthage dependency manager
Updated README
- Added overloaded
Salesforce.retrieve
method to retrieve multiple records in parallel - Added overloaded
Salesforce.query
method to execute multiple SOQL queries in parallel - Added overloaded
Salesforce.describe
method to retrieve metadata about multiple Salesforce objects in parallel - Additional documentation, tests and test coverage
- Added Salesforce.describe( ) method, and corresponding model structs (ObjectDescription, FieldDescription, PicklistValue) for retrieving object metadata. (Closes issue #13.)
- Additional tests and test coverage
Fixed issue #15; removed unneeded id
parameter in Salesforce.insert( )
method
- Updated
LoginDelegate
to accommodate custom login view controllers and flows. Note: the default OAuth2 user-agent flow with the Salesforce-hosted webform is the recommended way to authenticate users; your app shouldn't handle their credentials. Adapted from @hmuronaka's pull request. - Deprecated
LoginDelegate
extension methodhandleRedirectURL(redirectURL: URL)
in favor ofhandleRedirectURL(url: URL)
.
Added file "OAuth2.plist" which is used for testing the framework. If you run the tests, edit the file and insert your own values for the Salesforce access token, refresh token, etc.
(This is a ‘breaking’ change that is not compatible with prior versions)
- Upgrade for Swift 3
- Lots of enhancements to make building native iOS apps on Salesforce even easier - see the README
- Support for custom login view controllers - thanks to @humoronaka. (Note: this feature will not be carried over into version 3.0.0, which is nearly complete as of Oct. 24, 2016, but will be incorporated into a subsequent release.)
- Updated code for Swift 2.3
- Updated Podfile for Xcode 8
- Updated README
- Updated PromiseKit dependency to version 3.2.1+
- Updated SalesforceAPI.DefaultVersion to 37.0
- Replaced deprecated selector string syntax with Swift #selector
- Fixed issue #1 (irrelevant comments)
- Incorporated PromiseKit for asynchronous interaction with Salesforce REST API and OAuth2 endpoints
- Updated SalesforceAPI.DefaultVersion to 36.0
- Added ApexRest to SalesforceAPI enum
- Simplified Alamofire extension
Updated README
Updated README
Updated example files
Initial release