1- import { NextResponse } from "next/server" ;
1+ import { NextRequest , NextResponse } from "next/server" ;
22import { stringify } from "superjson" ;
33
4- import { getFeedsCached } from ' ../../../../../server /pyth/get-feeds' ;
5- import { Cluster } from "../../../../../services/pyth" ;
4+ import { Cluster , parseCluster } from " ../../../../../services /pyth" ;
5+ import { getFeeds } from "../../../../../services/pyth/get-feeds " ;
66
7- export const GET = async ( request : Request , { params } : { params : Promise < { publisher : string } > } ) => {
7+ export const GET = async (
8+ request : NextRequest ,
9+ { params } : { params : Promise < { publisher : string } > } ,
10+ ) => {
811 const { publisher } = await params ;
9- const { searchParams } = new URL ( request . url ) ;
10- const cluster = Number . parseInt ( searchParams . get ( "cluster" ) ?? Cluster . Pythnet . toString ( ) ) as Cluster ;
12+ const clusterName = request . nextUrl . searchParams . get ( "cluster" ) ;
1113
12- // check if cluster is valid
13- if ( cluster && ! Object . values ( Cluster ) . includes ( cluster ) ) {
14- return NextResponse . json ( { error : "Invalid cluster" } , { status : 400 } ) ;
14+ const cluster =
15+ clusterName === null ? Cluster . Pythnet : parseCluster ( clusterName ) ;
16+
17+ if ( cluster === undefined ) {
18+ return NextResponse . json ( { error : "Invalid Cluster" } , { status : 400 } ) ;
1519 }
1620
1721 if ( ! publisher ) {
18- return NextResponse . json ( { error : "Publisher is required" } , { status : 400 } ) ;
19- }
22+ return NextResponse . json (
23+ { error : "Publisher is required" } ,
24+ { status : 400 } ,
25+ ) ;
26+ }
27+
28+ const feeds = await getFeeds ( cluster ) ;
2029
21- const feeds = await getFeedsCached ( cluster ) ;
30+ const filteredFeeds = feeds . filter ( ( feed ) =>
31+ feed . price . priceComponents . some ( ( c ) => c . publisher === publisher ) ,
32+ ) ;
2233
23- const filteredFeeds = feeds . filter ( ( feed ) => feed . price . priceComponents . some ( ( c ) => c . publisher === publisher ) ) ;
24-
2534 return new Response ( stringify ( filteredFeeds ) , {
2635 headers : {
27- ' Content-Type' : ' application/json' ,
36+ " Content-Type" : " application/json" ,
2837 } ,
2938 } ) ;
30- } ;
39+ } ;
0 commit comments