@@ -19,29 +19,33 @@ pub struct Output {
19
19
20
20
#[ operation]
21
21
pub async fn build_resolve_for_tags ( ctx : & OperationCtx , input : & Input ) -> GlobalResult < Output > {
22
- let tags_str = serde_json :: to_string ( & input. tags ) ? ;
22
+ let tags_str = unwrap ! ( cjson :: to_string( & input. tags) ) ;
23
23
24
24
let builds = if input. bypass_cache {
25
25
get_builds ( & ctx, input. env_id , & tags_str) . await ?
26
26
} else {
27
27
unwrap ! (
28
28
ctx. cache( )
29
29
. ttl( util:: duration:: seconds( 15 ) )
30
- . fetch_one_json( "build" , tags_str . as_str ( ) , {
31
- let ctx = ctx . clone ( ) ;
32
- let tags_str = tags_str. clone ( ) ;
33
- move | mut cache , key| {
30
+ . fetch_one_json(
31
+ "build" ,
32
+ format! ( "{}:{}" , input . env_id , tags_str. as_str ( ) ) ,
33
+ {
34
34
let ctx = ctx. clone( ) ;
35
35
let tags_str = tags_str. clone( ) ;
36
- async move {
37
- let builds = get_builds( & ctx, input. env_id, & tags_str) . await ?;
36
+ move |mut cache, key| {
37
+ let ctx = ctx. clone( ) ;
38
+ let tags_str = tags_str. clone( ) ;
39
+ async move {
40
+ let builds = get_builds( & ctx, input. env_id, & tags_str) . await ?;
38
41
39
- cache. resolve( & key, builds) ;
42
+ cache. resolve( & key, builds) ;
40
43
41
- Ok ( cache)
44
+ Ok ( cache)
45
+ }
42
46
}
43
47
}
44
- } )
48
+ )
45
49
. await ?
46
50
)
47
51
} ;
0 commit comments