@rero/rero-ils-ui
Version:
User interface for RERO integrated library system (RERO ILS).
2 lines (1 loc) • 4.99 kB
JavaScript
import{a as C,b as m,d as A}from"./chunk-5357H5SV.js";import{a as c}from"./chunk-PDQWUDUO.js";import{R as I,h as b,s as k}from"./chunk-4GRLSOJZ.js";import{Ua as N,Wa as g}from"./chunk-MTJX6JRK.js";import{f as $,i as S}from"./chunk-4MYHQLZQ.js";import{J as y,da as v,ia as l,r as T,v as a}from"./chunk-3WD6XLXL.js";var K=(()=>{class s{constructor(){this.httpClient=l(S),this.appStore=l(I),this.recordService=l(g),this.apiService=l(N)}getByPidFromEs(t){return this.recordService.getRecords("items",{query:`pid:${t}`,page:1,itemsPerPage:1,headers:b.reroJsonheaders}).pipe(a(r=>r.hits.hits[0]))}getRequestedLoans(t){let n=`${this.apiService.getEndpointByType("item")}/requested_loans/${t}`;return this.httpClient.get(n).pipe(a(e=>e.hits),a(e=>+this.recordService.totalHits(e.total)==0?[]:e.hits),a(e=>e.map(i=>{let{item:p}=i;return i.loan&&(p.loan=i.loan),p})))}doValidateRequest(t,r){let e=`${this.apiService.getEndpointByType("item")}/validate_request`;return this.httpClient.post(e,{item_pid:t.pid,pid:t.loan.pid,transaction_library_pid:r,transaction_user_pid:this.appStore.user()?.patronLibrarian.pid}).pipe(a(i=>{let p=i.metadata;return p.loan=i.action_applied.validate,i.removed_temporary_item_type&&(p.removed_temporary_item_type=i.removed_temporary_item_type),p}))}getItem(t,r){let e=`${this.apiService.getEndpointByType("item")}/barcode/${t}`;return r&&(e+=`?patron.patron_pid=${r}`),this.httpClient.get(e).pipe(a(i=>{let p=new A(i.metadata.item);return i.metadata.loan&&p.setLoan(i.metadata.loan),p}),y(i=>{throw i.status===404?new Error("Item not found"):i}))}checkin(t,r){let n=this.apiService.getEndpointByType("item");return this.httpClient.post(`${n}/checkin`,{item_barcode:t,transaction_library_pid:r,transaction_user_pid:this.appStore.user()?.patronLibrarian.pid}).pipe(a(e=>{let i=new A(e.metadata),p;i.action_applied=e.action_applied;let u=[m.checkin,m.receive,m.validate];for(let d of u)if(e.action_applied[d]){i.actionDone=d,p=e.action_applied[d];break}return p!=null&&i.setLoan(p),e.removed_temporary_item_type&&(i.removed_temporary_item_type=e.removed_temporary_item_type),i}),y(e=>{if(e.status===404)return T(null);throw e}))}doAction(t,r,n,e,i){let p=this.apiService.getEndpointByType("item"),u=t.currentAction,d=`${p}/${u}`,h={item_pid:t.pid,transaction_library_pid:r,transaction_user_pid:n};e&&u===m.checkout&&(h.patron_pid=e,i&&"endDate"in i&&(h.end_date=i.endDate)),t.loan&&(h.pid=t.loan.pid);let E={};if(i&&"overrideBlocking"in i){let _="override_blocking";E[_]=!0}return this.httpClient.post(d,h,{params:E}).pipe(a(_=>{let f=new A(_.metadata);return f.setLoan(_.action_applied[u]),f.actionDone=u,_.removed_temporary_item_type&&(f.removed_temporary_item_type=_.removed_temporary_item_type),f}))}getPickupLocations(t){let n=`${this.apiService.getEndpointByType("item")}/${t}/pickup_locations`;return this.httpClient.get(n).pipe(a(e=>e.locations),y(e=>{if(e.status===404)return T(null)}))}canRequest(t,r,n){let e=new $;r!=null&&(e=e.set("library_pid",r)),n!=null&&(e=e.set("patron_barcode",n));let i=this.apiService.getEndpointByType("item");return this.httpClient.get(`${i}/${t}/can_request`,{params:e})}needCallout(t,r){if(r=r||"warning",r==="warning"){if(t.actionDone&&t.actionDone===m.checkin)return t.status===k.IN_TRANSIT||t.pending_loans?.length>0||t.getNote(C.CHECKIN)!=null;if(t.actionDone&&t.actionDone===m.checkout)return t.getNote(C.CHECKOUT)!=null}return!1}static{this.\u0275fac=function(r){return new(r||s)}}static{this.\u0275prov=v({token:s,factory:s.\u0275fac,providedIn:"root"})}}return s})();var R=class s{constructor(){this.recordService=l(g),this.httpClient=l(S),this.appStore=l(I)}static{this.borrowStatuses=[c.ITEM_ON_LOAN]}static{this.requestStatuses=[c.ITEM_AT_DESK,c.PENDING,c.ITEM_IN_TRANSIT_FOR_PICKUP]}borrowedBy$(o){return this.loans$(o,s.borrowStatuses).pipe(a(t=>t.hits.hits))}requestedBy$(o){return this.loans$(o,s.requestStatuses).pipe(a(t=>t.hits.hits))}canCancelRequest(o){return[c.PENDING,c.ITEM_IN_TRANSIT_FOR_PICKUP,c.ITEM_AT_DESK].some(t=>t===o.metadata.state)}cancelLoan(o,t,r){return this.httpClient.post("/api/item/cancel_item_request",{item_pid:o,pid:t,transaction_library_pid:r,transaction_user_pid:this.appStore.user()?.patrons[0].pid}).pipe(a(e=>{let i=e.metadata;return i.loan=e.action_applied.cancel,i}))}canUpdateRequestPickupLocation(o){return[c.PENDING,c.ITEM_IN_TRANSIT_FOR_PICKUP].some(t=>t===o.metadata.state)}updateLoanPickupLocation(o,t){return this.httpClient.post("/api/item/update_loan_pickup_location",{pid:o,pickup_location_pid:t})}getCirculationPolicy(o){let t=`/api/loan/${o}/circulation_policy`;return this.httpClient.get(t)}loans$(o,t){let r=`item_pid.value:${o}`;if(t!==void 0){let n=t.join(" OR state:");r+=` AND (state:${n})`}return this.recordService.getRecords("loans",{query:r,page:1,itemsPerPage:100,aggregationsFilters:[],sort:"created"})}static{this.\u0275fac=function(t){return new(t||s)}}static{this.\u0275prov=v({token:s,factory:s.\u0275fac,providedIn:"root"})}};export{K as a,R as b};