Skip to content

Commit e384d50

Browse files
committed
(feat: storage)
* adding storage * update changelog * sample _hooks
1 parent 30f6ab3 commit e384d50

File tree

11 files changed

+71
-18
lines changed

11 files changed

+71
-18
lines changed

CHANGELOG.md

+6-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
1+
## [0.1.0] - 09/21/2020
2+
* securing sotrages
3+
* change persistant storage
4+
* changing config attributes for storage
5+
* minor fixes
6+
17
## [0.0.4+3] - 09/15/2020
28
* added missing initial value field in Feature
3-
## [0.1.0] - 09/20/2020
4-
* adding new type of persistant storage
5-
* changing config attributes for storage
69

710
## [0.0.4+2] - 09/12/2020
811
* dependency package

_hooks/post-merge

Whitespace-only changes.

_hooks/pre-commit

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
#!/usr/bin/env bash
2+
printf "\e[33;1m%s\e[0m\n" 'Running the Flutter formatter'
3+
flutter format .
4+
printf "\e[33;1m%s\e[0m\n" 'Finished running the Flutter formatter'

_hooks/pre-push

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#!/usr/bin/env bash
2+
if [[ `git status --porcelain` ]]; then
3+
printf "\e[31;1m%s\e[0m\n" 'This script needs to run against committed code only. Please commit or stash you changes.'
4+
exit 1
5+
fi
6+
printf "\e[33;1m%s\e[0m\n" 'Running the Flutter analyzer'
7+
flutter analyze
8+
if [ $? -ne 0 ]; then
9+
printf "\e[31;1m%s\e[0m\n" 'Flutter analyzer error'
10+
exit 1
11+
fi
12+
printf "\e[33;1m%s\e[0m\n" 'Finished running the Flutter analyzer'
13+
printf "\e[33;1m%s\e[0m\n" 'Running unit tests'
14+
flutter test
15+
if [ $? -ne 0 ]; then
16+
printf "\e[31;1m%s\e[0m\n" 'Unit tests error'
17+
exit 1
18+
fi
19+
printf "\e[33;1m%s\e[0m\n" 'Finished running unit tests'

example/ios/Podfile.lock

+6
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,14 @@ PODS:
44
- Flutter
55
- path_provider (0.0.1):
66
- Flutter
7+
- shared_preferences (0.0.1):
8+
- Flutter
79

810
DEPENDENCIES:
911
- Flutter (from `Flutter`)
1012
- hexcolor (from `.symlinks/plugins/hexcolor/ios`)
1113
- path_provider (from `.symlinks/plugins/path_provider/ios`)
14+
- shared_preferences (from `.symlinks/plugins/shared_preferences/ios`)
1215

1316
EXTERNAL SOURCES:
1417
Flutter:
@@ -17,11 +20,14 @@ EXTERNAL SOURCES:
1720
:path: ".symlinks/plugins/hexcolor/ios"
1821
path_provider:
1922
:path: ".symlinks/plugins/path_provider/ios"
23+
shared_preferences:
24+
:path: ".symlinks/plugins/shared_preferences/ios"
2025

2126
SPEC CHECKSUMS:
2227
Flutter: 0e3d915762c693b495b44d77113d4970485de6ec
2328
hexcolor: fdfb9c4258ad96e949c2dbcdf790a62194b8aa89
2429
path_provider: abfe2b5c733d04e238b0d8691db0cfd63a27a93c
30+
shared_preferences: af6bfa751691cdc24be3045c43ec037377ada40d
2531

2632
PODFILE CHECKSUM: aafe91acc616949ddb318b77800a7f51bffa2a4c
2733

example/ios/Runner.xcodeproj/project.pbxproj

+2
Original file line numberDiff line numberDiff line change
@@ -258,12 +258,14 @@
258258
"${PODS_ROOT}/../Flutter/Flutter.framework",
259259
"${BUILT_PRODUCTS_DIR}/hexcolor/hexcolor.framework",
260260
"${BUILT_PRODUCTS_DIR}/path_provider/path_provider.framework",
261+
"${BUILT_PRODUCTS_DIR}/shared_preferences/shared_preferences.framework",
261262
);
262263
name = "[CP] Embed Pods Frameworks";
263264
outputPaths = (
264265
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Flutter.framework",
265266
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hexcolor.framework",
266267
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/path_provider.framework",
268+
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/shared_preferences.framework",
267269
);
268270
runOnlyForDeploymentPostprocessing = 0;
269271
shellPath = /bin/sh;

