@@ -3,46 +3,53 @@ import { obp_requests } from "$lib/obp/requests";
33import { error } from "@sveltejs/kit" ;
44import type { OBPConsumer } from "$lib/obp/types" ;
55import type { RequestEvent } from "@sveltejs/kit" ;
6+ import { SessionOAuthHelper } from "$lib/oauth/sessionHelper" ;
67
7- const logger = createLogger ( "UserConsumersServer " ) ;
8+ const logger = createLogger ( "ConsumersServer " ) ;
89
910export async function load ( event : RequestEvent ) {
10- const token = event . locals . session . data . oauth ?. access_token ;
11- if ( ! token ) {
12- error ( 401 , {
13- message : "Unauthorized: No access token found in session." ,
14- } ) ;
11+ const session = event . locals . session ;
12+
13+ if ( ! session ?. data ?. user ) {
14+ throw error ( 401 , "Unauthorized" ) ;
1515 }
1616
17- let consumersResponse : { consumers : OBPConsumer [ ] } | undefined = undefined ;
17+ // Get the OAuth session data
18+ const sessionOAuth = SessionOAuthHelper . getSessionOAuth ( session ) ;
19+ const accessToken = sessionOAuth ?. accessToken ;
1820
19- try {
20- consumersResponse = await obp_requests . get (
21- "/obp/v6.0.0/management/users/current/consumers" ,
22- token ,
23- ) ;
24- logger . debug (
25- `Retrieved ${ consumersResponse ?. consumers ?. length || 0 } consumers` ,
26- ) ;
27- } catch ( e ) {
28- logger . error ( "Error fetching consumers:" , e ) ;
29- error ( 500 , {
30- message :
31- "Could not fetch consumers at this time. Please try again later." ,
32- } ) ;
21+ if ( ! accessToken ) {
22+ logger . warn ( "No access token available for consumers API calls" ) ;
23+ return {
24+ consumers : [ ] ,
25+ userEntitlements : [ ] ,
26+ requiredRoles : [ { role : "CanGetConsumers" } ] ,
27+ hasApiAccess : false ,
28+ error : "No API access token available" ,
29+ } ;
3330 }
3431
35- if ( ! consumersResponse || ! consumersResponse . consumers ) {
36- error ( 500 , {
37- message :
38- "Could not fetch consumers at this time. Please try again later." ,
39- } ) ;
40- }
32+ // Get user entitlements from session for role checking
33+ const userEntitlements = ( session . data . user as any ) ?. entitlements ?. list || [ ] ;
34+ const requiredRoles = [ { role : "CanGetConsumers" } ] ;
4135
42- const consumers = consumersResponse . consumers ;
36+ let consumers : OBPConsumer [ ] = [ ] ;
37+ let errorMessage : string | null = null ;
4338
44- // Log first consumer for debugging
45- logger . debug ( `Total consumers after processing: ${ consumers . length } ` ) ;
39+ try {
40+ logger . info ( "=== GET ALL CONSUMERS API CALL ===" ) ;
41+ const endpoint = `/obp/v6.0.0/management/consumers` ;
42+ logger . info ( `Request: ${ endpoint } ` ) ;
43+
44+ const consumersResponse = await obp_requests . get ( endpoint , accessToken ) ;
45+
46+ consumers = consumersResponse ?. consumers || [ ] ;
47+ logger . info ( `Response: ${ consumers . length } consumers` ) ;
48+ } catch ( e : any ) {
49+ logger . error ( "Error fetching consumers:" , e ) ;
50+ errorMessage =
51+ e ?. message || "Could not fetch consumers. Please try again later." ;
52+ }
4653
4754 // Sort consumers by created date, most recent first
4855 consumers . sort ( ( a : OBPConsumer , b : OBPConsumer ) => {
@@ -53,5 +60,9 @@ export async function load(event: RequestEvent) {
5360
5461 return {
5562 consumers,
63+ userEntitlements,
64+ requiredRoles,
65+ hasApiAccess : true ,
66+ error : errorMessage ,
5667 } ;
5768}
0 commit comments