Skip to content

Commit

Permalink
Merge pull request #74 from olgadanylova/master
Browse files Browse the repository at this point in the history
Changes
  • Loading branch information
Olha Danylova authored Jun 4, 2019
2 parents 39a69e8 + c590c46 commit 62964af
Show file tree
Hide file tree
Showing 10 changed files with 50 additions and 31 deletions.
6 changes: 4 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
# RELEASE HISTORY

### 0.0.8, / May, 30 2019
### 0.0.8, / June, 4 2019
* the AtomicCounters compareAndSet function fixed to return Bool in response instead of Int
* added function to UserService:
* added functions to UserService:
```
func loginWithTwitter(authToken: String, authTokenSecret: String, fieldsMapping: [String: String], responseHandler: ((BackendlessUser) -> Void)!, errorHandler: ((Fault) -> Void)!)
func resendEmailConfirmation(email: String, responseHandler: (() -> Void)!, errorHandler: ((Fault) -> Void)!)
```

Expand Down
1 change: 1 addition & 0 deletions Sources/SwiftSDK/Files/BackendlessFileInfo.swift
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@

public func encode(to encoder: Encoder) throws {
var container = encoder.container(keyedBy: CodingKeys.self)

try container.encodeIfPresent(name, forKey: .name)
try container.encode(createdOn, forKey: .createdOn)
try container.encodeIfPresent(publicUrl, forKey: .publicUrl)
Expand Down
20 changes: 16 additions & 4 deletions Sources/SwiftSDK/Geo/BackendlessGeoQuery.swift
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,22 @@
@objcMembers open class BackendlessGeoQuery: NSObject, NSCoding, Codable {

open var geoPoint: GeoPoint?
open var radius: Double?
open var categories: [String]?
open var includemetadata = false

private var _radius: Double?
open var radius: NSNumber? {
get {
if let _radius = _radius {
return NSNumber(floatLiteral: _radius)
}
return nil
}
set(newRadius) {
_radius = newRadius?.doubleValue
}
}

private var _metadata: JSON?
open var metadata: [String : Any]? {
get {
Expand All @@ -58,7 +70,7 @@

enum CodingKeys: String, CodingKey {
case geoPoint
case radius
case _radius = "radius"
case categories
case includemetadata
case _metadata = "metadata"
Expand All @@ -75,7 +87,7 @@
convenience public required init?(coder aDecoder: NSCoder) {
self.init()
self.geoPoint = aDecoder.decodeObject(forKey: CodingKeys.geoPoint.rawValue) as? GeoPoint
self.radius = aDecoder.decodeDouble(forKey: CodingKeys.radius.rawValue)
self._radius = aDecoder.decodeDouble(forKey: CodingKeys._radius.rawValue)
self.categories = aDecoder.decodeObject(forKey: CodingKeys.categories.rawValue) as? [String]
self.includemetadata = aDecoder.decodeBool(forKey: CodingKeys.includemetadata.rawValue)
self._metadata = aDecoder.decodeObject(forKey: CodingKeys._metadata.rawValue) as? JSON
Expand All @@ -89,7 +101,7 @@

public func encode(with aCoder: NSCoder) {
aCoder.encode(geoPoint, forKey: CodingKeys.geoPoint.rawValue)
aCoder.encode(radius, forKey: CodingKeys.radius.rawValue)
aCoder.encode(_radius, forKey: CodingKeys._radius.rawValue)
aCoder.encode(categories, forKey: CodingKeys.categories.rawValue)
aCoder.encode(includemetadata, forKey: CodingKeys.includemetadata.rawValue)
aCoder.encode(_metadata, forKey: CodingKeys._metadata.rawValue)
Expand Down
3 changes: 1 addition & 2 deletions Sources/SwiftSDK/Geo/GeoPoint.swift
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@
self._metadata = JSON(metadata)
}

init(objectId: String, latitude: Double, longitude: Double, categories: [String], metadata: JSON?) {
init(objectId: String?, latitude: Double, longitude: Double, categories: [String], metadata: JSON?) {
self.objectId = objectId
self.latitude = latitude
self.longitude = longitude
Expand All @@ -89,7 +89,6 @@
}

required public override init() {
self.objectId = ""
self.latitude = 0.0
self.longitude = 0.0
self.categories = ["Default"]
Expand Down
6 changes: 4 additions & 2 deletions Sources/SwiftSDK/Geo/GeoService.swift
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,8 @@
let headers = ["Content-Type": "application/json"]
let parameters = ["latitude": geoPoint.latitude, "longitude": geoPoint.longitude, "categories": geoPoint.categories as Any, "metadata": geoPoint.metadata as Any] as [String : Any]

if let objectId = geoPoint.objectId { // update
// update
if let objectId = geoPoint.objectId {
BackendlessRequestManager(restMethod: "geo/points/\(objectId)", httpMethod: .PUT, headers: headers, parameters: parameters).makeRequest(getResponse: { response in
if let result = self.processResponse.adapt(response: response, to: JSON.self) {
if result is Fault {
Expand All @@ -41,7 +42,8 @@
}
})
}
else { // save
// save
else {
BackendlessRequestManager(restMethod: "geo/points", httpMethod: .POST, headers: headers, parameters: parameters).makeRequest(getResponse: { response in
if let result = self.processResponse.adapt(response: response, to: [String: GeoPoint].self) {
if result is Fault {
Expand Down
4 changes: 3 additions & 1 deletion Sources/SwiftSDK/Persistence/PersistenceServiceUtils.swift
Original file line number Diff line number Diff line change
Expand Up @@ -467,7 +467,9 @@ class PersistenceServiceUtils: NSObject {
func dictionaryToEntity(dictionary: [String: Any], className: String) -> Any? {
if tableName == "Users" || className == "Users",
let backendlessUser = processResponse.adaptToBackendlessUser(responseResult: dictionary) as? BackendlessUser {
storedObjects.rememberObjectId(objectId: backendlessUser.objectId, forObject: backendlessUser)
if let userId = backendlessUser.objectId {
storedObjects.rememberObjectId(objectId: userId, forObject: backendlessUser)
}
return backendlessUser
}
if tableName == "DeviceRegistration" || className == "DeviceRegistration" {
Expand Down
10 changes: 5 additions & 5 deletions Sources/SwiftSDK/UserService/BackendlessUser.swift
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,8 @@
}
}
open var name: String?
open private(set) var objectId: String

open private(set) var objectId: String?
open private(set) var userToken: String?

var _password: String?
Expand All @@ -45,7 +46,7 @@
case userToken
}

init(email: String, name: String?, objectId: String, userToken: String?) {
init(email: String, name: String?, objectId: String?, userToken: String?) {
self.email = email
self.name = name
self.objectId = objectId
Expand All @@ -54,14 +55,13 @@
convenience required public init?(coder aDecoder: NSCoder) {
let email = aDecoder.decodeObject(forKey: CodingKeys.email.rawValue) as! String
let name = aDecoder.decodeObject(forKey: CodingKeys.name.rawValue) as? String
let objectId = aDecoder.decodeObject(forKey: CodingKeys.objectId.rawValue) as! String
let objectId = aDecoder.decodeObject(forKey: CodingKeys.objectId.rawValue) as? String
let userToken = aDecoder.decodeObject(forKey: CodingKeys.userToken.rawValue) as? String
self.init(email: email, name: name, objectId: objectId, userToken: userToken)
}

required public override init() {
self.email = ""
self.objectId = ""
}

public func encode(with aCoder: NSCoder) {
Expand All @@ -76,7 +76,7 @@

email = try container.decodeIfPresent(String.self, forKey: .email) ?? ""
name = try container.decodeIfPresent(String.self, forKey: .name)
objectId = try container.decode(String.self, forKey: .objectId)
objectId = try container.decodeIfPresent(String.self, forKey: .objectId)
userToken = try container.decodeIfPresent(String.self, forKey: .userToken)
}

Expand Down
31 changes: 16 additions & 15 deletions Sources/SwiftSDK/UserService/UserService.swift
Original file line number Diff line number Diff line change
Expand Up @@ -95,11 +95,10 @@
})
}

open func loginWithTwitter(authToken: String, authTokenSecret: String, fieldsMapping: [String: String], responseHandler: ((BackendlessUser) -> Void)!, errorHandler: ((Fault) -> Void)!) {
// TODO
/*let headers = ["Content-Type": "application/json"]
open func loginWithTwitter(authToken: String, authTokenSecret: String, fieldsMapping: [String: String], responseHandler: ((BackendlessUser) -> Void)!, errorHandler: ((Fault) -> Void)!) {
let headers = ["Content-Type": "application/json"]
let parameters = ["accessToken": authToken, "accessTokenSecret": authTokenSecret, "fieldsMapping": fieldsMapping] as [String : Any]
BackendlessRequestManager(restMethod: "users/social/twitter/sdk/login", httpMethod: .POST, headers: headers, parameters: parameters).makeRequest(getResponse: { response in
BackendlessRequestManager(restMethod: "users/social/twitter/login", httpMethod: .POST, headers: headers, parameters: parameters).makeRequest(getResponse: { response in
if let result = self.processResponse.adapt(response: response, to: BackendlessUser.self) {
if result is Fault {
errorHandler(result as! Fault)
Expand All @@ -108,10 +107,10 @@
responseHandler(result as! BackendlessUser)
}
}
})*/
})
}

open func loginWithGoogleSDK(accessToken: String, fieldsMapping: [String: String], responseHandler: ((BackendlessUser) -> Void)!, errorHandler: ((Fault) -> Void)!) {
open func loginWithGoogle(accessToken: String, fieldsMapping: [String: String], responseHandler: ((BackendlessUser) -> Void)!, errorHandler: ((Fault) -> Void)!) {
let headers = ["Content-Type": "application/json"]
let parameters = ["accessToken": accessToken, "fieldsMapping": fieldsMapping] as [String : Any]
BackendlessRequestManager(restMethod: "users/social/googleplus/login", httpMethod: .POST, headers: headers, parameters: parameters).makeRequest(getResponse: { response in
Expand Down Expand Up @@ -150,16 +149,18 @@
open func update(user: BackendlessUser, responseHandler: ((BackendlessUser) -> Void)!, errorHandler: ((Fault) -> Void)!) {
let headers = ["Content-Type": "application/json"]
let parameters = user.getProperties()
BackendlessRequestManager(restMethod: "users/\(user.objectId)", httpMethod: .PUT, headers: headers, parameters: parameters).makeRequest(getResponse: { response in
if let result = self.processResponse.adapt(response: response, to: BackendlessUser.self) {
if result is Fault {
errorHandler(result as! Fault)
}
else {
responseHandler(result as! BackendlessUser)
if let userId = user.objectId {
BackendlessRequestManager(restMethod: "users/\(userId)", httpMethod: .PUT, headers: headers, parameters: parameters).makeRequest(getResponse: { response in
if let result = self.processResponse.adapt(response: response, to: BackendlessUser.self) {
if result is Fault {
errorHandler(result as! Fault)
}
else {
responseHandler(result as! BackendlessUser)
}
}
}
})
})
}
}

open func getCurrentUser() -> BackendlessUser? {
Expand Down
Binary file not shown.
Binary file not shown.

0 comments on commit 62964af

Please sign in to comment.