-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathindex.min.js
More file actions
1 lines (1 loc) · 1.32 KB
/
Copy pathindex.min.js
File metadata and controls
1 lines (1 loc) · 1.32 KB
1
const e=e=>Array.isArray(e)?e:[e],r=(r=",")=>s=>e(s).join(r),s=r=>"?"+Object.keys(r).reduce(((s,o)=>((e,...r)=>(e.push(...r),e))(s,...a(o,e(r[o])))),[]).join("&"),o=["include","exclude","page","size"],a=(s,a)=>"join"===s?((s,o)=>{return(e=>(...r)=>r.reduce(((e,r)=>e.map(r)),e))(e(o))(r(),(a=s+"=",e=>a+e));var a})(s,a):-1!==o.indexOf(s)?[s+"="+a.join(",")]:a.map((e=>s+"="+(Array.isArray(e)?e.join(","):e)));var t=(e,o={})=>{const a={},t=(r,s,t)=>fetch((r=>[e,...r].join("/"))(t),((e,r)=>{let s={method:e,...o,headers:{...a,...o.headers}};return r&&(s.body=r instanceof FormData?r:JSON.stringify(r)),s})(r,s)).then((async e=>{const r=await e.json();return 200===e.status||e.ok?Promise.resolve(r):Promise.reject(r)})).catch((e=>Promise.reject(e.code?e:{code:-1,message:e.message}))),n=([e,r])=>t("GET",null,["records",...e].concat(r?[s(r)]:[]));return{list:(e,r={})=>n([[e],r]),read:(e,s,o={})=>n(s?[[e,r()(s)],o]:[[e]]),create:(e,r)=>t("POST",r,["records",e]),update:(e,s,o)=>t("PUT",o,["records",e,r()(s)]),delete:(e,s)=>t("DELETE",null,["records",e,r()(s)]),register:(e,r)=>t("POST",{username:e,password:r},["register"]),login:(e,r)=>t("POST",{username:e,password:r},["login"]),logout:()=>t("POST",{},["logout"]),password:(e,r,s)=>t("POST",{username:e,password:r,newPassword:s},["password"]),me:()=>t("GET",null,["me"])}};export{t as default};