@@ -12,8 +12,10 @@ use trusted_server_core::constants::{
1212} ;
1313use trusted_server_core:: ec:: admin:: handle_register_partner;
1414use trusted_server_core:: ec:: finalize:: ec_finalize_response;
15+ use trusted_server_core:: ec:: identify:: { cors_preflight_identify, handle_identify} ;
1516use trusted_server_core:: ec:: kv:: KvIdentityGraph ;
1617use trusted_server_core:: ec:: partner:: PartnerStore ;
18+ use trusted_server_core:: ec:: sync_pixel:: handle_sync;
1719use trusted_server_core:: ec:: EcContext ;
1820use trusted_server_core:: error:: TrustedServerError ;
1921use trusted_server_core:: geo:: GeoInfo ;
@@ -137,6 +139,18 @@ async fn route_request(
137139 require_partner_store ( settings) . and_then ( |store| handle_register_partner ( & store, req) )
138140 }
139141
142+ ( Method :: GET , "/sync" ) => require_identity_graph ( settings) . and_then ( |kv| {
143+ require_partner_store ( settings) . and_then ( |partner_store| {
144+ handle_sync ( settings, & kv, & partner_store, & req, & mut ec_context)
145+ } )
146+ } ) ,
147+ ( Method :: GET , "/identify" ) => require_identity_graph ( settings) . and_then ( |kv| {
148+ require_partner_store ( settings) . and_then ( |partner_store| {
149+ handle_identify ( settings, & kv, & partner_store, & req, & ec_context)
150+ } )
151+ } ) ,
152+ ( Method :: OPTIONS , "/identify" ) => cors_preflight_identify ( settings, & req) ,
153+
140154 // Unified auction endpoint (returns creative HTML inline)
141155 ( Method :: POST , "/auction" ) => {
142156 handle_auction ( settings, orchestrator, kv_graph. as_ref ( ) , & ec_context, req) . await
@@ -268,3 +282,17 @@ fn require_partner_store(settings: &Settings) -> Result<PartnerStore, Report<Tru
268282 } ) ?;
269283 Ok ( PartnerStore :: new ( store_name) )
270284}
285+
286+ /// Constructs a `KvIdentityGraph` from settings, or returns 503 if the
287+ /// `ec_store` config is not set.
288+ fn require_identity_graph (
289+ settings : & Settings ,
290+ ) -> Result < KvIdentityGraph , Report < TrustedServerError > > {
291+ let store_name = settings. ec . ec_store . as_deref ( ) . ok_or_else ( || {
292+ Report :: new ( TrustedServerError :: KvStore {
293+ store_name : "ec.ec_store" . to_owned ( ) ,
294+ message : "ec.ec_store is not configured" . to_owned ( ) ,
295+ } )
296+ } ) ?;
297+ Ok ( KvIdentityGraph :: new ( store_name) )
298+ }
0 commit comments