Skip to content

Commit 8f812df

Browse files
author
Olha Danylova
committed
* added the blUserLocale property (two character code) to the BackendlessUser object
* loginAsGuest methods in progress
1 parent a3b0d06 commit 8f812df

File tree

22 files changed

+135
-7
lines changed

22 files changed

+135
-7
lines changed

CHANGELOG.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,22 @@
11
# RELEASE HISTORY
22

3+
## 5.4.1 August ?, 2019
4+
* added the blUserLocale property (two character code) to the BackendlessUser object
5+
* added methods to UserService:
6+
```
7+
- (void)setUserToken:(NSString *)userToken;
8+
9+
-(NSString *)getUserToken;
10+
11+
-(BackendlessUser *)loginAsGuest;
12+
13+
-(BackendlessUser *)loginAsGuestWithStayLoggedIn:(BOOL)stayLoggedIn;
14+
15+
-(void)loginAsGuest:(void(^)(BackendlessUser *))responseBlock error:(void(^)(Fault *))errorBlock;
16+
17+
-(void)loginAsGuestWithStayLoggedIn:(BOOL)stayLoggedIn response:(void(^)(BackendlessUser *))responseBlock error:(void(^)(Fault *))errorBlock;
18+
```
19+
320
## 5.4.0 July 9, 2019
421
* added support of custom smart-text substitutions for push templates, the sendEmail method signatures changed:
522
```

Pods/Backendless.podspec

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

SDK/Podfile.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,4 @@ SPEC CHECKSUMS:
1717

1818
PODFILE CHECKSUM: 675cc991d5f2f8cb6bcd0ce2d67444ed1b8f2a74
1919

20-
COCOAPODS: 1.7.1
20+
COCOAPODS: 1.7.5

SDK/backendlessAPI/Classes/UserService/BackendlessUser.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
#define BACKENDLESS_ID_KEY @"id"
2828
#define BACKENDLESS_USER_TOKEN @"user-token"
2929
#define BACKENDLESS_USER_REGISTERED @"user-registered"
30+
#define BACKENDLESS_USER_LOCALE @"blUserLocale"
3031

3132
@interface BackendlessUser : NSObject <NSCopying>
3233

@@ -38,6 +39,7 @@
3839
-(id)initWithProperties:(NSDictionary<NSString*, id> *)properties;
3940
-(BOOL)isUserRegistered;
4041
-(NSString *)getUserToken;
42+
-(void)setUserToken:(NSString *)userToken;
4143
-(void)persistCurrentUser;
4244
-(void)setProperty:(NSString *)key object:(id)value;
4345
-(void)setProperties:(NSDictionary<NSString*, id> *)properties;
@@ -47,5 +49,6 @@
4749
-(NSDictionary<NSString*, id> *)getProperties;
4850
-(void)removeProperty:(NSString *)key;
4951
-(void)removeProperties:(NSArray<NSString*> *)keys;
52+
-(void)setLocale:(NSString *)languageCode;
5053

5154
@end

SDK/backendlessAPI/Classes/UserService/BackendlessUser.m

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,15 +31,16 @@ @interface BackendlessUser() {
3131
@implementation BackendlessUser
3232

3333
-(id)init {
34-
if (self=[super init]) {
35-
__properties = nil;
34+
if (self = [super init]) {
35+
__properties = [[HashMap alloc] initWithNode:@{BACKENDLESS_USER_LOCALE: [[NSLocale currentLocale] objectForKey:NSLocaleLanguageCode]}];
3636
}
3737
return self;
3838
}
3939

4040
-(id)initWithProperties:(NSDictionary<NSString*, id> *)properties {
41-
if (self=[super init]) {
41+
if (self = [super init]) {
4242
__properties = (properties) ? [[HashMap alloc] initWithNode:properties] : nil;
43+
[__properties add:BACKENDLESS_USER_LOCALE withObject:[[NSLocale currentLocale] objectForKey:NSLocaleLanguageCode]];
4344
}
4445
return self;
4546
}
@@ -82,6 +83,14 @@ -(void)setName:(NSString *)name {
8283
[self setProperty:BACKENDLESS_NAME_KEY object:name];
8384
}
8485

86+
-(void)setLocale:(NSString *)languageCode {
87+
[self setProperty:BACKENDLESS_USER_LOCALE object:languageCode];
88+
}
89+
90+
-(NSString *)getLocale {
91+
return [self getProperty:BACKENDLESS_USER_LOCALE];
92+
}
93+
8594
-(BOOL)isUserRegistered {
8695
return [[self getProperty:BACKENDLESS_USER_REGISTERED] isKindOfClass:NSNumber.class];
8796
}
@@ -97,6 +106,10 @@ -(NSString *)getUserToken {
97106
return nil;
98107
}
99108

109+
-(void)setUserToken:(NSString *)userToken {
110+
[self setProperty:BACKENDLESS_USER_TOKEN object:userToken];
111+
}
112+
100113
-(void)persistCurrentUser {
101114
if (backendless.userService.isStayLoggedIn && backendless.userService.currentUser && [self.objectId isEqualToString:backendless.userService.currentUser.objectId]) {
102115
[backendless.userService setPersistentUser];

SDK/backendlessAPI/Classes/UserService/UserService.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@
2929
@property (readonly) BOOL isStayLoggedIn;
3030

3131
-(BOOL)setStayLoggedIn:(BOOL)value;
32+
- (void)setUserToken:(NSString *)userToken;
33+
-(NSString *)getUserToken;
3234

3335
// sync methods with fault return (as exception)
3436
-(BackendlessUser *)registerUser:(BackendlessUser *)user;
@@ -44,6 +46,8 @@
4446
-(BackendlessUser *)loginWithGoogleSDK:(NSString *)idToken accessToken:(NSString *)accessToken;
4547
-(BackendlessUser *)loginWithTwitterSDK:(NSString *)authToken authTokenSecret:(NSString *)authTokenSecret fieldsMapping:(NSDictionary *)fieldsMapping;
4648
-(void)resendEmailConfirmation:(NSString *)email;
49+
-(BackendlessUser *)loginAsGuest;
50+
-(BackendlessUser *)loginAsGuestWithStayLoggedIn:(BOOL)stayLoggedIn;
4751

4852
// async methods with block-based callbacks
4953
-(void)registerUser:(BackendlessUser *)user response:(void(^)(BackendlessUser *))responseBlock error:(void(^)(Fault *))errorBlock;
@@ -59,6 +63,8 @@
5963
-(void)loginWithGoogleSDK:(NSString *)idToken accessToken:(NSString *)accessToken response:(void(^)(BackendlessUser *))responseBlock error:(void(^)(Fault *))errorBlock;
6064
-(void)loginWithTwitterSDK:(NSString *)authToken authTokenSecret:(NSString *)authTokenSecret fieldsMapping:(NSDictionary *)fieldsMapping response:(void(^)(BackendlessUser *))responseBlock error:(void(^)(Fault *))errorBlock;
6165
-(void)resendEmailConfirmation:(NSString *)email response:(void(^)(void))responseBlock error:(void(^)(Fault *))errorBlock;
66+
-(void)loginAsGuest:(void(^)(BackendlessUser *))responseBlock error:(void(^)(Fault *))errorBlock;
67+
-(void)loginAsGuestWithStayLoggedIn:(BOOL)stayLoggedIn response:(void(^)(BackendlessUser *))responseBlock error:(void(^)(Fault *))errorBlock;
6268

6369
// persistent user
6470
-(BOOL)getPersistentUser;

SDK/backendlessAPI/Classes/UserService/UserService.m

Lines changed: 45 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@
5858
static NSString *METHOD_USER_LOGIN_WITH_GOOGLEPLUS_SDK = @"loginWithGooglePlus";
5959
static NSString *METHOD_USER_LOGIN_WITH_TWITTER_SDK = @"loginWithTwitter";
6060
static NSString *METHOD_RESEND_EMAIL_CONFIRMATION = @"resendEmailConfirmation";
61+
static NSString *METHOD_GUEST_LOGIN = @"loginAsGuest";
6162

6263
@interface UserService ()
6364

@@ -109,6 +110,14 @@ -(BOOL)setStayLoggedIn:(BOOL)value {
109110
return (_isStayLoggedIn = value) ? [self setPersistentUser] : [self resetPersistentUser];
110111
}
111112

113+
-(void)setUserToken:(NSString *)userToken {
114+
[backendless.headers setValue:userToken forKey:BACKENDLESS_USER_TOKEN];
115+
}
116+
117+
-(NSString *)getUserToken {
118+
return self.currentUser.getUserToken;
119+
}
120+
112121
// sync methods with fault return (as exception)
113122

114123
-(BackendlessUser *)registerUser:(BackendlessUser *)user {
@@ -274,6 +283,31 @@ -(void)resendEmailConfirmation:(NSString *)email {
274283
[self onLogin:result];
275284
}
276285

286+
-(BackendlessUser *)loginAsGuest {
287+
return [self loginAsGuestWithStayLoggedIn:NO];
288+
}
289+
290+
-(BackendlessUser *)loginAsGuestWithStayLoggedIn:(BOOL)stayLoggedIn {
291+
[self setStayLoggedIn:stayLoggedIn];
292+
id result = [invoker invokeSync:SERVER_USER_SERVICE_PATH method:METHOD_GUEST_LOGIN args:nil responseAdapter:[BackendlessUserAdapter new]];
293+
if ([result isKindOfClass:[Fault class]]) {
294+
return [backendless throwFault:result];
295+
}
296+
BackendlessUser *guest = [BackendlessUser new];
297+
guest.objectId = [result objectForKey:@"objectId"];
298+
[guest setUserToken:[result objectForKey:@"user-token"]];
299+
300+
self.currentUser = guest;
301+
if (self.currentUser.getUserToken) {
302+
[backendless.headers setValue:self.currentUser.getUserToken forKey:BACKENDLESS_USER_TOKEN];
303+
}
304+
else {
305+
[backendless.headers removeObjectForKey:BACKENDLESS_USER_TOKEN];
306+
}
307+
[self setPersistentUser];
308+
return self.currentUser;
309+
}
310+
277311
// async methods with block-based callbacks
278312

279313
-(void)registerUser:(BackendlessUser *)user response:(void(^)(BackendlessUser *))responseBlock error:(void(^)(Fault *))errorBlock {
@@ -401,6 +435,17 @@ -(void)resendEmailConfirmation:(NSString *)email response:(void(^)(void))respons
401435
[invoker invokeAsync:SERVER_USER_SERVICE_PATH method:METHOD_RESEND_EMAIL_CONFIRMATION args:args responder:responder];
402436
}
403437

438+
-(void)loginAsGuest:(void (^)(BackendlessUser *))responseBlock error:(void (^)(Fault *))errorBlock {
439+
[self loginAsGuestWithStayLoggedIn:NO response:responseBlock error:errorBlock];
440+
}
441+
442+
-(void)loginAsGuestWithStayLoggedIn:(BOOL)stayLoggedIn response:(void (^)(BackendlessUser *))responseBlock error:(void (^)(Fault *))errorBlock {
443+
Responder *responder = [ResponderBlocksContext responderBlocksContext:responseBlock error:errorBlock];
444+
Responder *_responder = [Responder responder:self selResponseHandler:@selector(onLogin:) selErrorHandler:nil];
445+
_responder.chained = responder;
446+
[invoker invokeAsync:SERVER_USER_SERVICE_PATH method:METHOD_GUEST_LOGIN args:nil responder:_responder responseAdapter:[BackendlessUserAdapter new]];
447+
}
448+
404449
// persistent user
405450

406451
-(BOOL)getPersistentUser {
@@ -513,5 +558,4 @@ -(void)onLogoutError:(Fault *)fault {
513558
}
514559
}
515560

516-
517561
@end

SDK/ios/backendless/backendless.a

80.9 KB
Binary file not shown.

SDK/ios/backendless/include/BackendlessUser.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
#define BACKENDLESS_ID_KEY @"id"
2828
#define BACKENDLESS_USER_TOKEN @"user-token"
2929
#define BACKENDLESS_USER_REGISTERED @"user-registered"
30+
#define BACKENDLESS_USER_LOCALE @"blUserLocale"
3031

3132
@interface BackendlessUser : NSObject <NSCopying>
3233

@@ -38,6 +39,7 @@
3839
-(id)initWithProperties:(NSDictionary<NSString*, id> *)properties;
3940
-(BOOL)isUserRegistered;
4041
-(NSString *)getUserToken;
42+
-(void)setUserToken:(NSString *)userToken;
4143
-(void)persistCurrentUser;
4244
-(void)setProperty:(NSString *)key object:(id)value;
4345
-(void)setProperties:(NSDictionary<NSString*, id> *)properties;
@@ -47,5 +49,6 @@
4749
-(NSDictionary<NSString*, id> *)getProperties;
4850
-(void)removeProperty:(NSString *)key;
4951
-(void)removeProperties:(NSArray<NSString*> *)keys;
52+
-(void)setLocale:(NSString *)languageCode;
5053

5154
@end

SDK/ios/backendless/include/UserService.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@
2929
@property (readonly) BOOL isStayLoggedIn;
3030

3131
-(BOOL)setStayLoggedIn:(BOOL)value;
32+
- (void)setUserToken:(NSString *)userToken;
33+
-(NSString *)getUserToken;
3234

3335
// sync methods with fault return (as exception)
3436
-(BackendlessUser *)registerUser:(BackendlessUser *)user;
@@ -44,6 +46,8 @@
4446
-(BackendlessUser *)loginWithGoogleSDK:(NSString *)idToken accessToken:(NSString *)accessToken;
4547
-(BackendlessUser *)loginWithTwitterSDK:(NSString *)authToken authTokenSecret:(NSString *)authTokenSecret fieldsMapping:(NSDictionary *)fieldsMapping;
4648
-(void)resendEmailConfirmation:(NSString *)email;
49+
-(BackendlessUser *)loginAsGuest;
50+
-(BackendlessUser *)loginAsGuestWithStayLoggedIn:(BOOL)stayLoggedIn;
4751

4852
// async methods with block-based callbacks
4953
-(void)registerUser:(BackendlessUser *)user response:(void(^)(BackendlessUser *))responseBlock error:(void(^)(Fault *))errorBlock;
@@ -59,6 +63,8 @@
5963
-(void)loginWithGoogleSDK:(NSString *)idToken accessToken:(NSString *)accessToken response:(void(^)(BackendlessUser *))responseBlock error:(void(^)(Fault *))errorBlock;
6064
-(void)loginWithTwitterSDK:(NSString *)authToken authTokenSecret:(NSString *)authTokenSecret fieldsMapping:(NSDictionary *)fieldsMapping response:(void(^)(BackendlessUser *))responseBlock error:(void(^)(Fault *))errorBlock;
6165
-(void)resendEmailConfirmation:(NSString *)email response:(void(^)(void))responseBlock error:(void(^)(Fault *))errorBlock;
66+
-(void)loginAsGuest:(void(^)(BackendlessUser *))responseBlock error:(void(^)(Fault *))errorBlock;
67+
-(void)loginAsGuestWithStayLoggedIn:(BOOL)stayLoggedIn response:(void(^)(BackendlessUser *))responseBlock error:(void(^)(Fault *))errorBlock;
6268

6369
// persistent user
6470
-(BOOL)getPersistentUser;

0 commit comments

Comments
 (0)