@@ -75,15 +75,21 @@ func (a *ApiHandler) GetEvents(w http.ResponseWriter, r *http.Request, params oa
7575 if err == nil && a .TenantFilter (& tran , params .XOkapiTenant , params .RequesterSymbol ) {
7676 eventList , err = a .eventRepo .GetIllTransactionEvents (ctx , tran .ID )
7777 }
78- } else if a .tenantToSymbol == "" && params .IllTransactionId != nil {
79- eventList , err = a .eventRepo .GetIllTransactionEvents (ctx , * params .IllTransactionId )
8078 } else if a .tenantToSymbol == "" {
81- eventList , err = a .eventRepo .ListEvents (ctx )
79+ if params .IllTransactionId != nil {
80+ eventList , err = a .eventRepo .GetIllTransactionEvents (ctx , * params .IllTransactionId )
81+ } else {
82+ eventList , err = a .eventRepo .ListEvents (ctx )
83+ }
8284 }
8385 if err != nil && ! errors .Is (err , pgx .ErrNoRows ) {
8486 addInternalError (ctx , w , err )
8587 return
8688 }
89+ if len (eventList ) == 0 && a .tenantToSymbol != "" {
90+ addForbiddenError (ctx , w )
91+ return
92+ }
8793 resp := []oapi.Event {}
8894 for _ , event := range eventList {
8995 resp = append (resp , toApiEvent (event ))
@@ -108,7 +114,7 @@ func (a *ApiHandler) GetIllTransactions(w http.ResponseWriter, r *http.Request,
108114 if a .TenantFilter (& tran , params .XOkapiTenant , params .RequesterSymbol ) {
109115 resp = append (resp , toApiIllTransaction (r , tran ))
110116 }
111- } else {
117+ } else if a . tenantToSymbol == "" {
112118 trans , err := a .illRepo .ListIllTransactions (ctx )
113119 if err != nil {
114120 addInternalError (ctx , w , err )
@@ -120,6 +126,10 @@ func (a *ApiHandler) GetIllTransactions(w http.ResponseWriter, r *http.Request,
120126 }
121127 }
122128 }
129+ if len (resp ) == 0 && a .tenantToSymbol != "" {
130+ addForbiddenError (ctx , w )
131+ return
132+ }
123133 writeJsonResponse (w , resp )
124134}
125135
@@ -128,18 +138,16 @@ func (a *ApiHandler) GetIllTransactionsId(w http.ResponseWriter, r *http.Request
128138 Other : map [string ]string {"method" : "GetIllTransactionsId" , "id" : id },
129139 })
130140 trans , err := a .illRepo .GetIllTransactionById (ctx , id )
131- if err != nil {
132- if errors .Is (err , pgx .ErrNoRows ) {
133- addNotFoundError (w )
134- return
135- } else {
136- addInternalError (ctx , w , err )
141+ if err != nil && ! errors .Is (err , pgx .ErrNoRows ) {
142+ addInternalError (ctx , w , err )
143+ return
144+ }
145+ if err != nil || ! a .TenantFilter (& trans , params .XOkapiTenant , params .RequesterSymbol ) {
146+ if a .tenantToSymbol != "" {
147+ addForbiddenError (ctx , w )
137148 return
138149 }
139- }
140- if ! a .TenantFilter (& trans , params .XOkapiTenant , params .RequesterSymbol ) {
141150 addNotFoundError (w )
142- return
143151 }
144152 writeJsonResponse (w , toApiIllTransaction (r , trans ))
145153}
@@ -496,15 +504,21 @@ func (a *ApiHandler) GetLocatedSuppliers(w http.ResponseWriter, r *http.Request,
496504 if err == nil && a .TenantFilter (& tran , params .XOkapiTenant , params .RequesterSymbol ) {
497505 supList , err = a .illRepo .GetLocatedSupplierByIllTransition (ctx , tran .ID )
498506 }
499- } else if a .tenantToSymbol == "" && params .IllTransactionId != nil {
500- supList , err = a .illRepo .GetLocatedSupplierByIllTransition (ctx , * params .IllTransactionId )
501507 } else if a .tenantToSymbol == "" {
502- supList , err = a .illRepo .ListLocatedSuppliers (ctx )
508+ if params .IllTransactionId != nil {
509+ supList , err = a .illRepo .GetLocatedSupplierByIllTransition (ctx , * params .IllTransactionId )
510+ } else {
511+ supList , err = a .illRepo .ListLocatedSuppliers (ctx )
512+ }
503513 }
504514 if err != nil && ! errors .Is (err , pgx .ErrNoRows ) {
505515 addInternalError (ctx , w , err )
506516 return
507517 }
518+ if len (supList ) == 0 && a .tenantToSymbol != "" {
519+ addForbiddenError (ctx , w )
520+ return
521+ }
508522 resp := []oapi.LocatedSupplier {}
509523 for _ , supplier := range supList {
510524 resp = append (resp , toApiLocatedSupplier (r , supplier ))
@@ -544,6 +558,16 @@ func addInternalError(ctx extctx.ExtendedContext, w http.ResponseWriter, err err
544558 _ = json .NewEncoder (w ).Encode (resp )
545559}
546560
561+ func addForbiddenError (ctx extctx.ExtendedContext , w http.ResponseWriter ) {
562+ resp := ErrorMessage {
563+ Error : "forbidden" ,
564+ }
565+ ctx .Logger ().Error ("error serving api request" , "error" , "forbidden" )
566+ w .Header ().Set ("Content-Type" , "application/json" )
567+ w .WriteHeader (http .StatusForbidden )
568+ _ = json .NewEncoder (w ).Encode (resp )
569+ }
570+
547571func addBadRequestError (ctx extctx.ExtendedContext , w http.ResponseWriter , err error ) {
548572 resp := ErrorMessage {
549573 Error : err .Error (),
0 commit comments