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
|
||||
|
||||
@property(nonatomic, strong) id<FlipperConnection> connection;
|
||||
@property(nonatomic, strong, readonly)
|
||||
NSArray<id<DatabaseDriver>>* databaseDrivers;
|
||||
|
||||
- (instancetype)initWithDatabaseDrivers:
|
||||
(NSArray<id<DatabaseDriver>>*)databaseDrivers;
|
||||
- (instancetype)init;
|
||||
- (void)setConnection:(id<FlipperConnection>)connection;
|
||||
- (BOOL)isConnected;
|
||||
- (void)addDatabaseDriver:(id<DatabaseDriver>)driver;
|
||||
- (void)removeDatabaseDriver:(id<DatabaseDriver>)driver;
|
||||
|
||||
@end
|
||||
|
||||
@@ -27,18 +27,18 @@
|
||||
databaseDescriptorHolders;
|
||||
@property(nonatomic, strong)
|
||||
NSMutableSet<DatabaseDescriptorHolder*>* databaseDescriptorHolderSet;
|
||||
@property(nonatomic, strong) NSMutableSet<id<DatabaseDriver>>* databaseDrivers;
|
||||
|
||||
@end
|
||||
|
||||
@implementation DatabasesManager
|
||||
|
||||
- (instancetype)initWithDatabaseDrivers:
|
||||
(NSArray<id<DatabaseDriver>>*)databaseDrivers {
|
||||
- (instancetype)init {
|
||||
self = [super init];
|
||||
if (self) {
|
||||
_databaseDrivers = [databaseDrivers copy];
|
||||
_databaseDescriptorHolders = [[NSMutableDictionary alloc] init];
|
||||
_databaseDescriptorHolderSet = [[NSMutableSet alloc] init];
|
||||
_databaseDrivers = [NSMutableSet new];
|
||||
_databaseDescriptorHolders = [NSMutableDictionary new];
|
||||
_databaseDescriptorHolderSet = [NSMutableSet new];
|
||||
}
|
||||
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 {
|
||||
NSDictionary* errorResponse =
|
||||
[ObjectMapper errorWithCode:DatabasesErrorCodesInvalidRequest
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
|
||||
#import <FlipperKit/FlipperPlugin.h>
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "DatabaseDriver.h"
|
||||
|
||||
@class DatabasesManager;
|
||||
|
||||
@@ -15,5 +16,7 @@
|
||||
|
||||
- (instancetype)init NS_UNAVAILABLE;
|
||||
+ (instancetype)sharedInstance;
|
||||
- (void)addDatabaseDriver:(id<DatabaseDriver>)driver;
|
||||
- (void)removeDatabaseDriver:(id<DatabaseDriver>)driver;
|
||||
|
||||
@end
|
||||
|
||||
@@ -23,10 +23,7 @@
|
||||
|
||||
- (instancetype)init {
|
||||
if (self = [super init]) {
|
||||
NSArray<id<DatabaseDriver>>* databaseDrivers =
|
||||
@[ [MockDatabaseDriver new] ];
|
||||
_databasesManager =
|
||||
[[DatabasesManager alloc] initWithDatabaseDrivers:databaseDrivers];
|
||||
_databasesManager = [DatabasesManager new];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
@@ -59,6 +56,14 @@
|
||||
return NO;
|
||||
}
|
||||
|
||||
- (void)addDatabaseDriver:(id<DatabaseDriver>)driver {
|
||||
[self.databasesManager addDatabaseDriver:driver];
|
||||
}
|
||||
|
||||
- (void)removeDatabaseDriver:(id<DatabaseDriver>)driver {
|
||||
[self.databasesManager addDatabaseDriver:driver];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
#endif
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
#import <FlipperKitDatabasesPlugin/DatabaseDriver.h>
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "DatabaseDriver.h"
|
||||
|
||||
@interface MockDatabaseDriver : NSObject<DatabaseDriver>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user