API

Profil sozlamalarini saqlash

POST/api/crm/v2/profile.updatev2
operationId: profile.update

Joriy foydalanuvchi profilini qisman yangilaydi: faqat yuborilgan kalitlar qayta ishlanadi, qolgan maydonlar o‘zgarmaydi. Bu bir maydonni yoki butun formani bitta so‘rovda saqlash uchun mos keladi.
Bo‘sh qiymat maydonni tozalaydi (name, telegram_user_id, telefon, photo). Agar qiymat majburiy bo‘lsa, bo‘sh qiymat 118-xatoni qaytaradi: timezone, language va telefon.
Email bu yerda o‘zgarmaydi: loginni o‘zgartirish tasdiqlashni talab qiladi, buning uchun alohida profile.request_email_change va profile.cancel_email_change mavjud.
Telefon — kalitlar juftligi, ular birga yuboriladi: bittasi ikkinchisiz yuborilsa, 117-xato qaytariladi. Parolni o‘zgartirish uchun old_password talab qilinadi (agar mos kelmasa, 128-xato), emailga xabarnoma yuboriladi va barcha foydalanuvchi sessiyalari, shu jumladan joriy sessiya yakunlanadi: hisob ma’lumotlari o‘zgargani uchun qayta kirish kerak bo‘ladi. 2FA yoqilishi uchun to‘g‘ri otp kodi talab qilinadi, o‘chirish uchun esa talab qilinmaydi; otp_reset yangi secret chiqaradi, 2FA o‘chirilgan holda qoldiradi va yangi bog‘lash uchun secret va qr ni qaytaradi.

Avtorizatsiya

api-token + language + role

So‘rov tanasi multipart/form-data

object
namestringnull bo‘lishi mumkin

Bo'sh qiymat maydonni tozalaydi

Misol: John Smith

phone_format_idinteger (PhoneFormatId)

Mamlakat kodi: 1-🇷🇺(+7|8), 2-🇦🇿(+994|0), 3-🇧🇾(+375|80), 4-🇰🇿(+7|8), 6-🇷🇸(+381|0), 7-🇹🇷(+90|0), 8-🇺🇦(+380|0), 9-🇵🇹(+351|0), 10-🇰🇬(+996|0), 11-🇺🇸(+1), 12-🇫🇷(+33|0), 13-🇲🇩(+373|0), 15-🇪🇪(+372), 18-🇬🇪(+995), 19-🇺🇿(+998), 22-🇵🇱(+48|0), 23-🇹🇯(+992|8), 25-🇷🇴(+40|0), 44-🇨🇭(+41|0)

Misol: 1

phone_numberstringnull bo‘lishi mumkin

Faqat phone_format_id bilan birga; telefon majburiy

Misol: (952) 056-31-65

telegram_user_idstringnull bo‘lishi mumkin

Faqat raqamlar; bo‘sh qiymat maydonni tozalaydi

Misol: 476962294

timezonestring

Misol: Europe/Kaliningrad

languagestring

Misol: ru

photostring · binarynull bo‘lishi mumkin

Fayl avatarni almashtiradi; bo‘sh matnli maydon uni o‘chiradi

passwordstring

Yangi parol; faqat old_password bilan birga

Misol: 987654321

old_passwordstring

Joriy parol; parolni o‘zgartirishda majburiy

Misol: 123456789

otp_enabledboolean

true 2FA ni yoqadi va otp talab qiladi, false uni o'chiradi

Misol: true

otp_resetboolean

Yangi 2FA sirini chiqaradi; 2FA yangi bog‘lanmaguncha o‘chirilgan holda qoladi

Misol: false

otpstring

Joriy maxfiy kod; 2FA yoqilganda va otp_reset da majburiy

Misol: 192870

Javoblar

OK

object
statusstringmajburiy

Qiymatlar:successerror

Misol: success

dataobject
descriptionstring

Misol: Successfully saved

photostring

Mavjud, agar avatar almashtirilgan bo‘lsa

Misol: data:image/jpeg;base64,/9j/4AAQSkZJRg...

secretstring

otp_reset mavjud

Misol: KA2G2UKBHBBHKOJR

qrstring

otp_reset bo‘lganda mavjud

Misol: https://api.qrserver.com/v1/create-qr-code/?data=otpauth%3A%2F%2Ftotp%2FFS%2520Admin%3Akalabunga82%40gmail.com%3Fsecret%3DKA2G2UKBHBBHKOJR%26issuer%3DFS%2520Admin&size=520x520&margin=15