veza/apps/web/dist_verification/assets/tracks-Bqg0pqgn.js

1 line
9.7 KiB
JavaScript

import{a as n,F as h}from"./index-BWcMVITa.js";import{q as c}from"./vendor-IYr-MHu4.js";class p extends Error{constructor(e,r,s=!1,o){super(e),this.code=r,this.retryable=s,this.originalError=o,this.name="TrackServiceError"}}async function q(t={}){try{const e=new URLSearchParams;t.page&&e.append("page",t.page.toString()),t.limit&&e.append("limit",t.limit.toString()),t.userId&&e.append("user_id",t.userId),t.genre&&e.append("genre",t.genre),t.format&&e.append("format",t.format),t.sortBy&&e.append("sort_by",t.sortBy),t.sortOrder&&e.append("sort_order",t.sortOrder);const r=e.toString(),s=`/tracks${r?`?${r}`:""}`;return(await n.get(s)).data}catch(e){if(e instanceof c){if(e.response?.status===401)throw new p("Non autorisé: Veuillez vous connecter pour voir les tracks","VALIDATION",!1,e);if(e.response?.status===500)throw new p("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 p("Erreur réseau: Impossible de se connecter au serveur.","NETWORK",!0,e);const r=e.response?.data?.error||e.message||"Échec de la récupération des tracks";throw new p(r,"UNKNOWN",!1,e)}throw e instanceof p?e:new p("Erreur inconnue lors de la récupération des tracks","UNKNOWN",!1,e)}}async function g(t){try{return(await n.get(`/tracks/${t}`)).data.track}catch(e){if(e instanceof c){if(e.response?.status===401)throw new p("Non autorisé: Veuillez vous connecter pour voir ce track","VALIDATION",!1,e);if(e.response?.status===404)throw new p("Track introuvable","VALIDATION",!1,e);if(e.response?.status===500)throw new p("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 p("Erreur réseau: Impossible de se connecter au serveur.","NETWORK",!0,e);const r=e.response?.data?.error||e.message||"Échec de la récupération du track";throw new p(r,"UNKNOWN",!1,e)}throw e instanceof p?e:new p("Erreur inconnue lors de la récupération du track","UNKNOWN",!1,e)}}async function k(t,e){let o=0;for(;o<120;)try{const i=(await n.get(`/tracks/${t}`)).data;if(e){let a=0;i.status==="uploading"?a=30:i.status==="processing"?a=70:i.status==="completed"&&(a=100),e(a)}if(i.status==="completed")return i;if(i.status==="failed")throw new Error(i.status_message||"Le traitement du fichier a échoué");await new Promise(a=>setTimeout(a,1e3)),o++}catch(u){if(u instanceof c&&u.response?.status===404){await new Promise(i=>setTimeout(i,1e3)),o++;continue}throw u}throw new Error("Le traitement du fichier prend plus de temps que prévu. Veuillez réessayer plus tard.")}async function m(t,e={},r){try{const s=new FormData;s.append("file",t),e.title&&s.append("title",e.title),e.artist&&s.append("artist",e.artist),e.album&&s.append("album",e.album),e.genre&&s.append("genre",e.genre),e.year&&s.append("year",e.year.toString()),e.is_public!==void 0&&s.append("is_public",e.is_public.toString());const o={onUploadProgress:i=>{if(i.total&&r){const a=Math.round(i.loaded*100/i.total);r(Math.min(a*.2,20))}},timeout:h.UPLOAD},u=await n.post("/tracks",s,o);if(u.status===202){const a=u.data.track_id;return r&&r(25),await k(a,r)}return u.data}catch(s){if(s instanceof c){if(s.response?.status===400){const u=s.response?.data?.error?.message||s.response?.data?.message||"Format ou taille invalide";throw new Error(u)}if(s.response?.status===413)throw new Error("Fichier trop volumineux");if(s.response?.status===415)throw new Error("Format de fichier non supporté");if(s.response?.status===500)throw new Error("Erreur serveur: Impossible de traiter le fichier. Veuillez réessayer plus tard.");if(s.code==="ECONNABORTED"||s.code==="ETIMEDOUT"||!s.response)throw new Error("Erreur réseau: Impossible de se connecter au serveur.");const o=s.response?.data?.error?.message||s.response?.data?.message||s.message||"Erreur lors de l'upload";throw new Error(o)}throw s}}async function E(t=1,e=20,r){try{const s=new URLSearchParams;s.append("page",t.toString()),s.append("limit",e.toString()),r?.userId!==void 0&&s.append("user_id",r.userId.toString()),r?.genre&&s.append("genre",r.genre),r?.format&&s.append("format",r.format),r?.search&&s.append("search",r.search),r?.sortBy&&s.append("sort_by",r.sortBy),r?.sortOrder&&s.append("sort_order",r.sortOrder);const o=s.toString(),u=`/tracks${o?`?${o}`:""}`;return(await n.get(u)).data}catch(s){if(s instanceof c){if(s.response?.status===500)throw new Error("Erreur serveur: Impossible de récupérer les tracks. Veuillez réessayer plus tard.");if(s.code==="ECONNABORTED"||s.code==="ETIMEDOUT"||!s.response)throw new Error("Erreur réseau: Impossible de se connecter au serveur.");const o=s.response?.data?.error?.message||s.response?.data?.message||s.message||"Échec de la récupération des tracks";throw new Error(o)}throw s}}async function y(t,e){try{const{data:r}=await n.put(`/tracks/${t}`,e);return r.track}catch(r){if(r instanceof c){if(r.response?.status===404)throw new Error("Track introuvable");const s=r.response?.data?.error?.message||r.response?.data?.message||r.message||"Échec de la mise à jour du track";throw new Error(s)}throw r}}async function T(t){try{const{data:e}=await n.get(`/tracks/${t}/stats`);return e.stats}catch(e){if(e instanceof c){if(e.response?.status===404)throw new Error("Track introuvable");if(e.response?.status===501)throw new Error("Statistiques non disponibles pour le moment");const r=e.response?.data?.error?.message||e.response?.data?.message||e.message||"Échec de la récupération des statistiques";throw new Error(r)}throw e}}async function b(t){try{const{data:e}=await n.get(`/tracks/${t}/history`);return e.history}catch(e){if(e instanceof c){if(e.response?.status===404)throw new Error("Track introuvable");if(e.response?.status===501)throw new Error("Historique non disponible pour le moment");const r=e.response?.data?.error?.message||e.response?.data?.message||e.message||"Échec de la récupération de l'historique";throw new Error(r)}throw e}}async function v(t,e){try{const r=e?{params:{share_token:e},responseType:"blob"}:{responseType:"blob"};return(await n.get(`/tracks/${t}/download`,r)).data}catch(r){if(r instanceof c){if(r.response?.status===404)throw new Error("Track introuvable");const s=r.response?.data?.error?.message||r.response?.data?.message||r.message||"Échec du téléchargement";throw new Error(s)}throw r}}async function I(t){try{await n.post(`/tracks/${t}/like`)}catch(e){if(e instanceof c){if(e.response?.status===404)throw new Error("Track introuvable");const r=e.response?.data?.error?.message||e.response?.data?.message||e.message||"Échec du like";throw new Error(r)}throw e}}async function M(t){try{await n.delete(`/tracks/${t}/like`)}catch(e){if(e instanceof c){if(e.response?.status===404)throw new Error("Track introuvable");const r=e.response?.data?.error?.message||e.response?.data?.message||e.message||"Échec du unlike";throw new Error(r)}throw e}}async function O(t){try{await n.delete(`/tracks/${t}`)}catch(e){if(e instanceof c){if(e.response?.status===404)throw new Error("Track introuvable");const r=e.response?.data?.error?.message||e.response?.data?.message||e.message||"Échec de la suppression du track";throw new Error(r)}throw e}}async function S(t){try{const{data:e}=await n.get(`/tracks/${t}/likes`);return e}catch(e){if(e instanceof c){if(e.response?.status===404)throw new Error("Track introuvable");const r=e.response?.data?.error?.message||e.response?.data?.message||e.message||"Échec de la récupération des likes";throw new Error(r)}throw e}}async function N(t,e){try{const{data:r}=await n.post(`/tracks/${t}/share`,e);return r.share}catch(r){if(r instanceof c){if(r.response?.status===404)throw new Error("Track introuvable");const s=r.response?.data?.error?.message||r.response?.data?.message||r.message||"Échec de la création du lien de partage";throw new Error(s)}throw r}}async function _(t,e,r){try{const{data:s}=await n.post("/tracks/initiate",{total_chunks:t,total_size:e,filename:r});return s.upload_id}catch(s){if(s instanceof c){const o=s.response?.data?.error?.message||s.response?.data?.message||s.message||"Échec de l'initialisation de l'upload";throw new Error(o)}throw s}}async function D(t,e,r,s,o,u,i){try{const a=new FormData;a.append("upload_id",t),a.append("chunk_number",e.toString()),a.append("total_chunks",r.toString()),a.append("total_size",s.toString()),a.append("filename",o),a.append("chunk",u);const d=i?{onUploadProgress:l=>{if(l.total){const f=Math.round(l.loaded*100/l.total);i(f)}}}:{},{data:w}=await n.post("/tracks/chunk",a,d);return w}catch(a){if(a instanceof c){const d=a.response?.data?.error?.message||a.response?.data?.message||a.message||`Échec de l'upload du chunk ${e}`;throw new Error(d)}throw a}}async function U(t){try{const{data:e}=await n.post("/tracks/complete",{upload_id:t});return e.track}catch(e){if(e instanceof c){const r=e.response?.data?.error?.message||e.response?.data?.message||e.message||"Échec de la finalisation de l'upload";throw new Error(r)}throw e}}async function $(t){try{const{data:e}=await n.post("/tracks/batch/delete",{track_ids:t});return e}catch(e){if(e instanceof c){const r=e.response?.data?.error?.message||e.response?.data?.message||e.message||"Échec de la suppression en masse";throw new Error(r)}throw e}}async function A(t,e){try{const{data:r}=await n.post("/tracks/batch/update",{track_ids:t,updates:e});return r}catch(r){if(r instanceof c){const s=r.response?.data?.error?.message||r.response?.data?.message||r.message||"Échec de la mise à jour en masse";throw new Error(s)}throw r}}const L={list:E,get:g,create:m,update:y,delete:O,getStats:T,getHistory:b,download:v,like:I,unlike:M,getLikes:S,createShare:N,initiateChunkedUpload:_,uploadChunk:D,completeChunkedUpload:U,batchDelete:$,batchUpdate:A};export{p as T,g as a,q as g,L as t};