From 7fc917f3b6bf31112dc61d5d95884d3d7861da19 Mon Sep 17 00:00:00 2001 From: nvtu Date: Fri, 18 Aug 2017 17:35:02 +0700 Subject: [PATCH] add get member of group API, join group API. --- LifeLog/LifeLog.xcodeproj/project.pbxproj | 22 ++++-- LifeLog/LifeLog/Entities.h | 1 + LifeLog/LifeLog/GroupDetailViewController.h | 4 +- LifeLog/LifeLog/GroupDetailViewController.m | 98 +++++++++++++++++++-------- LifeLog/LifeLog/GroupDetailViewController.xib | 15 ++-- LifeLog/LifeLog/HistoryViewController.xib | 2 +- LifeLog/LifeLog/MemberObject.h | 25 +++++++ LifeLog/LifeLog/MemberObject.m | 47 +++++++++++++ LifeLog/LifeLog/RankingViewController.xib | 2 +- LifeLog/LifeLog/SNSViewController.m | 4 +- LifeLog/LifeLog/SNSViewController.xib | 6 +- LifeLog/LifeLog/ServerAPI.h | 2 + LifeLog/LifeLog/ServerAPI.m | 97 ++++++++++++++++++++++++++ LifeLog/LifeLog/TweetObject.h | 2 +- LifeLog/LifeLog/TweetObject.m | 2 +- 15 files changed, 282 insertions(+), 47 deletions(-) create mode 100644 LifeLog/LifeLog/MemberObject.h create mode 100644 LifeLog/LifeLog/MemberObject.m diff --git a/LifeLog/LifeLog.xcodeproj/project.pbxproj b/LifeLog/LifeLog.xcodeproj/project.pbxproj index 551053e..821407a 100644 --- a/LifeLog/LifeLog.xcodeproj/project.pbxproj +++ b/LifeLog/LifeLog.xcodeproj/project.pbxproj @@ -57,6 +57,7 @@ E9373E471F3596940059355A /* AutoTransLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = E9373E461F3596940059355A /* AutoTransLabel.m */; }; E9373E4A1F35AA180059355A /* HistoryObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E9373E491F35AA180059355A /* HistoryObject.m */; }; E9373E4D1F361A230059355A /* HistoryGraphObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E9373E4C1F361A230059355A /* HistoryGraphObject.m */; }; + E9497FD51F46EC1100E6AF8D /* MemberObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E9497FD41F46EC1100E6AF8D /* MemberObject.m */; }; E9682E2E1F39675A00FE05A2 /* RankingTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E9682E2C1F39675A00FE05A2 /* RankingTableViewCell.m */; }; E9682E2F1F39675A00FE05A2 /* RankingTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E9682E2D1F39675A00FE05A2 /* RankingTableViewCell.xib */; }; E968550A1F3C444900317CEF /* AutoTransButton.m in Sources */ = {isa = PBXBuildFile; fileRef = E96855091F3C444900317CEF /* AutoTransButton.m */; }; @@ -181,6 +182,8 @@ E9373E491F35AA180059355A /* HistoryObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryObject.m; sourceTree = ""; }; E9373E4B1F361A230059355A /* HistoryGraphObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryGraphObject.h; sourceTree = ""; }; E9373E4C1F361A230059355A /* HistoryGraphObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryGraphObject.m; sourceTree = ""; }; + E9497FD31F46EC1100E6AF8D /* MemberObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MemberObject.h; sourceTree = ""; }; + E9497FD41F46EC1100E6AF8D /* MemberObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MemberObject.m; sourceTree = ""; }; E9682E2B1F39675A00FE05A2 /* RankingTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RankingTableViewCell.h; sourceTree = ""; }; E9682E2C1F39675A00FE05A2 /* RankingTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RankingTableViewCell.m; sourceTree = ""; }; E9682E2D1F39675A00FE05A2 /* RankingTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RankingTableViewCell.xib; sourceTree = ""; }; @@ -281,6 +284,8 @@ E9D909201F3D559D004CF99F /* TweetObject.m */, E933E6721F3E0E4E002926F5 /* GroupObject.h */, E933E6731F3E0E4E002926F5 /* GroupObject.m */, + E9497FD31F46EC1100E6AF8D /* MemberObject.h */, + E9497FD41F46EC1100E6AF8D /* MemberObject.m */, ); name = Model; sourceTree = ""; @@ -308,6 +313,7 @@ 6E84E3981F27A703001EB88E /* LifeLogUITests */, DE8269E957EA47CD771BAB33 /* Pods */, 020C1721B642EF36F31E1BB4 /* Frameworks */, + 783929CF869F5081762B3DCA /* Products */, ); sourceTree = ""; }; @@ -430,7 +436,7 @@ 6E84E3AC1F27A954001EB88E /* SNS */ = { isa = PBXGroup; children = ( - E933E6751F4050E6002926F5 /* GrouDetail */, + E933E6751F4050E6002926F5 /* GroupDetail */, E933E6671F3E0479002926F5 /* SeachGroup */, 6E84E3BC1F27A9B1001EB88E /* SNSViewController.h */, 6E84E3BD1F27A9B1001EB88E /* SNSViewController.m */, @@ -491,6 +497,13 @@ name = Common; sourceTree = ""; }; + 783929CF869F5081762B3DCA /* Products */ = { + isa = PBXGroup; + children = ( + ); + name = Products; + sourceTree = ""; + }; 9CA8AEE61F31BB1200C5FC74 /* ConfirmForgetPass */ = { isa = PBXGroup; children = ( @@ -547,14 +560,14 @@ name = SeachGroup; sourceTree = ""; }; - E933E6751F4050E6002926F5 /* GrouDetail */ = { + E933E6751F4050E6002926F5 /* GroupDetail */ = { isa = PBXGroup; children = ( E933E6761F40513C002926F5 /* GroupDetailViewController.h */, E933E6771F40513C002926F5 /* GroupDetailViewController.m */, E933E6781F40513C002926F5 /* GroupDetailViewController.xib */, ); - name = GrouDetail; + name = GroupDetail; sourceTree = ""; }; E9373E441F35966D0059355A /* AutoTranslateView */ = { @@ -684,7 +697,7 @@ Base, ); mainGroup = 6E84E3681F27A700001EB88E; - productRefGroup = 6E84E3721F27A700001EB88E /* Products */; + productRefGroup = 783929CF869F5081762B3DCA /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( @@ -823,6 +836,7 @@ 6E84E3C51F27ACAE001EB88E /* MapViewController.m in Sources */, 6E18CEDC1F2E40F50029891F /* User.m in Sources */, 6ECC40711F2A5FEB00AAEB97 /* NSDate+helper.m in Sources */, + E9497FD51F46EC1100E6AF8D /* MemberObject.m in Sources */, 6E18CED31F2E39DB0029891F /* LoginViewController.m in Sources */, 6EA4AF331F40BB7A00F52CFE /* TopObject.m in Sources */, E9D909241F3D6E8C004CF99F /* BaseTableViewController.m in Sources */, diff --git a/LifeLog/LifeLog/Entities.h b/LifeLog/LifeLog/Entities.h index 553f9da..faabca1 100644 --- a/LifeLog/LifeLog/Entities.h +++ b/LifeLog/LifeLog/Entities.h @@ -11,6 +11,7 @@ #import +#import "MemberObject.h" #import "GroupObject.h" #import "TweetObject.h" #import "HistoryGraphObject.h" diff --git a/LifeLog/LifeLog/GroupDetailViewController.h b/LifeLog/LifeLog/GroupDetailViewController.h index 725aa63..d911cda 100644 --- a/LifeLog/LifeLog/GroupDetailViewController.h +++ b/LifeLog/LifeLog/GroupDetailViewController.h @@ -13,6 +13,7 @@ @interface GroupDetailViewController : BaseTableViewController { GroupObject * _curGroup; + BOOL isMemberList; } @property (weak, nonatomic) IBOutlet UIImageView *imgAva; @@ -25,5 +26,6 @@ - (IBAction)clickBack:(id)sender; - (void) setGroup : (GroupObject *) object; -- (IBAction)clickSwitch:(AutoTransButton*)sender; +- (IBAction)clickSwitch:(AutoTransButton *)sender; +- (IBAction)clickJoin:(AutoTransButton *)sender; @end diff --git a/LifeLog/LifeLog/GroupDetailViewController.m b/LifeLog/LifeLog/GroupDetailViewController.m index 9109cbe..51a40c4 100644 --- a/LifeLog/LifeLog/GroupDetailViewController.m +++ b/LifeLog/LifeLog/GroupDetailViewController.m @@ -21,8 +21,7 @@ - (void)viewDidLoad { [super viewDidLoad]; - [self setupView]; - + isMemberList = false; //register nib for table view [self.tableBase registerNib:[UINib nibWithNibName:@"SNSRecentTopicTableViewCell" bundle:nil] forCellReuseIdentifier:@"RecentTopicCell"]; if(_curGroup != nil) { @@ -40,16 +39,14 @@ _curGroup = object; } -- (IBAction)clickSwitch:(id)sender { -} - - (void)setupView { if(_curGroup != nil) { if(_curGroup.avatar && ![_curGroup.avatar isKindOfClass:[NSNull class]]) { [self.imgAva sd_setImageWithURL:[NSURL URLWithString:[Utilities getImageLink:_curGroup.avatar]]]; } - self.lblGrpName.text = _curGroup.name; - self.lblGrpGoal.text = _curGroup.goal; + [self.lblGrpName setText:_curGroup.name]; + [self.lblGrpGoal setText:_curGroup.goal]; + [self.btJoinGrp setHidden:_curGroup.isJoin]; NSString *mode = @""; if(_curGroup.runMode) { mode = [mode stringByAppendingString:@"ランニング\n"]; @@ -69,19 +66,53 @@ [self.navigationController popViewControllerAnimated:true]; } +- (IBAction)clickSwitch:(AutoTransButton *)sender { + isMemberList = !isMemberList; + [self resetData]; +} + +- (IBAction)clickJoin:(AutoTransButton *)sender { + NSString * token = [[NSUserDefaults standardUserDefaults] stringForKey:kToken]; + MBProgressHUD *hudView = [MBProgressHUD showHUDAddedTo:self.view animated:true]; + [[ServerAPI server] requestTweetsList:token groupID:_curGroup.groupID withPage:_curPage CompletionHandler:^(NSArray *array, NSError *error){ + dispatch_async(dispatch_get_main_queue(), ^{ + if(hudView != nil) { + [hudView hideAnimated:true]; + } + }); + }]; +} + + + #pragma mark UITableView Delegate - (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { SNSRecentTopicTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"RecentTopicCell"]; - TweetObject *object = [_curDataList objectAtIndex:indexPath.row]; - if(object.avatarLink && ![object.avatarLink isKindOfClass:[NSNull class]]) { - [cell.imgAvatar sd_setImageWithURL:[NSURL URLWithString:[Utilities getImageLink:object.avatarLink]]]; + if(isMemberList) { + MemberObject *object = [_curDataList objectAtIndex:indexPath.row]; + if(object.avatar && ![object.avatar isKindOfClass:[NSNull class]]) { + [cell.imgAvatar sd_setImageWithURL:[NSURL URLWithString:[Utilities getImageLink:object.avatar]]]; + } + cell.lblUsername.text = @""; + cell.lblDateTime.text = @""; + cell.lblDes.text = object.userName; + cell.lblMode.text = @""; + cell.lblDistance.text = @""; + cell.lblDuration.text = @""; + } + else { + TweetObject *object = [_curDataList objectAtIndex:indexPath.row]; + if(object.avatar && ![object.avatar isKindOfClass:[NSNull class]]) { + [cell.imgAvatar sd_setImageWithURL:[NSURL URLWithString:[Utilities getImageLink:object.avatar]]]; + } + cell.lblDateTime.text = [Utilities stringFromDate:object.createDate withFormat:@"YYYY/MM/dd hh:mm"]; + cell.lblUsername.text = object.userName; + cell.lblDes.text = object.content; + cell.lblMode.text = object.mode; + cell.lblDistance.text = [NSString stringWithFormat:@"%.0f m", object.distance]; + cell.lblDuration.text = object.time; } - cell.lblDateTime.text = [Utilities stringFromDate:object.createDate withFormat:@"YYYY/MM/dd hh:mm"]; - cell.lblUsername.text = object.userName; - cell.lblDes.text = object.content; - cell.lblMode.text = object.mode; - cell.lblDistance.text = [NSString stringWithFormat:@"%.0f m", object.distance]; - cell.lblDuration.text = object.time; + return cell; } @@ -89,12 +120,12 @@ - (void) requestGroupDetail { NSString * token = [[NSUserDefaults standardUserDefaults] stringForKey:kToken]; -// MBProgressHUD *hudView = [MBProgressHUD showHUDAddedTo:self.view animated:true]; + MBProgressHUD *hudView = [MBProgressHUD showHUDAddedTo:self.view animated:true]; [[ServerAPI server] getGroupDetail:token withGroupID:_curGroup.groupID CompletionHandler:^(GroupObject *object, NSError *error) { -// [hudView hideAnimated:true]; GroupDetailViewController __weak *weakSelf = self; _curGroup = object; dispatch_async(dispatch_get_main_queue(), ^{ + [hudView hideAnimated:true]; [weakSelf setupView]; [weakSelf callRequestToUpdateData]; }); @@ -109,15 +140,28 @@ if(_curPage == 1 && !self.refreshControl.isRefreshing) { hudView = [MBProgressHUD showHUDAddedTo:self.view animated:true]; } - [[ServerAPI server] requestTweetsList:token groupID:_curGroup.groupID withPage:_curPage CompletionHandler:^(NSArray *array, NSError *error){ - dispatch_async(dispatch_get_main_queue(), ^{ - if(hudView != nil) { - [hudView hideAnimated:true]; - } - }); - GroupDetailViewController __weak *weakSelf = self; - [weakSelf updateTableData:array error:error]; - }]; + if(isMemberList) { + [[ServerAPI server] requestMemberList:token groupID:_curGroup.groupID withPage:_curPage CompletionHandler:^(NSArray *array, NSError *error){ + dispatch_async(dispatch_get_main_queue(), ^{ + if(hudView != nil) { + [hudView hideAnimated:true]; + } + }); + GroupDetailViewController __weak *weakSelf = self; + [weakSelf updateTableData:array error:error]; + }]; + } + else { + [[ServerAPI server] requestTweetsList:token groupID:_curGroup.groupID withPage:_curPage CompletionHandler:^(NSArray *array, NSError *error){ + dispatch_async(dispatch_get_main_queue(), ^{ + if(hudView != nil) { + [hudView hideAnimated:true]; + } + }); + GroupDetailViewController __weak *weakSelf = self; + [weakSelf updateTableData:array error:error]; + }]; + } } @end diff --git a/LifeLog/LifeLog/GroupDetailViewController.xib b/LifeLog/LifeLog/GroupDetailViewController.xib index 8ed815a..af6c811 100644 --- a/LifeLog/LifeLog/GroupDetailViewController.xib +++ b/LifeLog/LifeLog/GroupDetailViewController.xib @@ -1,10 +1,10 @@ - + - + @@ -70,7 +70,7 @@ -