Refactor FlipperKitDatabasePlugin to accept multiple database drivers.
Reviewed By: lblasa Differential Revision: D48316901 fbshipit-source-id: 0eb7b93f53ce115a0a031a58ecef3db963b35f09
This commit is contained in:
committed by
Facebook GitHub Bot
parent
661ed9eb44
commit
2f5f4911e5
@@ -14,12 +14,11 @@
|
|||||||
@interface DatabasesManager : NSObject
|
@interface DatabasesManager : NSObject
|
||||||
|
|
||||||
@property(nonatomic, strong) id<FlipperConnection> connection;
|
@property(nonatomic, strong) id<FlipperConnection> connection;
|
||||||
@property(nonatomic, strong, readonly)
|
|
||||||
NSArray<id<DatabaseDriver>>* databaseDrivers;
|
|
||||||
|
|
||||||
- (instancetype)initWithDatabaseDrivers:
|
- (instancetype)init;
|
||||||
(NSArray<id<DatabaseDriver>>*)databaseDrivers;
|
|
||||||
- (void)setConnection:(id<FlipperConnection>)connection;
|
- (void)setConnection:(id<FlipperConnection>)connection;
|
||||||
- (BOOL)isConnected;
|
- (BOOL)isConnected;
|
||||||
|
- (void)addDatabaseDriver:(id<DatabaseDriver>)driver;
|
||||||
|
- (void)removeDatabaseDriver:(id<DatabaseDriver>)driver;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|||||||
@@ -27,18 +27,18 @@
|
|||||||
databaseDescriptorHolders;
|
databaseDescriptorHolders;
|
||||||
@property(nonatomic, strong)
|
@property(nonatomic, strong)
|
||||||
NSMutableSet<DatabaseDescriptorHolder*>* databaseDescriptorHolderSet;
|
NSMutableSet<DatabaseDescriptorHolder*>* databaseDescriptorHolderSet;
|
||||||
|
@property(nonatomic, strong) NSMutableSet<id<DatabaseDriver>>* databaseDrivers;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@implementation DatabasesManager
|
@implementation DatabasesManager
|
||||||
|
|
||||||
- (instancetype)initWithDatabaseDrivers:
|
- (instancetype)init {
|
||||||
(NSArray<id<DatabaseDriver>>*)databaseDrivers {
|
|
||||||
self = [super init];
|
self = [super init];
|
||||||
if (self) {
|
if (self) {
|
||||||
_databaseDrivers = [databaseDrivers copy];
|
_databaseDrivers = [NSMutableSet new];
|
||||||
_databaseDescriptorHolders = [[NSMutableDictionary alloc] init];
|
_databaseDescriptorHolders = [NSMutableDictionary new];
|
||||||
_databaseDescriptorHolderSet = [[NSMutableSet alloc] init];
|
_databaseDescriptorHolderSet = [NSMutableSet new];
|
||||||
}
|
}
|
||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
@@ -224,6 +224,20 @@
|
|||||||
}];
|
}];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (void)addDatabaseDriver:(id<DatabaseDriver>)driver {
|
||||||
|
if ([self.databaseDrivers containsObject:driver]) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
[self.databaseDrivers addObject:driver];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)removeDatabaseDriver:(id<DatabaseDriver>)driver {
|
||||||
|
if (![self.databaseDrivers containsObject:driver]) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
[self.databaseDrivers removeObject:driver];
|
||||||
|
}
|
||||||
|
|
||||||
+ (void)raiseInvalidRequestError:(id<FlipperResponder>)responder {
|
+ (void)raiseInvalidRequestError:(id<FlipperResponder>)responder {
|
||||||
NSDictionary* errorResponse =
|
NSDictionary* errorResponse =
|
||||||
[ObjectMapper errorWithCode:DatabasesErrorCodesInvalidRequest
|
[ObjectMapper errorWithCode:DatabasesErrorCodesInvalidRequest
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
|
|
||||||
#import <FlipperKit/FlipperPlugin.h>
|
#import <FlipperKit/FlipperPlugin.h>
|
||||||
#import <Foundation/Foundation.h>
|
#import <Foundation/Foundation.h>
|
||||||
|
#import "DatabaseDriver.h"
|
||||||
|
|
||||||
@class DatabasesManager;
|
@class DatabasesManager;
|
||||||
|
|
||||||
@@ -15,5 +16,7 @@
|
|||||||
|
|
||||||
- (instancetype)init NS_UNAVAILABLE;
|
- (instancetype)init NS_UNAVAILABLE;
|
||||||
+ (instancetype)sharedInstance;
|
+ (instancetype)sharedInstance;
|
||||||
|
- (void)addDatabaseDriver:(id<DatabaseDriver>)driver;
|
||||||
|
- (void)removeDatabaseDriver:(id<DatabaseDriver>)driver;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|||||||
@@ -23,10 +23,7 @@
|
|||||||
|
|
||||||
- (instancetype)init {
|
- (instancetype)init {
|
||||||
if (self = [super init]) {
|
if (self = [super init]) {
|
||||||
NSArray<id<DatabaseDriver>>* databaseDrivers =
|
_databasesManager = [DatabasesManager new];
|
||||||
@[ [MockDatabaseDriver new] ];
|
|
||||||
_databasesManager =
|
|
||||||
[[DatabasesManager alloc] initWithDatabaseDrivers:databaseDrivers];
|
|
||||||
}
|
}
|
||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
@@ -59,6 +56,14 @@
|
|||||||
return NO;
|
return NO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (void)addDatabaseDriver:(id<DatabaseDriver>)driver {
|
||||||
|
[self.databasesManager addDatabaseDriver:driver];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)removeDatabaseDriver:(id<DatabaseDriver>)driver {
|
||||||
|
[self.databasesManager addDatabaseDriver:driver];
|
||||||
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -5,8 +5,8 @@
|
|||||||
* LICENSE file in the root directory of this source tree.
|
* LICENSE file in the root directory of this source tree.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#import <FlipperKitDatabasesPlugin/DatabaseDriver.h>
|
||||||
#import <Foundation/Foundation.h>
|
#import <Foundation/Foundation.h>
|
||||||
#import "DatabaseDriver.h"
|
|
||||||
|
|
||||||
@interface MockDatabaseDriver : NSObject<DatabaseDriver>
|
@interface MockDatabaseDriver : NSObject<DatabaseDriver>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user