@@ -18,41 +18,29 @@ import Amplify
18
18
import amplify_core
19
19
20
20
struct FlutterListRequest {
21
- var options : StorageListRequest . Options ?
22
- init ( request: Dictionary < String , AnyObject > ) {
23
- self . options = setOptions ( request: request)
24
- }
25
21
26
- static func validate( request: Dictionary < String , AnyObject > ) throws {
27
- let validationErrorMessage = " List request malformed. "
28
- if !( request [ " path " ] is String ? ) {
29
- throw InvalidRequestError . storage ( comment: validationErrorMessage,
30
- suggestion: String ( format: ErrorMessages . missingAttribute, " path " ) )
31
- }
22
+ let options : StorageListRequest . Options
23
+
24
+ init ( request: [ String : Any ? ] ) {
25
+ self . options = FlutterListRequest . parseOptions ( request: request)
32
26
}
33
-
34
- private func setOptions( request: Dictionary < String , AnyObject > ) -> StorageListRequest . Options ? {
27
+
28
+ private static func parseOptions( request: [ String : Any ? ] ) -> StorageListRequest . Options {
29
+ var accessLevel = StorageAccessLevel . guest
30
+ var targetIdentityId : String ? = nil
31
+ let path = request [ " path " ] as? String
35
32
36
- if ( request [ " options " ] != nil || request [ " path " ] != nil ) {
37
- let requestOptions = request [ " options " ] as! Dictionary < String , AnyObject >
38
- //Default options
39
- var accessLevel = StorageAccessLevel . guest
40
- var targetIdentityId : String ? = nil
41
- let path : String ? = request [ " path " ] as! String ?
42
-
43
- for (key, value) in requestOptions {
44
- switch key {
45
- case " accessLevel " :
46
- accessLevel = StorageAccessLevel ( rawValue: value as! String ) ?? accessLevel
47
- case " targetIdentityId " :
48
- targetIdentityId = value as? String
49
- default :
50
- print ( " Received unexpected option: \( key) " )
51
- }
33
+ if let options = request [ " options " ] as? [ String : Any ? ] {
34
+ if let accessValueLevel = options [ " accessLevel " ] as? String ,
35
+ let storageAccessLevel = StorageAccessLevel ( rawValue: accessValueLevel) {
36
+ accessLevel = storageAccessLevel
52
37
}
53
- return StorageListRequest . Options ( accessLevel : accessLevel , targetIdentityId: targetIdentityId , path : path )
38
+ targetIdentityId = options [ " targetIdentityId " ] as? String
54
39
}
55
- return nil
40
+
41
+ return StorageListRequest . Options ( accessLevel: accessLevel,
42
+ targetIdentityId: targetIdentityId,
43
+ path: path)
56
44
}
57
45
58
46
}
0 commit comments