veza/apps/web/dist_verification/assets/trackService-Dud99AaM.js

2 lines
5.6 KiB
JavaScript
Raw Normal View History

import{g as o,l as d}from"./index-BMBS6scK.js";import{A as p}from"./vendor-http-CctT3C58.js";class t extends Error{constructor(e,s,a=!1,n){super(e),this.code=s,this.retryable=a,this.originalError=n,this.name="TrackServiceError"}}const f=1024*1024*2,h={uploadTrack:async(r,e,s)=>{const a=Math.ceil(r.size/f),n=await o.post("/tracks/initiate",{filename:r.name,total_chunks:a,file_size:r.size,title:e.title,artist:e.artist,album:e.album,genre:e.genre}),{upload_id:i}=n.data;d.info(`[UPLOAD] Upload initiated with ID: ${i}`,{filename:r.name,totalChunks:a});for(let c=0;c<a;c++){const k=c*f,N=Math.min(k+f,r.size),g=r.slice(k,N),u=new FormData;u.append("chunk",g),u.append("index",c.toString()),u.append("upload_id",i);try{await o.post("/tracks/chunk",u,{timeout:3e5,_enableLogging:!1});const l=(c+1)/a*100;s&&s(l)}catch(l){throw d.error(`[UPLOAD] Failed to upload chunk ${c} for ${i}`,{error:l}),l}}const w=await o.post("/tracks/complete",{upload_id:i});return d.info(`[UPLOAD] Upload completed. Track ID: ${w.data.track_id}`),w.data},getTrackStatus:async r=>(await o.get(`/tracks/${r}/status`)).data};async function T(r={}){try{const e=new URLSearchParams;r.page&&e.append("page",r.page.toString()),r.limit&&e.append("limit",r.limit.toString()),r.userId&&e.append("user_id",r.userId),r.genre&&e.append("genre",r.genre),r.format&&e.append("format",r.format),r.sortBy&&e.append("sort_by",r.sortBy),r.sortOrder&&e.append("sort_order",r.sortOrder);const s=e.toString(),a=`/tracks${s?`?${s}`:""}`;return(await o.get(a)).data}catch(e){if(e instanceof p){if(e.response?.status===401)throw new t("Non autorisé: Veuillez vous connecter pour voir les tracks","VALIDATION",!1,e);if(e.response?.status===500)throw new t("Erreur serveur: Impossible de récupérer les tracks. Veuillez réessayer plus tard.","SERVER",!0,e);if(e.code==="ECONNABORTED"||e.code==="ETIMEDOUT"||!e.response)throw new t("Erreur réseau: Impossible de se connecter au serveur.","NETWORK",!0,e);const s=e.response?.data?.error||e.message||"Échec de la récupération des tracks";throw new t(s,"UNKNOWN",!1,e)}throw e instanceof t?e:new t("Erreur inconnue lors de la récupération des tracks","UNKNOWN",!1,e)}}async function E(r){try{return(await o.get(`/tracks/${r}`)).data.track}catch(e){if(e instanceof p){if(e.response?.status===401)throw new t("Non autorisé: Veuillez vous connecter pour voir ce track","VALIDATION",!1,e);if(e.response?.status===404)throw new t("Track introuvable","VALIDATION",!1,e);if(e.response?.status===500)throw new t("Erreur serveur: Impossible de récupérer le track. Veuillez réessayer plus tard.","SERVER",!0,e);if(e.code==="ECONNABORTED"||e.code==="ETIMEDOUT"||!e.response)throw new t("Erreur réseau: Impossible de se connecter au serveur.","NETWORK",!0,e);const s=e.response?.data?.error||e.message||"Échec de la récupération du track";throw new t(s,"UNKNOWN",!1,e)}throw e instanceof t?e:new t("Erreur inconnue lors de la récupération du track","UNKNOWN",!1,e)}}async function O(r,e){try{return(await o.put(`/tracks/${r}`,e)).data.track}catch(s){if(s instanceof p){if(s.response?.status===401)throw new t("Non autorisé: Veuillez vous connecter pour modifier ce track","VALIDATION",!1,s);if(s.response?.status===403)throw new t("Accès refusé: Vous ne pouvez modifier que vos propres tracks","VALIDATION",!1,s);if(s.response?.status===404)throw new t("Track introuvable","VALIDATION",!1,s);if(s.response?.status===400){const n=s.response?.data?.error||"Données invalides";throw new t(n,"VALIDATION",!1,s)}if(s.response?.status===500)throw new t("Erreur serveur: Impossible de mettre à jour le track. Veuillez réessayer plus tard.","SERVER",!0,s);if(s.code==="ECONNABORTED"||s.code==="ETIMEDOUT"||!s.response)throw new t("Erreur réseau: Impossible de se connecter au serveur.","NETWORK",!0,s);const a=s.response?.data?.error||s.message||"Échec de la mise à jour du track";throw new t(a,"UNKNOWN",!1,s)}throw s instanceof t?s:new t("Erreur inconnue lors de la mise à jour du track","UNKNOWN",!1,s)}}async function I(r){try{await o.delete(`/tracks/${r}`)}catch(e){if(e instanceof p){if