OSDN Git Service

/kcsapi/api_req_kousyou/getshipに対応 建造履歴を保存するようにした
authormasakih <masakih@users.sourceforge.jp>
Sat, 22 Mar 2014 12:18:44 +0000 (21:18 +0900)
committermasakih <masakih@users.sourceforge.jp>
Sat, 22 Mar 2014 12:18:44 +0000 (21:18 +0900)
KCD.xcodeproj/project.pbxproj
KCD/HMGetShipCommand.h [new file with mode: 0644]
KCD/HMGetShipCommand.m [new file with mode: 0644]

index e5a3e85..9c96f3a 100644 (file)
@@ -68,6 +68,7 @@
                F4D2CBC818B0555A000EBC59 /* HMKCManagedObject.m in Sources */ = {isa = PBXBuildFile; fileRef = F4D2CBC718B0555A000EBC59 /* HMKCManagedObject.m */; };
                F4D2CBCB18B05E58000EBC59 /* HMMaserShipCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = F4D2CBCA18B05E58000EBC59 /* HMMaserShipCommand.m */; };
                F4E33B5818BF5F67005B8C07 /* HMMemberSlotItemCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = F4E33B5718BF5F67005B8C07 /* HMMemberSlotItemCommand.m */; };
+               F4E7802818DBD2A00011BC4C /* HMGetShipCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = F4E7802718DBD2A00011BC4C /* HMGetShipCommand.m */; };
                F4E7802B18DC3A820011BC4C /* HMLocalDataStore.m in Sources */ = {isa = PBXBuildFile; fileRef = F4E7802A18DC3A820011BC4C /* HMLocalDataStore.m */; };
                F4E7802E18DC3AF00011BC4C /* LocalData.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = F4E7802C18DC3AF00011BC4C /* LocalData.xcdatamodeld */; };
                F4E7803118DC42680011BC4C /* HMKenzoHistory.m in Sources */ = {isa = PBXBuildFile; fileRef = F4E7803018DC42680011BC4C /* HMKenzoHistory.m */; };
                F4D2CBCA18B05E58000EBC59 /* HMMaserShipCommand.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMMaserShipCommand.m; sourceTree = "<group>"; };
                F4E33B5618BF5F67005B8C07 /* HMMemberSlotItemCommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMMemberSlotItemCommand.h; sourceTree = "<group>"; };
                F4E33B5718BF5F67005B8C07 /* HMMemberSlotItemCommand.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMMemberSlotItemCommand.m; sourceTree = "<group>"; };
+               F4E7802618DBD2A00011BC4C /* HMGetShipCommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMGetShipCommand.h; sourceTree = "<group>"; };
+               F4E7802718DBD2A00011BC4C /* HMGetShipCommand.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMGetShipCommand.m; sourceTree = "<group>"; };
                F4E7802918DC3A820011BC4C /* HMLocalDataStore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMLocalDataStore.h; sourceTree = "<group>"; };
                F4E7802A18DC3A820011BC4C /* HMLocalDataStore.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMLocalDataStore.m; sourceTree = "<group>"; };
                F4E7802D18DC3AF00011BC4C /* LocalData.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = LocalData.xcdatamodel; sourceTree = "<group>"; };
                                F4513EF518B9F29800073552 /* HMMemberShipCommand.m */,
                                F4E33B5618BF5F67005B8C07 /* HMMemberSlotItemCommand.h */,
                                F4E33B5718BF5F67005B8C07 /* HMMemberSlotItemCommand.m */,
+                               F4E7802618DBD2A00011BC4C /* HMGetShipCommand.h */,
+                               F4E7802718DBD2A00011BC4C /* HMGetShipCommand.m */,
                        );
                        name = Command;
                        sourceTree = "<group>";
                                F4513EFA18BB699700073552 /* HMShipWindowController.m in Sources */,
                                F46F104118A9B85E0063E503 /* HMJSONNode.m in Sources */,
                                F4513EFE18BB6B0C00073552 /* HMKCShipObject.m in Sources */,
