veza/apps/web/dist_verification/assets/users-CIEZeIZa.js
senke b733f47a33 chore: playwright workflow, docs, rapports audit, visual-tests, tmt unit
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-11 22:19:34 +01:00

1 line
3.2 KiB
JavaScript

import{a as s}from"./index-VJPzCABl.js";import{q as u}from"./vendor-CAoAb3tF.js";async function l(r){return(await s.get(`/users/${r}`)).data.profile}async function p(r){const e=encodeURIComponent(r),t=await s.get(`/users/by-username/${e}`);return t.data?.profile??t.data}async function f(r,e){const t=await s.put(`/users/${r}`,e);return t.data.profile||t.data}async function d(r){return(await s.get(`/users/${r}/completion`)).data}async function w(r){return(await s.post(`/users/${r}/follow`)).data}async function g(r){return(await s.delete(`/users/${r}/follow`)).data}async function m(r,e=1,t=20){return(await s.get(`/users/${r}/followers`,{params:{page:e,limit:t}})).data}async function h(r,e=1,t=20){return(await s.get(`/users/${r}/following`,{params:{page:e,limit:t}})).data}function y(){return{notifications:{email_notifications:!0,push_notifications:!0,browser_notifications:!0,email_on_follow:!0,email_on_like:!0,email_on_comment:!0,email_on_message:!0,email_on_mention:!0,email_marketing:!1},privacy:{allow_search_indexing:!0,show_activity:!0},content:{explicit_content:!1,autoplay:!0},preferences:{language:"en",timezone:Intl.DateTimeFormat().resolvedOptions().timeZone??"UTC",theme:"auto"}}}async function E(r){try{return(await s.get(`/users/${r}/settings`)).data}catch(e){if(e instanceof u){if(e.response?.status===401)throw new Error("Unauthorized: Please log in to access settings");if(e.response?.status===403)throw new Error("Forbidden: You cannot access these settings");if(e.response?.status===404)return y();const t=e.response?.data?.error||e.message||"Failed to fetch settings";throw new Error(t)}throw e}}async function _(r,e){try{await s.put("/users/settings",e)}catch(t){if(t instanceof u){if(t.response?.status===400){const o=t.response?.data?.error||"Invalid settings data";throw new Error(o)}if(t.response?.status===401)throw new Error("Unauthorized: Please log in to update settings");if(t.response?.status===403)throw new Error("Forbidden: You cannot update these settings");if(t.response?.status===404)throw new Error("Settings not found");const a=t.response?.data?.error||t.message||"Failed to update settings";throw new Error(a)}throw t}}class i extends Error{constructor(e,t){super(e),this.code=t,this.name="AvatarUploadError"}}async function v(r,e,t){const a=new FormData;a.append("avatar",e);try{return(await s.post(`/users/${r}/avatar`,a,{headers:{"Content-Type":"multipart/form-data"},onUploadProgress:n=>{if(n.total&&t){const c=Math.round(n.loaded*100/n.total);t(c)}}})).data}catch(o){if(o instanceof u){if(o.response){const n=o.response.status;throw n===400?new i(o.response.data?.error||"Format ou taille de fichier invalide","VALIDATION"):n===413?new i("Fichier trop volumineux (max 5MB)","VALIDATION"):n>=500?new i("Erreur serveur. Veuillez réessayer.","SERVER"):new i(o.response.data?.error||"Erreur lors de l'upload","SERVER")}else if(o.request)throw new i("Erreur de connexion. Vérifiez votre connexion internet.","NETWORK")}throw new i("Erreur inconnue","UNKNOWN")}}async function U(r){await s.delete(`/users/${r}/avatar`)}const F={getProfile:l,getProfileByUsername:p,updateProfile:f,calculateProfileCompletion:d,follow:w,unfollow:g,getFollowers:m,getFollowing:h,getSettings:E,updateSettings:_,uploadAvatar:v,deleteAvatar:U};export{g as a,w as f,l as g,F as u};