example/pubspec.lock

+7
Original file line numberDiff line numberDiff line change
@@ -275,6 +275,13 @@ packages:
275275
url: "https://pub.dartlang.org"
276276
source: hosted
277277
version: "4.3.2+2"
278+
rxdart:
279+
dependency: transitive
280+
description:
281+
name: rxdart
282+
url: "https://pub.dartlang.org"
283+
source: hosted
284+
version: "0.24.1"
278285
sembast:
279286
dependency: transitive
280287
description:

lib/src/bullet_train_client.dart

+2
Original file line numberDiff line numberDiff line change
@@ -220,4 +220,6 @@ class BulletTrainClient {
220220
}
221221

222222
Future<bool> clearStore() async => storage.clear();
223+
224+
Stream<Flag> listen(String key) {}
223225
}

lib/src/store/storage_provider.dart

+17-15
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
import 'package:flutter/foundation.dart';
1+
import 'dart:async';
22
import '../../bullet_train.dart';
33
import 'tools/security.dart';
44

5-
class StorageProvider extends CrudStore with SecureStore {
5+
class StorageProvider with SecureStore {
66
StorageSecurity _storageSecurity;
77
final ExtendCrudStore _store;
88
StorageProvider(this._store, {String password}) {
@@ -14,36 +14,38 @@ class StorageProvider extends CrudStore with SecureStore {
1414
Future<String> getSecuredValue(String key) async {
1515
var item = await _store.read(key);
1616
var decrypted = _storageSecurity.decrypt(item);
17-
debugPrint('_getString: $key : stored: $item decrypted: [$decrypted]');
1817
return decrypted;
1918
}
2019

2120
@override
2221
Future<bool> setSecuredValue(String key, String value,
2322
{bool update = false}) async {
2423
var encrypted = _storageSecurity.encrypt(value);
25-
debugPrint(
26-
' ${update ? '_updateString' : '_setString'}: $key : store: $value encrypted: [$encrypted]');
2724
if (update) {
2825
return await _store.update(key, encrypted);
2926
}
3027
return await _store.create(key, encrypted);
3128
}
3229

33-
@override
34-
Future<bool> create(String key, String item) => setSecuredValue(key, item);
30+
Future<bool> create(String key, Flag item) async {
31+
var result = setSecuredValue(key, item.toJson());
32+
return result;
33+
}
3534

36-
@override
3735
Future<bool> delete(String key) => _store.delete(key);
3836

39-
@override
40-
Future<String> read(String key) => getSecuredValue(key);
37+
Future<Flag> read(String key) async {
38+
var decrypted = await getSecuredValue(key);
39+
return Flag.fromJson(decrypted);
40+
}
4141

42-
@override
43-
Future<bool> update(String key, String item) =>
44-
setSecuredValue(key, item, update: true);
42+
Future<bool> update(String key, Flag item) =>
43+
setSecuredValue(key, item.toJson(), update: true);
4544

46-
Future<bool> clear() => _store.clear();
45+
Future<bool> clear() async {
46+
await _store.clear();
47+
return true;
48+
}
4749

4850
Future<List<Flag>> getAll() async {
4951
var list = await _store.getAll();
@@ -55,7 +57,7 @@ class StorageProvider extends CrudStore with SecureStore {
5557

5658
Future<bool> saveAll(List<Flag> items) async {
5759
for (var item in items) {
58-
await create(item.key, item.toJson());
60+
await create(item.key, item);
5961
}
6062
return true;
6163
}

pubspec.lock

+7
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,13 @@ packages:
261261
url: "https://pub.dartlang.org"
262262
source: hosted
263263
version: "3.0.13"
264+
rxdart:
265+
dependency: "direct main"
266+
description:
267+
name: rxdart
268+
url: "https://pub.dartlang.org"
269+
source: hosted
270+
version: "0.24.1"
264271
sembast:
265272
dependency: "direct main"
266273
description:

pubspec.yaml

+1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ dependencies:
2020
shared_preferences: ^0.5.10
2121
encrypt: ^4.0.3
2222
crypto: '>=2.0.6'
23+
rxdart: ^0.24.1
2324
dev_dependencies:
2425
flutter_test:
2526
sdk: flutter

0 commit comments

Comments
 (0)