+                               F4E7802818DBD2A00011BC4C /* HMGetShipCommand.m in Sources */,
                                F4513EF618B9F29800073552 /* HMMemberShipCommand.m in Sources */,
                                F4C1190818A746EB005D5B25 /* HMJSONTracker.m in Sources */,
                                F4513EDD18B619B600073552 /* HMCoreDataManager.m in Sources */,
diff --git a/KCD/HMGetShipCommand.h b/KCD/HMGetShipCommand.h
new file mode 100644 (file)
index 0000000..2faeb16
--- /dev/null
@@ -0,0 +1,13 @@
+//
+//  HMGetShipCommand.h
+//  KCD
+//
+//  Created by Hori,Masaki on 2014/03/21.
+//  Copyright (c) 2014年 Hori,Masaki. All rights reserved.
+//
+
+#import "HMJSONCommand.h"
+
+@interface HMGetShipCommand : HMJSONCommand
+
+@end
diff --git a/KCD/HMGetShipCommand.m b/KCD/HMGetShipCommand.m
new file mode 100644 (file)
index 0000000..57ac27c
--- /dev/null
@@ -0,0 +1,71 @@
+//
+//  HMGetShipCommand.m
+//  KCD
+//
+//  Created by Hori,Masaki on 2014/03/21.
+//  Copyright (c) 2014年 Hori,Masaki. All rights reserved.
+//
+
+#import "HMGetShipCommand.h"
+
+#import "HMCoreDataManager.h"
+#import "HMLocalDataStore.h"
+#import "HMKenzoHistory.h"
+
+
+@implementation HMGetShipCommand
++ (void)load
+{
+       static dispatch_once_t onceToken;
+       dispatch_once(&onceToken, ^{
+               [HMJSONCommand registerClass:self];
+       });
+}
+
++ (BOOL)canExcuteAPI:(NSString *)api
+{
+       if([api isEqualToString:@"/kcsapi/api_req_kousyou/getship"]) return YES;
+       
+       return NO;
+}
+- (void)execute
+{
+       NSManagedObjectContext *context = [[HMCoreDataManager defaultManager] managedObjectContext];
+       NSFetchRequest *req = [NSFetchRequest fetchRequestWithEntityName:@"KenzoDock"];
+       NSPredicate *predicate = [NSPredicate predicateWithFormat:@"id = %@", [self.arguments valueForKey:@"api_kdock_id"]];
+       [req setPredicate:predicate];
+       
+       NSArray *array = [context executeFetchRequest:req error:NULL];
+       if([array count] == 0) {
+               NSLog(@"KenzoDock data is invalid.");
+               return;
+       }
+       
+       id kdock = array[0];
+       NSNumber *item1 = [kdock valueForKey:@"item1"];
+       
+       req = [NSFetchRequest fetchRequestWithEntityName:@"MasterShip"];
+       predicate = [NSPredicate predicateWithFormat:@"id = %@", [kdock valueForKey:@"created_ship_id"]];
+       [req setPredicate:predicate];
+       
+       array = [context executeFetchRequest:req error:NULL];
+       if([array count] == 0) {
+               NSLog(@"MasterShip data is invalid or ship_id is invalid.");
+               return;
+       }
+       
+       HMLocalDataStore *lds = [HMLocalDataStore oneTimeEditor];
+       NSManagedObjectContext *localStoreContext = [lds managedObjectContext];
+       HMKenzoHistory *newObejct = [NSEntityDescription insertNewObjectForEntityForName:@"KenzoHistory"
+                                                                                                                         inManagedObjectContext:localStoreContext];
+       newObejct.name = [array[0] valueForKey:@"name"];
+       newObejct.fuel = item1;
+       newObejct.bull = [kdock valueForKey:@"item2"];
+       newObejct.steel = [kdock valueForKey:@"item3"];
+       newObejct.bauxite = [kdock valueForKey:@"item4"];
+       newObejct.kaihatusizai = [kdock valueForKey:@"item5"];
+       newObejct.isLarge = [item1 compare:@1000] == NSOrderedDescending ? @YES : @NO;
+       newObejct.date = [NSDate date];
+}
+
+@end