11import { Controller , Get , Request , Route , Security , Tags } from "tsoa" ;
2- import { KVCache } from "../../lib/cache/kvCache" ;
32import { err , ok , Result } from "../../packages/common/result" ;
43import { type JawnAuthenticatedRequest } from "../../types/request" ;
5- import { cacheResultCustom } from "../../utils/cacheResult" ;
64import { dbQueryClickhouse } from "../../lib/shared/db/dbExecute" ;
75
8- const kvCache = new KVCache ( 12 * 60 * 60 * 1000 ) ; // 12 hours
9-
106export interface ProviderMetric {
117 provider : string ;
128 total_requests : number ;
@@ -20,25 +16,18 @@ export class ProviderController extends Controller {
2016 public async getProviders (
2117 @Request ( ) request : JawnAuthenticatedRequest
2218 ) : Promise < Result < ProviderMetric [ ] , string > > {
23- const result = await cacheResultCustom (
24- "v1/public/providers" + JSON . stringify ( request . authParams ) ,
25- async ( ) => {
26- const result = await dbQueryClickhouse < ProviderMetric > (
27- `
28- SELECT
29- provider,
30- count(DISTINCT request_id) as total_requests
31- FROM request_response_rmt
32- WHERE organization_id = {val_0: UUID}
33- GROUP BY provider
34- ORDER BY total_requests DESC
35- LIMIT 1000
36- ` ,
37- [ request . authParams . organizationId ]
38- ) ;
39- return ok ( result ) ;
40- } ,
41- kvCache
19+ const result = await dbQueryClickhouse < ProviderMetric > (
20+ `
21+ SELECT
22+ provider,
23+ count(DISTINCT request_id) as total_requests
24+ FROM request_response_rmt
25+ WHERE organization_id = {val_0: UUID}
26+ GROUP BY provider
27+ ORDER BY total_requests DESC
28+ LIMIT 1000
29+ ` ,
30+ [ request . authParams . organizationId ]
4231 ) ;
4332
4433 if ( result . error || ! result . data ) {
@@ -48,7 +37,7 @@ export class ProviderController extends Controller {
4837 ) ;
4938 } else {
5039 this . setStatus ( 200 ) ;
51- return ok ( result . data . data ?? [ ] ) ;
40+ return ok ( result . data ?? [ ] ) ;
5241 }
5342 }
5443}
0 commit comments