توسعه دهندگان نرم افزارهای کاربردی

خوش آمدید!

این انجمن برای حرفه ای ها و علاقه مندان به محصولات و خدمات ما است.
بهترین محتوا و ایده های کدنویسی جدید را به اشتراک بگذارید و در مورد آنها بحث کنید، پروفایل حرفه ای خود را بسازید و با هم به یک توسعه دهنده بهتر تبدیل شوید.

1

چطری میشه به عنوان مثال نام، نام خانوادگی و ایمیل کاربر رو از داخل اپلیکیشن کلاینت عوض کرد؟

مراحل این کار رو توضیح بدید

آواتار
رها کردن
1 پاسخ
1
بهترین پاسخ

اول اینکه هر کاربر در اپلیکیشن تنها به فضای کاری خودش دسترسی دارد. یعنی فقط و فقط به اکانت خودش.

حالا ما به عنوان developer یا برنامه نویس چطری میتونیم واسه کاربر این امکان رو فراهم کنیم؟

کل کاری که باید انجام بشه اینه که آبجکت یوزر جاری رو بگیریم، تغییر بدیم و بروزرسانی کنیم:

مرحله ۱- گرفتن آبجکت (Entity)‌ یوزر جاری (که لاگین است):

  • /api/auth/user

     نتیجه کار همان آبجکت یوزر است. 

     در این مرحله می‌توان تغییرات مد نظر را اعمال کرد.

     نکات: 

       ۱. اطلاعات TenantId، CustomerId، و خود Id را نمیتوان تغییر داد (واضح است که یوزر نمی‌تواند شناسه خود، اینکه 
       متعلق به چه Tenantی است، و Id خود را تغییر بدهد چون این اطلاعات در سامانه تعریف شده) اما مابقی فیلدها را می
       توان تغییر داد.

      ۲. غیر از این فیلدهای هویتی، فیلدهای دیگر از جمله ایمیل، نام و نام خانوادگی و عکس پروفایل قابل تغییر است. برخی از
       فیلدها بصورت مستقیم در آبجکت وجود دارد و قابل تغییر مستقیم هستند. اما ممکن است برخی فیلدها در زیربخش
       additionalInfo موجود باشند. مثلا عکس پروفایل. چنانچه فیلدی موجود نباشد اما نیاز باشد به فیلدهای موجود اضافه
       شود این نوع فیلدها فقط و فقط باید در زیربخش additionalInfo اضافه شوند.

مرحله ۲- آپدیت آبجکت یوزر: از api زیر و متد POST برای این کار استفاده می‌شود:

  • /api/user/

نکته ۱: body این آبجکت باید همان آبجکتی باشد که تغییرات در آن اعمال شده است. هیچ فیلدی نباید از این آبجکت حذف شود. در صورتی که فیلدی از فیلدهای ضروری این آبجکت مثل CustomerId، TenantId و Id حذف شود سرور خطا می‌دهد. بجز این فیلدهای ضروری اگر فیلد دیگری حذف شود یا به اشتباه به سرور ارسال نشوند سرور خطا نمی‌دهد اما آن فیلد را به عنوان حذف شده قلمداد خواهد کرد و اگر دوباره یوزر جاری را GET کنیم فیلدهایی که به سرور POST نشده بودند حذف شده اند.

آواتار
رها کردن

Your Answer

Please try to give a substantial answer. If you wanted to comment on the question or answer, just use the commenting tool. Please remember that you can always revise your answers - no need to answer the same question twice. Also, please don't forget to vote - it really helps to select the best questions and answers!