def doc_reset(): return """ # 🐈 Scenario 🛠️ تنظیم مجدد رمز عبور کاربر پس از تأیید کد بازیابی رمز عبور، می‌تواند رمز عبور جدید خود را تنظیم کند. برای این کار، کاربر باید رمز عبور جدید و تأیید آن را وارد کند. بعد از ریکاور و وریفای به این صفحه برای ریست میآید که باید با همان توکنی که در وریفای دریافت کرده است را درخواست کند (نکته بعد از ریست پسورد توکن ذخیره شده حذف شود و کاربر باید با رمز عبور جدیدی که ست کرده است مجددا لاگین را انجام دهد) --- ## 🚀 درخواست API ### URL: ``` POST /api/reset-password/ ``` ### Header: | کلید | مقدار | |---------------|---------------------------------| | Content-Type | application/json | | Authorization | Bearer <توکن احراز هویت> | ### Body: ```json { "password": "newstrongpassword", "password_confirmation": "newstrongpassword" } ``` --- ## 📊 پاسخ‌ها | کد وضعیت | توضیحات | |---------------|-----------------------------------------------------------| | `200` | موفقیت‌آمیز - رمز عبور با موفقیت تغییر یافت. | | `400` | درخواست نادرست - مشکلات مربوط به داده‌های ارسالی. | | `401` | عدم احراز هویت - کاربر وارد نشده است یا توکن نامعتبر است. | | `500` | مشکل موقتی در سرور. | --- ## 📄 نمونه پاسخ موفقیت‌آمیز ```json { "message": "Your password has been changed successfully." } ``` --- ## 📄 نمونه پاسخ خطا ### رمز عبور و تأیید رمز عبور برابر نیستند: ```json { "status": "error", "code": "validation_error", "status_code": 400, "message": "Passwords do not match." } ``` ### رمز عبور کوتاه‌تر از 8 کاراکتر است: ```json { "status": "error", "code": "validation_error", "status_code": 400, "message": "Password must be at least 8 characters long." } ``` ### عدم احراز هویت: ```json { "status": "error", "code": "unauthorized", "status_code": 401, "message": "Authentication credentials were not provided or are invalid." } ``` ### مشکل موقتی در سرور: ```json { "status": "error", "code": "service_unavailable", "status_code": 500, "message": "Service temporarily unavailable." } ``` --- ## 💡 نکات مهم: 1. **رمز عبور جدید:** - باید حداقل 8 کاراکتر باشد و تأیید رمز عبور (`password_confirmation`) باید با رمز عبور اصلی یکسان باشد. 2. **امنیت:** - کاربر باید توکن احراز هویت معتبر برای تنظیم مجدد رمز عبور ارائه دهد. 3. **توکن احراز هویت:** - فقط کاربران احراز هویت شده می‌توانند رمز عبور خود را تغییر دهند. --- ## 🔧 توضیحات فنی: ### فرآیند تنظیم مجدد رمز عبور: 1. کاربر باید ابتدا کد بازیابی رمز عبور را تأیید کند. 2. پس از تأیید موفقیت‌آمیز، کاربر با استفاده از توکن احراز هویت، رمز عبور جدید و تأیید آن را وارد می‌کند. 3. اگر داده‌ها معتبر باشند، رمز عبور جدید برای کاربر تنظیم می‌شود. 4. اگر داده‌ها نادرست باشند، پیام خطای مناسب به کاربر بازگردانده می‌شود. ### ولیدیشن‌ها: - **رمز عبور:** - بررسی می‌شود که رمز عبور حداقل 8 کاراکتر باشد. - بررسی می‌شود که رمز عبور و تأیید آن یکسان باشند. --- ## 📄 نمونه درخواست: ### درخواست کامل: ```json { "password": "mynewpassword", "password_confirmation": "mynewpassword" } ``` ### پاسخ موفق: ```json { "message": "Your password has been changed successfully." } ``` """ def doc_recover(): return """ # 🐈 Scenario 🛠️ بازیابی رمز عبور کاربر با وارد کردن ایمیل خود، درخواست بازیابی رمز عبور می‌دهد. یک کد تأیید به ایمیل کاربر ارسال می‌شود تا کاربر بتواند رمز عبور خود را بازیابی کند. سپس کاربر باید به صفحه وریفای ریدایرکت شود و بعد از تایید وریفای با توکن داده شده به صفحه ریست پسورد ریدایرکت میشود تا پسور جدیدی را ست کند --- ## 🚀 درخواست API ### URL: ``` POST /api/recover-password/ ``` ### Header: | کلید | مقدار | |---------------|---------------------------------| | Content-Type | application/json | | Authorization | Optional (برای این endpoint نیاز نیست) | ### Body: ```json { "email": "johndoe@example.com" } ``` --- ## 📊 پاسخ‌ها | کد وضعیت | توضیحات | |---------------|-----------------------------------------------------------| | `202` | موفقیت‌آمیز - کد بازیابی رمز عبور به ایمیل کاربر ارسال شد. | | `400` | درخواست نادرست - مشکلات مربوط به داده‌های ارسالی. | | `404` | کاربر یافت نشد. | | `500` | مشکل موقتی در سرور. | --- ## 📄 نمونه پاسخ موفقیت‌آمیز ```json { "id": 1, "fullname": "John Doe", "phone_number": "1234567890", "email": "johndoe@example.com", "avatar": null, "message": "Forgot password code sent" } ``` --- ## 📄 نمونه پاسخ خطا ### کاربر یافت نشد: ```json { "status": "error", "code": "not_found", "status_code": 404, "message": "User not found." } ``` ### مشکل موقتی در سرور: ```json { "status": "error", "code": "service_unavailable", "status_code": 500, "message": "Service temporarily unavailable." } ``` --- ## 💡 نکات مهم: 1. **کد بازیابی رمز عبور:** - کد تأیید به ایمیل کاربر ارسال می‌شود و باید در مرحله بعدی برای بازیابی رمز عبور استفاده شود. 2. **امنیت:** - کد بازیابی رمز عبور فقط برای مدت محدود اعتبار دارد و بعد از آن منقضی می‌شود. --- ## 🔧 توضیحات فنی: ### فرآیند بازیابی رمز عبور: 1. کاربر ایمیل خود را وارد می‌کند. 2. سیستم بررسی می‌کند که آیا کاربری با این ایمیل وجود دارد یا خیر. 3. اگر کاربر یافت شود، یک کد تأیید بازیابی رمز عبور به ایمیل کاربر ارسال می‌شود. 4. کاربر باید این کد را در مرحله بعدی برای تنظیم رمز عبور جدید وارد کند. ### ولیدیشن‌ها: - **ایمیل:** - بررسی می‌شود که ایمیل وارد شده معتبر باشد. - اگر کاربری با این ایمیل یافت نشود، پیام خطای مناسب برگردانده می‌شود. --- ## 📄 نمونه درخواست: ### درخواست کامل: ```json { "email": "janedoe@example.com" } ``` ### پاسخ موفق: ```json { "id": 2, "fullname": "Jane Doe", "phone_number": "0987654321", "email": "janedoe@example.com", "avatar": null, "message": "Forgot password code sent" } ``` """ def doc_login(): return """ # 🐈 Scenario 🛠️ ورود به حساب کاربری کاربر با وارد کردن ایمیل و رمز عبور خود به سیستم وارد می‌شود. اگر اعتبارنامه‌ها معتبر باشند، توکن احراز هویت برای دسترسی به دیگر بخش‌های سیستم بازگردانده می‌شود. --- ## 🚀 درخواست API ### URL: ``` POST /api/login/ ``` ### Header: | کلید | مقدار | |---------------|---------------------------------| | Content-Type | application/json | | Authorization | Optional (برای این endpoint نیاز نیست) | ### Body: ```json { "email": "johndoe@example.com", "password": "strongpassword", "fcm": "fcm_token_optional", "device_id": "device_id_optional" } ``` --- ## 📊 پاسخ‌ها | کد وضعیت | توضیحات | |---------------|-----------------------------------------------------------| | `201` | موفقیت‌آمیز - کاربر با موفقیت وارد شد و توکن احراز هویت بازگردانده شد. | | `400` | درخواست نادرست - مشکلات مربوط به داده‌های ارسالی. | | `404` | کاربر یافت نشد. | | `500` | مشکل موقتی در سرور. | --- ## 📄 نمونه پاسخ موفقیت‌آمیز ```json { "id": 1, "fullname": "John Doe", "email": "johndoe@example.com", "token": "abc123def456", "avatar": "https://example.com/avatar.jpg" } ``` --- ## 📄 نمونه پاسخ خطا ### ورود ناموفق (اطلاعات اشتباه): ```json { "status": "error", "code": "invalid_credentials", "status_code": 400, "message": "Unable to log in with provided credentials." } ``` ### کاربر یافت نشد: ```json { "status": "error", "code": "not_found", "status_code": 404, "message": "User not found." } ``` ### مشکل موقتی در سرور: ```json { "status": "error", "code": "service_unavailable", "status_code": 500, "message": "Service temporarily unavailable." } ``` --- ## 💡 نکات مهم: 1. **رمز عبور:** - رمز عبور باید صحیح و مطابق با آنچه کاربر هنگام ثبت‌نام ارائه کرده است، باشد. 2. **توکن احراز هویت:** - پس از ورود موفقیت‌آمیز، توکن احراز هویت به کاربر بازگردانده می‌شود که برای دسترسی به دیگر بخش‌های سیستم نیاز است. 3. **اطلاعات دستگاه:** - `fcm` و `device_id` به عنوان اطلاعات اختیاری برای شناسایی دستگاه ارسال می‌شوند. --- ## 🔧 توضیحات فنی: ### فرآیند ورود به حساب کاربری: 1. کاربر ایمیل و رمز عبور خود را وارد می‌کند. 2. سیستم سعی می‌کند کاربر را با استفاده از اعتبارنامه‌های ارائه شده احراز هویت کند. 3. اگر کاربر یافت شود و اعتبارنامه‌ها صحیح باشند، یک توکن احراز هویت ایجاد شده و به کاربر بازگردانده می‌شود. 4. اگر اعتبارنامه نادرست باشند، پیام خطا برگردانده می‌شود. ### ولیدیشن‌ها: - **ایمیل و رمز عبور:** - بررسی می‌شود که ایمیل و رمز عبور وارد شده معتبر باشند. - اگر کاربر با این ایمیل و رمز عبور یافت نشود، پیام خطای مناسب برگردانده می‌شود. --- ## 📄 نمونه درخواست: ### درخواست کامل: ```json { "email": "janedoe@example.com", "password": "mypassword", "fcm": "fcm_token_example", "device_id": "device_id_example" } ``` ### پاسخ موفق: ```json { "id": 2, "fullname": "Jane Doe", "email": "janedoe@example.com", "token": "xyz987uvw654", "avatar": null } ``` """ def doc_verify(): return """ # 🐈 Scenario 📅️ تأیید حساب کاربری با کد تأیید کاربر پس از ثبت‌نام، باید با استفاده از کد تأییدی که به ایمیل او ارسال شده است، حساب کاربری خود را تأیید کند. در این مرحله، کاربر ایمیل و کد تأیید خود را ارسال می‌کند. --- ## 🚀 درخواست API ### URL: ``` POST /api/verify/ ``` ### Header: | کلید | مقدار | |---------------|---------------------------------| | Content-Type | application/json | | Authorization | Optional (برای این endpoint نیاز نیست) | ### Body: ```json { "email": "johndoe@example.com", "code": "12345" } ``` --- ## 📊 پاسخ‌ها | کد وضعیت | توضیحات | |---------------|-----------------------------------------------------------| | `201` | موفقیت‌آمیز - کاربر تأیید شد و توکن احراز هویت بازگردانده شد. | | `400` | درخواست نادرست - مشکلات مربوط به داده‌های ارسالی. | | `404` | کاربر یا کد تأیید یافت نشد. | | `410` | کد تأیید منقضی شده است. | | `500` | مشکل موقتی در سرور. | --- ## 📄 نمونه پاسخ موفقیت‌آمیز ```json { "token": "abc123def456", "user_id": 1, "phone_number": "1234567890", "email": "johndoe@example.com", "fullname": "John Doe", "avatar": null } ``` --- ## 📄 نمونه پاسخ خطا ### کد تأیید نادرست: ```json { "status": "error", "code": "invalid_verification_code", "status_code": 400, "message": "The verification code is invalid." } ``` ### کد تأیید منقضی شده است: ```json { "status": "error", "code": "expired_code", "status_code": 410, "message": "The verification code has expired." } ``` ### کاربر یا کد تأیید یافت نشد: ```json { "status": "error", "code": "not_found", "status_code": 404, "message": "Verification data not found or expired." } ``` ### مشکل موقتی در سرور: ```json { "status": "error", "code": "service_unavailable", "status_code": 500, "message": "Service temporarily unavailable." } ``` --- ## 💡 نکات مهم: 1. **کد تأیید:** - کد تأیید باید دقیقاً با کدی که به ایمیل کاربر ارسال شده مطابقت داشته باشد. - کد تأیید فقط برای یک مدت محدود اعتبار دارد. 2. **خطاها:** - اگر کد تأیید نادرست باشد، پیام مناسب بازگردانده می‌شود. - اگر کد تأیید منقضی شده باشد، کاربر باید درخواست کد جدید کند. 3. **توکن احراز هویت:** - پس از تأیید موفقیت‌آمیز، توکن احراز هویت به کاربر بازگردانده می‌شود که برای دسترسی به دیگر بخش‌های سیستم نیاز است. --- ### ولیدیشن‌ها: - **کد تأیید:** - باید حداکثر 5 کاراکتر باشد. - اگر کد معتبر نباشد یا منقضی شده باشد، پیام خطای مناسب برگردانده می‌شود. --- ## 📄 نمونه درخواست: ### درخواست کامل: ```json { "email": "janedoe@example.com", "code": "67890" } ``` ### پاسخ موفق: ```json { "token": "xyz987uvw654", "user_id": 2, "phone_number": "0987654321", "email": "janedoe@example.com", "fullname": "Jane Doe", "avatar": null } ``` """ def doc_register(): return """ # 🐈 Scenario ثبت نام کاربر کاربر با وارد کردن اطلاعات مورد نیاز شامل نام کامل، ایمیل، رمز عبور و تأیید رمز عبور درخواست ثبت‌نام ارسال می‌کند. پس از ثبت موفق، یک کد تأیید به ایمیل ارسال می‌شود که برای تکمیل ثبت‌نام مورد نیاز است. --- ## 🚀 درخواست API ### URL: ``` POST /api/register/ ``` ### Header: | کلید | مقدار | |---------------|---------------------------------| | Content-Type | application/json | | Authorization | Optional (برای این endpoint نیاز نیست) | ### Body: ```json { "fullname": "John Doe", "email": "johndoe@example.com", "password": "strongpassword", "password_confirmation": "strongpassword", "fcm": "fcm_token_optional", "device_id": "device_id_optional" } ``` --- ## 📊 پاسخ‌ها | کد وضعیت | توضیحات | |---------------|-----------------------------------------------------------| | `202` | موفقیت‌آمیز - کد تأیید به ایمیل کاربر ارسال شد. | | `400` | درخواست نادرست - مشکلات مربوط به داده‌های ارسالی. | | `409` | ایمیل قبلاً ثبت شده است. | | `404` | کاربر یا منبع یافت نشد. | | `410` | کد تأیید منقضی شده است. | | `500` | مشکل موقتی در سرور. | --- ## 📄 نمونه پاسخ موفقیت‌آمیز ```json { "user": { "id": 1, "fullname": "John Doe", "email": "johndoe@example.com" }, "message": "The otp code was sent to the user's email" } ``` --- ## 📄 نمونه پاسخ خطا ### ایمیل تکراری: ```json { "status": "error", "code": "validation_error", "status_code": 409, "message": "There were validation errors.", "errors": [ { "field": "email", "message": "This email is already registered." } ] } ``` ### رمز عبور و تأیید رمز عبور برابر نیستند: ```json { "status": "error", "code": "validation_error", "status_code": 400, "message": "There were validation errors.", "errors": [ { "field": "password_confirmation", "message": "Passwords do not match." } ] } ``` ### رمز عبور کوتاه‌تر از 8 کاراکتر است: ```json { "status": "error", "code": "validation_error", "status_code": 400, "message": "There were validation errors.", "errors": [ { "field": "password", "message": "Password must be at least 8 characters long." } ] } ``` ### درخواست نامعتبر (فیلدهای اجباری): ```json { "status": "error", "code": "validation_error", "status_code": 400, "message": "There were validation errors.", "errors": [ { "field": "fullname", "message": "This field is required." }, { "field": "email", "message": "This field is required." }, { "field": "password", "message": "This field is required." }, { "field": "password_confirmation", "message": "This field is required." } ] } ``` ### کاربر یافت نشد: ```json { "status": "error", "code": "not_found", "status_code": 404, "message": "The requested resource was not found." } ``` ### کد تأیید منقضی شده است: ```json { "status": "error", "code": "expired_code", "status_code": 410, "message": "The verification code has expired." } ``` ### مشکل موقتی در سرور: ```json { "status": "error", "code": "service_unavailable", "status_code": 500, "message": "Service temporarily unavailable." } ``` --- ## 💡 نکات مهم: 1. **رمز عبور:** - باید حداقل 8 کاراکتر باشد. - رمز عبور و تأیید رمز عبور (`password_confirmation`) باید یکسان باشند. 2. **ایمیل:** - باید یک آدرس ایمیل معتبر باشد. - ایمیل‌های تکراری مجاز نیستند. 3. **کد OTP:** - کد تأیید به ایمیل ارسال می‌شود و برای وریفای کاربر استفاده می‌شود. 4. **فیلدهای اختیاری:** - `fcm` و `device_id` در صورت نیاز می‌توانند ارسال شوند اما اجباری نیستند. --- ### ولیدیشن‌ها: - **ایمیل:** - بررسی می‌شود که در سیستم موجود نباشد. - اگر موجود باشد، پیام خطای زیر برگردانده می‌شود: ```json { "status": "error", "code": "validation_error", "status_code": 409, "message": "There were validation errors.", "errors": [ { "field": "email", "message": "This email is already registered." } ] } ``` - **رمز عبور:** - بررسی می‌شود که حداقل 8 کاراکتر باشد: ```json { "status": "error", "code": "validation_error", "status_code": 400, "message": "There were validation errors.", "errors": [ { "field": "password", "message": "Password must be at least 8 characters long." } ] } ``` - بررسی می‌شود که با `password_confirmation` یکسان باشد: ```json { "status": "error", "code": "validation_error", "status_code": 400, "message": "There were validation errors.", "errors": [ { "field": "password_confirmation", "message": "Passwords do not match." } ] } ``` --- ## 📄 نمونه درخواست: ### درخواست کامل: ```json { "fullname": "Jane Doe", "email": "janedoe@example.com", "password": "securepassword", "password_confirmation": "securepassword", "fcm": "fcm_token_example", "device_id": "device_id_example" } ``` ### پاسخ موفق: ```json { "user": { "id": 2, "fullname": "Jane Doe", "email": "janedoe@example.com" }, "message": "The otp code was sent to the user's email" } ``` """