You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
835 lines
23 KiB
835 lines
23 KiB
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"
|
|
}
|
|
```
|
|
"""
|