import{S as St,i as Lt,s as jt,V as At,W as It,X as Z,h as o,z as _,j as i,c as Re,k as b,n as d,o as t,m as Te,C as Mt,D as Nt,H as Ut,Y as Pt,Z as zt,E as Jt,_ as Wt,G as Gt,t as Q,a as x,v as u,d as Pe,J as Ft,p as Kt,l as ee,q as Vt}from"./index-DFe6BQro.js";function Bt(a,s,n){const c=a.slice();return c[6]=s[n],c}function Et(a,s,n){const c=a.slice();return c[6]=s[n],c}function Ot(a,s){let n,c,y;function f(){return s[5](s[6])}return{key:a,first:null,c(){n=o("button"),n.textContent=`${s[6].code} `,b(n,"class","tab-item"),ee(n,"active",s[1]===s[6].code),this.first=n},m(r,h){d(r,n,h),c||(y=Vt(n,"click",f),c=!0)},p(r,h){s=r,h&10&&ee(n,"active",s[1]===s[6].code)},d(r){r&&u(n),c=!1,y()}}}function Ht(a,s){let n,c,y,f;return c=new It({props:{content:s[6].body}}),{key:a,first:null,c(){n=o("div"),Re(c.$$.fragment),y=i(),b(n,"class","tab-item"),ee(n,"active",s[1]===s[6].code),this.first=n},m(r,h){d(r,n,h),Te(c,n,null),t(n,y),f=!0},p(r,h){s=r,(!f||h&10)&&ee(n,"active",s[1]===s[6].code)},i(r){f||(Q(c.$$.fragment,r),f=!0)},o(r){x(c.$$.fragment,r),f=!1},d(r){r&&u(n),Pe(c)}}}function Xt(a){var pt,mt,bt,ht,ft,_t,yt,kt;let s,n,c=a[0].name+"",y,f,r,h,F,g,U,Fe,P,B,Be,E,Ee,Oe,te,le,q,oe,O,ae,H,se,I,ne,z,ie,w,ce,He,re,S,J,Ie,k,W,Se,de,Le,C,G,je,ue,Ae,K,Me,pe,Ne,D,Ue,me,ze,Je,We,V,Ge,X,Ke,be,Ve,he,Xe,fe,Ye,p,_e,Ze,ye,Qe,ke,xe,$e,et,ge,tt,ve,lt,ot,at,Ce,st,R,De,L,qe,T,j,v=[],nt=new Map,it,A,$=[],ct=new Map,M,we,rt;q=new At({props:{js:` import PocketBase from 'pocketbase'; const pb = new PocketBase('${a[2]}'); ... const batch = pb.createBatch(); batch.collection('${(pt=a[0])==null?void 0:pt.name}').create({ ... }); batch.collection('${(mt=a[0])==null?void 0:mt.name}').update('RECORD_ID', { ... }); batch.collection('${(bt=a[0])==null?void 0:bt.name}').delete('RECORD_ID'); batch.collection('${(ht=a[0])==null?void 0:ht.name}').upsert({ ... }); const result = await batch.send(); `,dart:` import 'package:pocketbase/pocketbase.dart'; final pb = PocketBase('${a[2]}'); ... final batch = pb.createBatch(); batch.collection('${(ft=a[0])==null?void 0:ft.name}').create(body: { ... }); batch.collection('${(_t=a[0])==null?void 0:_t.name}').update('RECORD_ID', body: { ... }); batch.collection('${(yt=a[0])==null?void 0:yt.name}').delete('RECORD_ID'); batch.collection('${(kt=a[0])==null?void 0:kt.name}').upsert(body: { ... }); final result = await batch.send(); `}}),R=new It({props:{language:"javascript",content:` const formData = new FormData(); formData.append("@jsonPayload", JSON.stringify({ requests: [ { method: "POST", url: "/api/collections/${a[0].name}/records?fields=id", body: { someField: "test1" } }, { method: "PATCH", url: "/api/collections/${a[0].name}/records/RECORD_ID", body: { someField: "test2" } } ] })) // file for the first request formData.append("requests.0.someFileField", new File(...)) // file for the second request formData.append("requests.1.someFileField", new File(...)) `}});let Y=Z(a[3]);const dt=e=>e[6].code;for(let e=0;ee[6].code;for(let e=0;eBatch and transactional create/update/upsert/delete of multiple records in a single request.

",F=i(),g=o("div"),U=o("div"),U.innerHTML='',Fe=i(),P=o("div"),B=o("p"),Be=_(`The batch Web API need to be explicitly enabled and configured from the `),E=o("a"),E.textContent="Dashboard settings",Ee=_("."),Oe=i(),te=o("p"),te.textContent=`Because this endpoint process the requests in a single transaction it could degrade the performance of your application if not used with proper care and configuration (e.g. too large allowed execution timeout, large body size limit, etc.).`,le=i(),Re(q.$$.fragment),oe=i(),O=o("h6"),O.textContent="API details",ae=i(),H=o("div"),H.innerHTML='POST
/api/batch
',se=i(),I=o("div"),I.textContent="Body Parameters",ne=i(),z=o("p"),z.innerHTML=`Body parameters could be sent as application/json or multipart/form-data.
File upload is supported only via multipart/form-data (see below for more details).`,ie=i(),w=o("table"),ce=o("thead"),ce.innerHTML='Param Description',He=i(),re=o("tbody"),S=o("tr"),J=o("td"),J.innerHTML='
Required requests
',Ie=i(),k=o("td"),W=o("span"),W.textContent="Array",Se=_(` - List of the requests to process. `),de=o("p"),de.textContent="The supported batch request actions are:",Le=i(),C=o("ul"),G=o("li"),je=_("record create - "),ue=o("code"),ue.textContent="POST /api/collections/{collection}/records",Ae=i(),K=o("li"),Me=_(`record update - `),pe=o("code"),pe.textContent="PATCH /api/collections/{collection}/records/{id}",Ne=i(),D=o("li"),Ue=_("record upsert - "),me=o("code"),me.textContent="PUT /api/collections/{collection}/records",ze=i(),Je=o("br"),We=i(),V=o("small"),V.innerHTML='(the body must have id field)',Ge=i(),X=o("li"),Ke=_(`record delete - `),be=o("code"),be.textContent="DELETE /api/collections/{collection}/records/{id}",Ve=i(),he=o("p"),he.textContent="Each batch Request element have the following properties:",Xe=i(),fe=o("ul"),fe.innerHTML=`
  • url path (could include query parameters)
  • method (GET, POST, PUT, PATCH, DELETE)
  • headers
    (custom per-request Authorization header is not supported at the moment, aka. all batch requests have the same auth state)
  • body
  • `,Ye=i(),p=o("p"),_e=o("strong"),_e.textContent="NB!",Ze=_(` When the batch request is send as `),ye=o("code"),ye.textContent="multipart/form-data",Qe=_(`, the regular batch action fields are expected to be submitted as serailized json under the `),ke=o("code"),ke.textContent="@jsonPayload",xe=_(` field and file keys need to follow the pattern `),$e=o("code"),$e.textContent="requests.N.fileField",et=_(` or `),ge=o("code"),ge.textContent="requests[N].fileField",tt=i(),ve=o("em"),ve.textContent=`(this is usually handled transparently by the SDKs when their specific object notation is used) `,lt=_(`. `),ot=o("br"),at=_(` If you don't use the SDKs or prefer manually to construct the `),Ce=o("code"),Ce.textContent="FormData",st=_(` body, then it could look something like: `),Re(R.$$.fragment),De=i(),L=o("div"),L.textContent="Responses",qe=i(),T=o("div"),j=o("div");for(let e=0;en(1,r=g.code);return a.$$set=g=>{"collection"in g&&n(0,f=g.collection)},a.$$.update=()=>{a.$$.dirty&1&&n(4,y=Ft.dummyCollectionRecord(f)),a.$$.dirty&17&&f!=null&&f.id&&(h.push({code:200,body:JSON.stringify([y,Object.assign({},y,{id:y+"2"})],null,2)}),h.push({code:400,body:` { "status": 400, "message": "Batch transaction failed.", "data": { "requests": { "1": { "code": "batch_request_failed", "message": "Batch request failed.", "response": { "status": 400, "message": "Failed to create record.", "data": { "id": { "code": "validation_min_text_constraint", "message": "Must be at least 3 character(s).", "params": { "min": 3 } } } } } } } } `}),h.push({code:403,body:` { "code": 403, "message": "Batch requests are not allowed.", "data": {} } `}))},n(2,c=Ft.getApiExampleUrl(Kt.baseURL)),[f,r,c,h,y,F]}class Qt extends St{constructor(s){super(),Lt(this,s,Yt,Xt,jt,{collection:0})}}export{Qt as default};