@@ -29,9 +29,9 @@ use actix_web::{
2929    http:: header:: ContentType , 
3030    web:: { self ,  Json ,  Path } , 
3131} ; 
32- use  chrono:: Utc ; 
3332use  http:: StatusCode ; 
3433use  serde_json:: Error  as  SerdeError ; 
34+ use  ulid:: Ulid ; 
3535
3636pub  async  fn  list ( req :  HttpRequest )  -> Result < impl  Responder ,  FiltersError >  { 
3737    let  key =
@@ -51,7 +51,9 @@ pub async fn get(
5151        return  Ok ( ( web:: Json ( filter) ,  StatusCode :: OK ) ) ; 
5252    } 
5353
54-     Err ( FiltersError :: Metadata ( "Filter does not exist" ) ) 
54+     Err ( FiltersError :: Metadata ( 
55+         "Filter does not exist or user is not authorized" , 
56+     ) ) 
5557} 
5658
5759pub  async  fn  post ( 
@@ -60,7 +62,7 @@ pub async fn post(
6062)  -> Result < impl  Responder ,  FiltersError >  { 
6163    let  mut  user_id = get_user_from_request ( & req) ?; 
6264    user_id = get_hash ( & user_id) ; 
63-     let  filter_id = get_hash ( Utc :: now ( ) . timestamp_micros ( ) . to_string ( ) . as_str ( ) ) ; 
65+     let  filter_id = Ulid :: new ( ) . to_string ( ) ; 
6466    filter. filter_id  = Some ( filter_id. clone ( ) ) ; 
6567    filter. user_id  = Some ( user_id. clone ( ) ) ; 
6668    filter. version  = Some ( CURRENT_FILTER_VERSION . to_string ( ) ) ; 
@@ -80,7 +82,9 @@ pub async fn update(
8082    user_id = get_hash ( & user_id) ; 
8183    let  filter_id = filter_id. into_inner ( ) ; 
8284    if  FILTERS . get_filter ( & filter_id,  & user_id) . await . is_none ( )  { 
83-         return  Err ( FiltersError :: Metadata ( "Filter does not exist" ) ) ; 
85+         return  Err ( FiltersError :: Metadata ( 
86+             "Filter does not exist or user is not authorized" , 
87+         ) ) ; 
8488    } 
8589    filter. filter_id  = Some ( filter_id. clone ( ) ) ; 
8690    filter. user_id  = Some ( user_id. clone ( ) ) ; 
@@ -102,7 +106,9 @@ pub async fn delete(
102106    let  filter = FILTERS 
103107        . get_filter ( & filter_id,  & user_id) 
104108        . await 
105-         . ok_or ( FiltersError :: Metadata ( "Filter does not exist" ) ) ?; 
109+         . ok_or ( FiltersError :: Metadata ( 
110+             "Filter does not exist or user is not authorized" , 
111+         ) ) ?; 
106112
107113    PARSEABLE . metastore . delete_filter ( & filter) . await ?; 
108114    FILTERS . delete_filter ( & filter_id) . await ; 
0 commit comments