This commit is contained in:
2025-12-03 20:14:14 +08:00
parent eca168957d
commit 9651ae7ad7
7 changed files with 80 additions and 1 deletions

View File

@@ -7,9 +7,18 @@
#import <Foundation/Foundation.h>
@class KBUser;
NS_ASSUME_NONNULL_BEGIN
typedef void(^KBMyUserDetailCompletion)(KBUser *_Nullable user, NSError *_Nullable error);
@interface KBMyVM : NSObject
/// 获取当前用户详情(/user/detail
- (void)fetchUserDetailWithCompletion:(KBMyUserDetailCompletion)completion;
/// 退出登录
- (void)logout;
@end

View File

@@ -7,8 +7,41 @@
#import "KBMyVM.h"
#import "AppDelegate.h"
#import "KBNetworkManager.h"
#import "KBUser.h"
@implementation KBMyVM
- (void)fetchUserDetailWithCompletion:(KBMyUserDetailCompletion)completion {
[KBHUD show];
[[KBNetworkManager shared] GET:KB_API_USER_DETAIL
parameters:nil
headers:nil
autoShowBusinessError:NO
completion:^(NSDictionary *jsonOrData, NSURLResponse * _Nullable response, NSError * _Nullable error) {
[KBHUD dismiss];
if (error) {
NSString *msg = KBBizMessageFromJSONObject(jsonOrData) ?: error.localizedDescription ?: KBLocalized(@"Network error");
[KBHUD showInfo:msg];
if (completion) completion(nil, error);
return;
}
id dataObj = jsonOrData[KBData] ?: jsonOrData[@"data"];
if (![dataObj isKindOfClass:[NSDictionary class]]) {
NSError *e = [NSError errorWithDomain:KBNetworkErrorDomain
code:KBNetworkErrorInvalidResponse
userInfo:@{NSLocalizedDescriptionKey: KBLocalized(@"Invalid response")}];
[KBHUD showInfo:e.localizedDescription];
if (completion) completion(nil, e);
return;
}
KBUser *user = [KBUser mj_objectWithKeyValues:(NSDictionary *)dataObj];
if (completion) completion(user, nil);
}];
}
- (void)logout{
[KBHUD show];
[[KBNetworkManager shared] GET:API_LOGOUT