All Versions
17
Latest Version
Avg Release Cycle
59 days
Latest Release
394 days ago

Changelog History
Page 2

  • v2.1.0 Changes

    October 03, 2019

    ๐Ÿš€ This release is entirely for updating the pre-compiled Carthage framework to one having been compiled using the Swift 5.1 compiler.

  • v2.0.4 Changes

    September 13, 2019

    ๐Ÿš€ In this release, we've:

    • (#36 / #37 / 1fbca8e) Made properties within ErrorRecoveryOption public, so they can be accessed outside of the ThunderRequest module.
  • v2.0.3 Changes

    August 01, 2019

    ๐Ÿš€ In this release, we've:

    • ๐Ÿš€ (1d97bb6) Changed some access modifiers within Request and RequestController to allow for mocking beyond the framework. In a future release, these will be removed in favour of a protocol-based system instead.
  • v2.0.2 Changes

    July 24, 2019

    ๐Ÿš€ In this release, we've fixed:

    • (#34) A bug where an extraneous ? was appended to requests even when nil queryItems were provided
  • v2.0.1 Changes

    June 20, 2019

    ๐Ÿš€ In this release, we've fixed:

    • ๐Ÿšš An issue where if you included parameters within the base URL, they would be mistakenly removed.
  • v2.0 Changes

    May 16, 2019

    ๐Ÿ‘ In this version ThunderRequest has been completely re-written in Swift! This will allow us to continue to continue to support this framework moving forward as we work exclusively in Swift at 3SidedCube.

    ๐Ÿ’ฅ Breaking Changes

    โ™ป๏ธ During this re-write we also took the decision to refactor some of the API which has introduced some breaking changes.

    • Individual GET, POST e.t.c. functions have been replaced with a single request function which takes an enum representation of the HTTP method. There is a much wider array of parameters available to this function now.

      // REMOVED! requestController.get("path") { (response, error) in

      }

      // NEW SYNTAX! requestController.request("path", method: .GET) { (response, error) in

      }

    • Request body is no longer of type Any it's of type RequestBody which is a protocol. Standard implementations such as JSONRequestBody and FormURLEncodedRequestBody e.t.c. are provided out of the box.

      requestController.request("users", method: .POST, body: JSONRequestBody(user.dictionaryRepresentation)) { (response, error) in

      }

    • ๐Ÿšš The TSC prefix has been removed from all classes.

    • ๐Ÿšš TSCErrorRecoveryAttempter overrides have been moved to a ErrorOverrides struct.

      // REMOVED! TSCErrorRecoveryAttempter.registerOverrideDescription("We're having some trouble getting your location. Please check that you have location services enabled.", forDomain: kCLErrorDomain, code: CLError.locationUnknown.rawValue)

      // NEW SYNTAX! ErrorOverrides.register(overrideDescription: "We're having some trouble getting your location. Please check that you have location services enabled.".localised(with: "_GENERAL_ERROR_CLERROR_UNKNOWN"), recoverySuggestion: nil, forDomain: kCLErrorDomain, code: CLError.locationUnknown.rawValue)

    • Other minor breaking changes (re-naming of variables and method signatures e.t.c.)

    ๐Ÿ†• New Features

    We also took the time to add some nice new features!

    • ๐Ÿ‘ Full support for Codable!

      // Encodable request body! requestController.request("users", method: .POST, body: EncodableRequestBody(user, encoding: .json)) { (response, error) in

      } // Decodable request response! requestController.request("users", method: .GET) { (response, error) in guard let _response = response else { return } let user: User? = _response.decoded() }

    • ๐Ÿ‘Œ Support for xml and binary plist request type

      requestController.request("users", method: .POST, body: PropertyListRequestBody(user, format: .binary)) { (response, error) in

      }

    • Cleaner and easier MultipartForm API

  • v1.1 Changes

    February 13, 2018

    โฌ†๏ธ This version contains a number of bug fixes and upgrades.