@@ -98,6 +98,7 @@ func (a *ApiHandler) Get(w http.ResponseWriter, r *http.Request) {
9898 index .Links .PeersLink = Link (r , Path (PEERS_PATH ), nil )
9999 index .Links .BorrowingRequestsLink = Link (r , Path (PATRON_REQUESTS_PATH ), Query ("side" , "borrowing" ))
100100 index .Links .LendingRequestsLink = Link (r , Path (PATRON_REQUESTS_PATH ), Query ("side" , "lending" ))
101+ index .Links .BatchActionsLink = Link (r , Path ("batch_actions" ), nil )
101102 WriteJsonResponse (w , index )
102103}
103104
@@ -109,29 +110,63 @@ func (a *ApiHandler) GetEvents(w http.ResponseWriter, r *http.Request, params oa
109110 ctx := common .CreateExtCtxWithArgs (r .Context (), & common.LoggerArgs {
110111 Other : logParams ,
111112 })
113+ if params .IllTransactionId != nil && events .IsSyntheticID (* params .IllTransactionId ) {
114+ AddBadRequestError (ctx , w , errors .New ("synthetic IDs are not allowed for event lookup" ))
115+ return
116+ }
112117 tran , err := a .getIllTranFromParams (ctx , w , r , params .RequesterSymbol ,
113118 params .RequesterReqId , params .IllTransactionId )
114119 if err != nil {
115120 return
116121 }
117- var resp oapi.Events
118- resp .Items = make ([]oapi.Event , 0 )
119122 if tran == nil {
120- WriteJsonResponse (w , resp )
123+ WriteJsonResponse (w , oapi. Events { Items : make ([]oapi. Event , 0 )} )
121124 return
122125 }
123- var fullCount int64
124- var eventList []events.Event
125- eventList , fullCount , err = a .eventRepo .GetIllTransactionEvents (ctx , tran .ID )
126- if err != nil && ! errors .Is (err , pgx .ErrNoRows ) {
126+ resp , err := a .illTransactionEventsResponse (ctx , tran .ID )
127+ if err != nil {
127128 AddInternalError (ctx , w , err )
128129 return
129130 }
131+ WriteJsonResponse (w , resp )
132+ }
133+
134+ func (a * ApiHandler ) GetIllTransactionsIdEvents (w http.ResponseWriter , r * http.Request , id string , params oapi.GetIllTransactionsIdEventsParams ) {
135+ ctx := common .CreateExtCtxWithArgs (r .Context (), & common.LoggerArgs {
136+ Other : map [string ]string {"method" : "GetIllTransactionsIdEvents" , "id" : id },
137+ })
138+ if events .IsSyntheticID (id ) {
139+ AddBadRequestError (ctx , w , errors .New ("synthetic IDs are not allowed for event lookup" ))
140+ return
141+ }
142+
143+ tran , err := a .getIllTranFromParams (ctx , w , r , params .RequesterSymbol , nil , & id )
144+ if err != nil {
145+ return
146+ }
147+ if tran == nil {
148+ AddNotFoundError (w )
149+ return
150+ }
151+ resp , err := a .illTransactionEventsResponse (ctx , tran .ID )
152+ if err != nil {
153+ AddInternalError (ctx , w , err )
154+ return
155+ }
156+ WriteJsonResponse (w , resp )
157+ }
158+
159+ func (a * ApiHandler ) illTransactionEventsResponse (ctx common.ExtendedContext , id string ) (oapi.Events , error ) {
160+ resp := oapi.Events {Items : make ([]oapi.Event , 0 )}
161+ eventList , fullCount , err := a .eventRepo .GetIllTransactionEvents (ctx , id )
162+ if err != nil && ! errors .Is (err , pgx .ErrNoRows ) {
163+ return resp , err
164+ }
130165 resp .About .Count = fullCount
131166 for _ , event := range eventList {
132167 resp .Items = append (resp .Items , ToApiEvent (event , event .IllTransactionID , nil ))
133168 }
134- WriteJsonResponse ( w , resp )
169+ return resp , nil
135170}
136171
137172func (a * ApiHandler ) GetIllTransactions (w http.ResponseWriter , r * http.Request , params oapi.GetIllTransactionsParams ) {
@@ -652,7 +687,7 @@ func toApiIllTransaction(r *http.Request, trans ill_db.IllTransaction) oapi.IllT
652687 api .SupplierRequestID = getString (trans .SupplierRequestID )
653688 api .LastSupplierStatus = getString (trans .LastSupplierStatus )
654689 api .PrevSupplierStatus = getString (trans .PrevSupplierStatus )
655- api .EventsLink = Link (r , Path (EVENTS_PATH ), Query ( "ill_transaction_id " , trans .ID ) )
690+ api .EventsLink = Link (r , Path ("ill_transactions " , trans .ID , "events" ), nil )
656691 api .LocatedSuppliersLink = Link (r , Path (LOCATED_SUPPLIERS_PATH ), Query ("ill_transaction_id" , trans .ID ))
657692 if trans .RequesterID .Valid {
658693 api .RequesterPeerLink = Link (r , Path (PEERS_PATH , trans .RequesterID .String ), nil )
0 commit comments