Files
nademitex_user/dist/assets/http-CU_N-R2R.js
T

1 line
2.4 KiB
JavaScript

var e=`ft_access_token`;function t(){return`https://nademitex.montest.ir/server/api`.replace(/\/$/,``)||`https://nademitex.montest.ir/server/api`}function n(){return localStorage.getItem(e)}function r(t){t?localStorage.setItem(e,t):localStorage.removeItem(e)}var i=class extends Error{status;constructor(e,t){super(t),this.status=e}};function a(e,n){let r=t(),i=e.startsWith(`http`)?e:`${r.replace(/\/$/,``)}/${e.replace(/^\//,``)}`,a=i.startsWith(`http`)?new URL(i):new URL(i,typeof window<`u`?window.location.origin:`http://127.0.0.1`);if(n)for(let[e,t]of Object.entries(n))t!=null&&t!==``&&a.searchParams.set(e,String(t));return a.toString()}function o(e,t){if(typeof e==`object`&&e){if(`message`in e){let t=e.message;if(Array.isArray(t))return t.join(`، `);if(t!=null&&String(t).trim())return String(t)}if(`error`in e){let n=e.error;if(typeof n==`string`&&n.trim())return`${n} (${t})`}}if(typeof e==`string`){if(/upstream error/i.test(e))return`سرور API در دسترس نیست. کمی بعد دوباره تلاش کنید.`;if(e.trim()&&!e.trimStart().startsWith(`<`))return e.trim().slice(0,200)}return t===400?`درخواست نامعتبر است. اطلاعات سفارش را بررسی کنید.`:t===401?`نشست شما منقضی شده است. دوباره وارد شوید.`:`خطای سرور (${t})`}async function s(e,t={}){let s={Accept:`application/json`};if(t.body!==void 0&&(s[`Content-Type`]=`application/json`),t.auth!==!1){let e=n();e&&(s.Authorization=`Bearer ${e}`)}let c;try{c=await fetch(a(e,t.query),{method:t.method??(t.body===void 0?`GET`:`POST`),headers:s,body:t.body===void 0?void 0:JSON.stringify(t.body),signal:AbortSignal.timeout(2e4)})}catch(e){throw new i(0,e instanceof DOMException&&e.name===`TimeoutError`||e instanceof Error&&e.name===`TimeoutError`?`پاسخ سرور طول کشید. دوباره تلاش کنید.`:`اتصال به سرور برقرار نشد. اینترنت یا آدرس API را بررسی کنید.`)}let l=await c.text(),u=null;if(l)try{u=JSON.parse(l)}catch{u=l}if(!c.ok){if(c.status===401&&t.auth!==!1){r(null);try{localStorage.removeItem(`ft_user`)}catch{}let e=`/login`;if(typeof window<`u`&&!window.location.pathname.startsWith(e)){let t=encodeURIComponent(`${window.location.pathname}${window.location.search}`);window.location.assign(`${e}?redirect=${t}`)}}throw new i(c.status,o(u,c.status))}return u}export{r as i,s as n,n as r,i as t};