@@ -121,6 +121,7 @@ pub fn query(deps: Deps, _env: Env, msg: QueryMsg) -> StdResult<Binary> {
121
121
match msg {
122
122
QueryMsg :: Bucket { } => to_binary ( & query:: bucket ( deps) ?) ,
123
123
QueryMsg :: Object { id } => to_binary ( & query:: object ( deps, id) ?) ,
124
+ QueryMsg :: ObjectData { id } => to_binary ( & query:: data ( deps, id) ?) ,
124
125
_ => Err ( StdError :: generic_err ( "Not implemented" ) ) ,
125
126
}
126
127
}
@@ -154,6 +155,10 @@ pub mod query {
154
155
. is_some ( ) ,
155
156
} )
156
157
}
158
+
159
+ pub fn data ( deps : Deps , id : ObjectId ) -> StdResult < Binary > {
160
+ DATA . load ( deps. storage , id) . map ( Binary :: from)
161
+ }
157
162
}
158
163
159
164
#[ cfg( test) ]
@@ -458,4 +463,41 @@ mod tests {
458
463
assert ! ( !res. is_pinned) ;
459
464
assert_eq ! ( res. size. u128 ( ) , 4u128 ) ;
460
465
}
466
+
467
+ #[ test]
468
+ fn object_data ( ) {
469
+ let mut deps = mock_dependencies ( ) ;
470
+ let info = mock_info ( "creator" , & [ ] ) ;
471
+
472
+ let msg = InstantiateMsg {
473
+ bucket : String :: from ( "test" ) ,
474
+ limits : BucketLimits :: new ( ) ,
475
+ } ;
476
+ instantiate ( deps. as_mut ( ) , mock_env ( ) , info. clone ( ) , msg) . unwrap ( ) ;
477
+
478
+ match query:: object (
479
+ deps. as_ref ( ) ,
480
+ ObjectId :: from ( "315d0d9ab12c5f8884100055f79de50b72db4bd2c9bfd3df049d89640fed1fa6" ) ,
481
+ )
482
+ . err ( )
483
+ . unwrap ( )
484
+ {
485
+ NotFound { .. } => ( ) ,
486
+ _ => panic ! ( "assertion failed" ) ,
487
+ }
488
+
489
+ let data = general_purpose:: STANDARD . encode ( "okp4" ) ;
490
+ let msg = ExecuteMsg :: StoreObject {
491
+ data : Binary :: from_base64 ( data. as_str ( ) ) . unwrap ( ) ,
492
+ pin : false ,
493
+ } ;
494
+ execute ( deps. as_mut ( ) , mock_env ( ) , info, msg) . unwrap ( ) ;
495
+
496
+ let res = query:: data (
497
+ deps. as_ref ( ) ,
498
+ ObjectId :: from ( "315d0d9ab12c5f8884100055f79de50b72db4bd2c9bfd3df049d89640fed1fa6" ) ,
499
+ )
500
+ . unwrap ( ) ;
501
+ assert_eq ! ( res, Binary :: from_base64( data. as_str( ) ) . unwrap( ) ) ;
502
+ }
461
503
}
0 commit comments