داکیومنت متد ایجاد کاربر
Route
http method: POST
{{prod}}/api/users
Headers:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
Parameters
{ "username": "test", "password": "test123@A", "role": "user" }
نوع داده ورودی برای اعتبار سنجی ایجاد کاربر، یک شیء با ویژگی های زیر است:
-
username: Required. یک رشته با حداقل طول ۵ کاراکتر و حداکثر طول ۳۶ کاراکتر. این ویژگی اجباری است.
-
password: Required. یک رشته که باید با استفاده از عبارت منظم خاصی الگویی را دنبال کند. رمز عبور باید حداقل شامل یک حرف کوچک، یک حرف بزرگ، یک رقم و یک کاراکتر ویژه باشد. رشته باید حداقل طول ۸ کاراکتر داشته باشد. این ویژگی اجباری است.
-
role: Required. نقش کاربر جدید. یک رشته که باید یا ‘user’ یا ‘admin’ باشد. این ویژگی اجباری است.
-
profile: Optional. یک شیء اختیاری شامل اطلاعات کاربر با ویژگی های زیر:
- firstName: نام کاربر جدید. یک رشته که نام کوچک کاربر را نشان می دهد.
- lastName: نام خانوادگی کاربر جدید. یک رشته که نام خانوادگی کاربر را نشان می دهد.
- email: یک رشته که آدرس ایمیل کاربر را نشان می دهد. رشته باید الگوی استاندارد ایمیل را دنبال کند.
- phoneNumber: یک رشته که شماره تلفن کاربر را نشان می دهد. رشته باید الگوی یک شماره تلفن ایرانی را دنبال کند که با ‘۰۹’ شروع می شود و در کل ۱۱ رقم است
تمامی ویژگی های فوق دارای پیام های خطای مربوط به خود هستند، در صورتی که قوانین اعتبارسنجی مربوط به آنها برآورده نشوند.
Return Value
این متد ریسپانسی به کلاینت که شامل اطلاعات کاربر ایجاد شده است بازمیگرداند.
Errors
اگر اروری در طی عملیات ایجاد کاربر اتفاق بیفتد، فانکشن next فراخوانی میگردد. این ارور میتواند شامل:
- ValidationError (زمانی رخ میدهد که اطلاعات ورودی مطابق ساختار مورد نظر نباشد)
- DatabaseError (زمانی رخ میدهد مشکلی در ارتباط با دیتابیس در حین ایجاد کاربر رخ دهد) باشد.
Restricts
تنها سوپر ادمین و ادمینها میتوانند کاربران را ایجاد کنند.

داکیومنت متد لاگین LOGIN
Route
http method: POST
{{prod}}/users/login
Parameters
{ "username": "test", "password": "test123@A" }
نوع داده ورودی برای اعتبار سنجی ایجاد کاربر، یک شیء با ویژگی های زیر است:
Attributes:
- username: Required. یک رشته با حداقل طول ۵ کاراکتر و حداکثر طول ۳۶ کاراکتر. این ویژگی اجباری است.
- password: Required. یک رشته که باید با استفاده از عبارت منظم خاصی الگویی را دنبال کند. رمز عبور باید حداقل شامل یک حرف کوچک، یک حرف بزرگ، یک رقم و یک کاراکتر ویژه باشد. رشته باید حداقل طول ۸ کاراکتر داشته باشد. این ویژگی اجباری است.
Return Value
در صورت موفقیت آمیز بودن این فرایند، ریسپانسی شامل توکن اعتبارسنجی به کلاینت ارسال میگردد.

داکیومنت متد حذف کاربر
Route
http method: DELETE
{{prod}}/api/users/{userID}
Headers:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
Response:
{
"status": 200,
"message": "User deleted successfully",
"data": {
"id": "12345",
"name": "John Doe",
"email": "johndoe@example.com",
"role": "user",
"createdAt": "2022-03-31T14:23:06.000Z",
"updatedAt": "2022-04-01T10:07:19.000Z"
}
}
اگر کاربر مجاز به حذف کاربر مورد نظر باشد، این متد کاربر با شناسه ارائه شده را از پایگاه داده حذف کرده و سند حذف شده را به عنوان پاسخ باز می گرداند. اگر کاربر با شناسه داده شده یافت نشد یا کاربر تأیید شده مجوز حذف کاربر را ندارشته باشد، یک پیام خطا به عنوان پاسخ برگردانده می شود.
درخواست با استفاده از توکن bearer در هدر Authorization تأیید می شود. اگر کاربر درخواست دهنده مجاز به حذف کاربر مورد نظر باشد، متد کاربر را از پایگاه داده حذف کرده و ریسپانس موفقیت آمیزی با سند حذف شده را باز می گرداند.
Restricts
تنها سوپر ادمین و ادمینها میتوانند کاربران را حذف کنند.

داکیومنت متد آپدیت اطلاعات کاربر
Route
http method: PATCH
{{prod}}/api/users/{userID}
Headers:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
Parameters
{ "username": "test", "role": "user", "profile": { "firstName": "alii" } }
Behavior
این متد برای بروزرسانی اطلاعات یک کاربر استفاده میشود. درخواست مربوطه باید شامل اطلاعات کاربری که قرار است به روزرسانی شود، شامل نام کاربری، نقش کاربری و پروفایل کاربری باشد. در صورتی که کاربر مشخص شده با شناسه داده شده در درخواست پیدا نشود یا کاربری که درخواست را ارسال کرده است مجوز مورد نیاز برای انجام این کار را ندارد، پیغام خطا به عنوان پاسخ ارسال میشود.
درخواست با استفاده از توکن مجوز دسترسی در هدر Authorization تأیید میشود. اگر کاربری که درخواست را ارسال کرده است مجوز لازم برای بروزرسانی کاربر مورد نظر را داشته باشد، متد کاربر مورد نظر را با استفاده از اطلاعات ارسالی درخواست به روزرسانی کرده و سپس سند بهروز شده به عنوان پاسخ ارسال میشود.
Restricts
تنها سوپر ادمین و ادمینها میتوانند اطلاعات کاربران را آپدیت کنند.

داکیومنت متد دریافت اطلاعات کاربر
Route
http method: GET
{{prod}}/api/users/{userID}
Headers:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
Behavior
ابتدا تابع بررسی میکند که آیا کاربر احراز هویت شده است یا نه. اگر کاربر احراز هویت نشده باشد، پیام خطای “غیرمجاز” به کلاینت ارسال میشود. سپس، تابع بررسی میکند که شناسه کاربری وجود دارد یا خیر. اگر وجود نداشته باشد، پیام خطای مناسبی به کلاینت ارسال میشود. همچنین، تابع نقش کاربر را بررسی میکند و بر اساس آن، دسترسی کاربر را تأیید میکند یا رد میکند. اگر کاربر دسترسی نداشته باشد، پیام خطای مناسبی به کلاینت ارسال میشود. اگر کاربر احراز هویت شده باشد، شناسه کاربری وجود داشته باشد و کاربر دسترسی لازم را داشته باشد، تابع اطلاعات کاربر را از جدول دریافت کرده و به کلاینت برمیگرداند.
Restricts
تنها سوپر ادمین و ادمینها میتوانند اطلاعات کاربران را دریافت کنند.

داکیومنت متد دریافت اطلاعات همه کاربران
Route
http method: GET
{{prod}}/api/password/users
Headers:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
Parameters
{ "offs": "1", "limit": "100", "startTimeStamp": "2022-12-02T08:52:04.647Z", "endTimeStamp": "2023-12-20T05:21:11.182Z", }
Behavior
ابتدا تابع بررسی میکند که آیا کاربر احراز هویت شده است یا نه. اگر کاربر احراز هویت نشده باشد، پیام خطای “غیرمجاز” به کلاینت ارسال میشود. سپس، تابع بررسی میکند که شناسه کاربری وجود دارد یا خیر. اگر وجود نداشته باشد، پیام خطای مناسبی به کلاینت ارسال میشود. همچنین، تابع نقش کاربر را بررسی میکند و بر اساس آن، دسترسی کاربر را تأیید میکند یا رد میکند. اگر کاربر دسترسی نداشته باشد، پیام خطای مناسبی به کلاینت ارسال میشود. اگر کاربر احراز هویت شده باشد، شناسه کاربری وجود داشته باشد و کاربر دسترسی لازم را داشته باشد، تابع اطلاعات کاربر را از جدول دریافت کرده و به کلاینت برمیگرداند.
Restricts
تنها سوپر ادمین و ادمینها میتوانند اطلاعات کاربران را دریافت کنند.

داکیومنت متد آپدیت پسوورد کاربر
Route
http method: PATCH
{{prod}}/api/users/{userID}
Headers:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
Parameters
{ "currentPassword": "testA123@A", "newPassword": "testA123@B", "confirmNewPassword": "testA123@B" }
Response
| Field | Type | Description |
|---|---|---|
| data | Object | The updated user object |
Error Responses
| Status Code | Description |
|---|---|
| 400 | One of the following conditions is met:
|
| 401 | The user is not authenticated. |
| 403 | The user does not have sufficient privileges to update the password. |
| 500 | An unexpected error occurred. |
Behavior
ابتدا تابع بررسی میکند که آیا کاربر احراز هویت شده است یا نه. اگر کاربر احراز هویت نشده باشد، پیام خطای “غیرمجاز” به کلاینت ارسال میشود. سپس، تابع بررسی میکند که شناسه کاربری وجود دارد یا خیر. اگر وجود نداشته باشد، پیام خطای مناسبی به کلاینت ارسال میشود. همچنین، تابع نقش کاربر را بررسی میکند و بر اساس آن، دسترسی کاربر را تأیید میکند یا رد میکند. اگر کاربر دسترسی نداشته باشد، پیام خطای مناسبی به کلاینت ارسال میشود. اگر کاربر احراز هویت شده باشد، شناسه کاربری وجود داشته باشد و کاربر دسترسی لازم را داشته باشد، تابع اطلاعات کاربر را از جدول دریافت کرده و به کلاینت برمیگرداند.
Restricts
تنها سوپر ادمین و ادمینها میتوانند پسوورد کاربران را آپدیت کنند.

داکیومنت متد ایجاد apiKey
Route
http method: POST
{{prod}}/api/apikeys
Headers:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
Parameters
{ "UserId": "2b721c8f-523e-4cc9-91d1-7a8eefd0c810", "maxCount": 1000, "expireDate": "24h" }
نوع داده ورودی برای اعتبار سنجی ایجاد ApiKey، یک شیء با ویژگی های زیر است:
-
expireDate: (ضروری): یک رشته که تاریخ انقضای کلید API را نشان میدهد. فرمت این رشته باید به صورت /^([0-9]+)([dhDH])$/ باشد که بخش اول آن تعداد واحدهای زمانی (ساعت یا روز) و بخش دوم آن شناسه واحد زمانی (d برای روزها و h برای ساعتها) را مشخص میکند.
-
UserId (ضروری): یک رشته که شناسه کاربر مرتبط با کلید API را نشان میدهد. این رشته باید یک رشته UUID معتبر باشد.
-
maxCount: یک پارامتر اختیاری که تعداد حداکثر بار استفاده از کلید API را نشان میدهد. اگر مشخص نشود، تعداد بارهای استفاده از کلید API محدودیت نخواهد داشت.
Response
{ "value": "55a41dfe248ae04d72bc7a94c4daa1c2a4d4f70ef5c5...", "UserId": "2b721c8f-523e-4cc9-91d1-7a8eefd0c810", "expireDate": "2023-04-09T10:02:56.000Z", "maxCount": 1000 }
Restricts
تنها سوپر ادمین و ادمینها میتوانند ApiKey را ایجاد کنند.

داکیومنت متد آپدیت apiKey
Route
http method: PATCH
{{prod}}/api/apikeys/{apikeyID}
Headers:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
Parameters
{ "maxCount": 1000, "expireDate": "1d" }
نوع داده ورودی برای اعتبار سنجی آپدیت apiKey، یک شیء با ویژگی های زیر است:
-
expireDate: یک رشته که تاریخ انقضای کلید API را نشان میدهد. فرمت این رشته باید به صورت /^([0-9]+)([dhDH])$/ باشد که بخش اول آن تعداد واحدهای زمانی (ساعت یا روز) و بخش دوم آن شناسه واحد زمانی (d برای روزها و h برای ساعتها) را مشخص میکند.
-
id (ضروری): یک رشته که شناسه apiKey مورد نظر برای بهروزرسانی کلید API را نشان میدهد. این رشته باید یک رشته UUID معتبر باشد.
-
maxCount: یک پارامتر اختیاری که تعداد حداکثر بار استفاده از کلید API را نشان میدهد. اگر مشخص نشود، تعداد بارهای استفاده از کلید API محدودیت نخواهد داشت.
-
isValid: یک پارامتر اختیاری که برای اعتبارسنجی کلید API استفاده میشود. اگر این پارامتر مقدار true باشد، کلید API فعال باقی میماند و در غیر این صورت غیرفعال میشود.
متد آپدیت apikey شناسه apikey را میگیرد. اگر کاربر مجاز به آپدیت apikey مورد نظر باشد، این متد apikey با شناسه ارائه شده را از پایگاه داده آپدیت کرده و سند آپدیت شده را به عنوان پاسخ باز می گرداند. اگر کاربر با شناسه داده شده یافت نشد یا کاربر تأیید شده مجوز آپدیت کاربر را ندارشته باشد، یک پیام خطا به عنوان پاسخ برگردانده می شود.
درخواست با استفاده از توکن bearer در هدر Authorization تأیید می شود. اگر کاربر درخواست دهنده مجاز به آپدیت apikey مورد نظر باشد، متد apikey را از پایگاه داده آپدیت کرده و ریسپانس موفقیت آمیزی با سند آپدیت شده را باز می گرداند.
Response
{ "id": "01234567-89ab-cdef-0123-456789abcdef", "userId": "01234567-89ab-cdef-0123-456789abcdef", "value": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef", "expireDate": "2023-04-09T00:10:00.000Z", "maxCount": 1000, "isValid": true, "createdAt": "2023-04-08T00:00:00.000Z", "updatedAt": "2023-04-08T01:23:45.000Z" }
Restricts
تنها سوپر ادمین و ادمینها میتوانند ApiKey را آپدیت کنند.

داکیومنت متد حذف apiKey
Route
http method: DELETE
{{prod}}/api/apikeys/{apikeyID}
Headers:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
متد حذف apikey شناسه apikey را میگیرد از (req.params.id). اگر کاربر مجاز به حذف apikey مورد نظر باشد، این متد apikey با شناسه ارائه شده را از پایگاه داده حذف کرده و سند حذف شده را به عنوان پاسخ باز می گرداند. اگر کاربر با شناسه داده شده یافت نشد یا کاربر تأیید شده مجوز حذف کاربر را ندارشته باشد، یک پیام خطا به عنوان پاسخ برگردانده می شود.
درخواست با استفاده از توکن bearer در هدر Authorization تأیید می شود. اگر کاربر درخواست دهنده مجاز به حذف apikey مورد نظر باشد، متد apikey را از پایگاه داده حذف کرده و ریسپانس موفقیت آمیزی با سند حذف شده را باز می گرداند.
Restricts
تنها سوپر ادمین و ادمینها میتوانند apiKey را حذف کنند.

داکیومنت متد دریافت اطلاعات apikey
Route
http method: GET
{{prod}}/api/apikeys/{apikeyID}
Headers:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
Behavior
ابتدا تابع بررسی میکند که آیا کاربر احراز هویت شده است یا نه. اگر کاربر احراز هویت نشده باشد، پیام خطای “غیرمجاز” به کلاینت ارسال میشود. سپس، تابع بررسی میکند که شناسه apikey وجود دارد یا خیر. اگر وجود نداشته باشد، پیام خطای مناسبی به کلاینت ارسال میشود. همچنین، تابع نقش کاربر را بررسی میکند و بر اساس آن، دسترسی کاربر را تأیید میکند یا رد میکند. اگر کاربر دسترسی نداشته باشد، پیام خطای مناسبی به کلاینت ارسال میشود. اگر کاربر احراز هویت شده باشد، شناسه apikey وجود داشته باشد و کاربر دسترسی لازم را داشته باشد، تابع اطلاعات apikey را از جدول دریافت کرده و به کلاینت برمیگرداند.
Restricts
تنها سوپر ادمین و ادمینها میتوانند اطلاعات apikey را دریافت کنند.

داکیومنت متد دریافت اطلاعات همه apikey ها
Route
http method: GET
{{prod}}/api/apikeys/{apikeyID}
Headers:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
Parameters
{ "offs": "1", "limit": "100", "startTimeStamp": "2022-12-02T08:52:04.647Z", "endTimeStamp": "2023-12-20T05:21:11.182Z", }
Behavior
ابتدا تابع بررسی میکند که آیا کاربر احراز هویت شده است یا نه. اگر کاربر احراز هویت نشده باشد، پیام خطای “غیرمجاز” به کلاینت ارسال میشود. همچنین، تابع نقش کاربر را بررسی میکند و بر اساس آن، دسترسی کاربر را تأیید میکند یا رد میکند. اگر کاربر دسترسی نداشته باشد، پیام خطای مناسبی به کلاینت ارسال میشود. اگر کاربر احراز هویت شده باشد و کاربر دسترسی لازم را داشته باشد، تابع اطلاعات apikey ها را از جدول دریافت کرده و به کلاینت برمیگرداند.
Restricts
تنها سوپر ادمین و ادمینها میتوانند اطلاعات apikey ها را دریافت کنند.
داکیومنت متد ایجاد project
Route
http method: POST
{{prod}}/api/projects
Headers:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
Parameters
{ "name": "sgw" }
نوع داده ورودی برای اعتبار سنجی ایجاد project، یک شیء با ویژگی های زیر است:
- name: (ضروری): یک رشته که نام پروژه را نشان میدهد
Response
{ "id": "7670da1a-2f6d-4214-babb-8b4ddawsasda5", "name": "dasfsdfsdf", "updatedAt": "2023-04-08T06:57:21.984Z", "createdAt": "2023-04-08T06:57:21.984Z" }
Behavior
ابتدا تابع بررسی میکند که آیا کاربر احراز هویت شده است یا نه. اگر کاربر احراز هویت نشده باشد، پیام خطای “غیرمجاز” به کلاینت ارسال میشود. همچنین، تابع نقش کاربر را بررسی میکند و بر اساس آن، دسترسی کاربر را تأیید میکند یا رد میکند. اگر کاربر دسترسی نداشته باشد، پیام خطای مناسبی به کلاینت ارسال میشود. اگر کاربر احراز هویت شده باشد و کاربر دسترسی لازم را داشته باشد، تابع اطلاعات project ها را از جدول دریافت کرده و به کلاینت برمیگرداند.
Restricts
تنها سوپر ادمین و ادمینها میتوانند اطلاعات project ها را دریافت کنند.
داکیومنت متد حذف project
Route
http method: DELETE
{{prod}}/api/projects/{projectID}
Headers:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
متد حذف project شناسه project را میگیرد از (req.params.id). اگر کاربر مجاز به حذف project مورد نظر باشد، این متد project با شناسه ارائه شده را از پایگاه داده حذف کرده و سند حذف شده را به عنوان پاسخ باز می گرداند. اگر کاربر با شناسه داده شده یافت نشد یا کاربر تأیید شده مجوز حذف کاربر را ندارشته باشد، یک پیام خطا به عنوان پاسخ برگردانده می شود.
درخواست با استفاده از توکن bearer در هدر Authorization تأیید می شود. اگر کاربر درخواست دهنده مجاز به حذف project مورد نظر باشد، متد project را از پایگاه داده حذف کرده و ریسپانس موفقیت آمیزی با سند حذف شده را باز می گرداند.
Restricts
تنها سوپر ادمین و ادمینها میتوانند project را حذف کنند.

داکیومنت متد دریافت اطلاعات همه project ها
Route
http method: GET
{{prod}}/api/projects/{projectID}
Headers:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
Parameters
{ "offs": "1", "limit": "100", "startTimeStamp": "2022-12-02T08:52:04.647Z", "endTimeStamp": "2023-12-20T05:21:11.182Z", }
Behavior
ابتدا تابع بررسی میکند که آیا کاربر احراز هویت شده است یا نه. اگر کاربر احراز هویت نشده باشد، پیام خطای “غیرمجاز” به کلاینت ارسال میشود. همچنین، تابع نقش کاربر را بررسی میکند و بر اساس آن، دسترسی کاربر را تأیید میکند یا رد میکند. اگر کاربر دسترسی نداشته باشد، پیام خطای مناسبی به کلاینت ارسال میشود. اگر کاربر احراز هویت شده باشد و کاربر دسترسی لازم را داشته باشد، تابع اطلاعات project ها را از جدول دریافت کرده و به کلاینت برمیگرداند.
Restricts
تنها سوپر ادمین و ادمینها میتوانند اطلاعات project ها را دریافت کنند.
داکیومنت متد دریافت اطلاعات project
Route
http method: GET
{{prod}}/api/projects/{projectID}
Headers:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
Behavior
ابتدا تابع بررسی میکند که آیا کاربر احراز هویت شده است یا نه. اگر کاربر احراز هویت نشده باشد، پیام خطای “غیرمجاز” به کلاینت ارسال میشود. سپس، تابع بررسی میکند که شناسه project وجود دارد یا خیر. اگر وجود نداشته باشد، پیام خطای مناسبی به کلاینت ارسال میشود. همچنین، تابع نقش کاربر را بررسی میکند و بر اساس آن، دسترسی کاربر را تأیید میکند یا رد میکند. اگر کاربر دسترسی نداشته باشد، پیام خطای مناسبی به کلاینت ارسال میشود. اگر کاربر احراز هویت شده باشد، شناسه project وجود داشته باشد و کاربر دسترسی لازم را داشته باشد، تابع اطلاعات project را از جدول دریافت کرده و به کلاینت برمیگرداند.
Restricts
تنها سوپر ادمین و ادمینها میتوانند اطلاعات project را دریافت کنند.
داکیومنت متد آپدیت project
Route
http method: PATCH
{{prod}}/api/projects/{projectID}
Headers:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
Parameters
{ "name": "fsdfsdf" }
نوع داده ورودی برای اعتبار سنجی آپدیت project، یک شیء با ویژگی های زیر است:
- name: (ضروری): یک رشته که نام پروژه را نشان میدهد
متد آپدیت project شناسه project را میگیرد. اگر کاربر مجاز به آپدیت project مورد نظر باشد، این متد project با شناسه ارائه شده را از پایگاه داده آپدیت کرده و سند آپدیت شده را به عنوان پاسخ باز می گرداند. اگر کاربر با شناسه داده شده یافت نشد یا کاربر تأیید شده مجوز آپدیت کاربر را ندارشته باشد، یک پیام خطا به عنوان پاسخ برگردانده می شود.
درخواست با استفاده از توکن bearer در هدر Authorization تأیید می شود. اگر کاربر درخواست دهنده مجاز به آپدیت project مورد نظر باشد، متد project را از پایگاه داده آپدیت کرده و ریسپانس موفقیت آمیزی با سند آپدیت شده را باز می گرداند.
Response
"message":[ 1 ]
Restricts
تنها سوپر ادمین و ادمینها میتوانند project را آپدیت کنند.
داکیومنت متد ایجاد service
Route
http method: POST
{{prod}}/api/services
Headers:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
Parameters
{ "id": "851d6d91-fb0d-4e72-b5ea-b901tyutyu657b9", "name": "vehicleIDCardRecognition3434", "queue": "vehicleIDCardRecognition3434", "ProjectId": "7670da1a-2f6d-4214-babb-8b4dd56786783a5", "validation": { "type": "object", "required": [ "imagePath" ], "properties": { "name": { "enum": [ "1", "true", "True", true, false, 1, 0, "false", "False", "0" ] }, "base64": { "enum": [ "1", "true", "True", true, false, 1, 0, "false", "False", "0" ] }, "capacity": { "enum": [ "1", "true", "True", true, false, 1, 0, "false", "False", "0" ] }, "checksum": { "enum": [ "1", "true", "True", true, false, 1, 0, "false", "False", "0" ] }, "imagePath": { "enum": [ "1", "true", "True", true, false, 1, 0, "false", "False", "0" ] }, "nationalCode": { "enum": [ "1", "true", "True", true, false, 1, 0, "false", "False", "0" ] }, }, "errorMessage": { "type": "ورودی یکی از مقادیر روبرو میباشد ['1', 'true', 'True', true, false, 1, 0, 'false', 'False', '0']", "required": { "imagePath": "imagePath الزامی است" }, "properties": {} }, "additionalProperties": true }, "apis": [ { } ], "updatedAt": "2023-04-08T07:19:28.331Z", "createdAt": "2023-04-08T07:19:28.331Z" }
نوع داده ورودی برای اعتبار سنجی ایجاد service، یک شیء با ویژگی های زیر است:
- name: یک رشته ضروری که نمایانگر نام سرویس است
- ProjectId: یک رشته ضروری که نمایانگر شناسه پروژه است.
- validation: یک شیء ضروری است.
- queue: یک رشته ضروری که نام صف را نشان می دهد.
- apis: یک آرایه ضروری از شیء ها، هر کدام شامل ویژگی های زیر می باشد:
1- method: یک آرایه از رشته ها که نشان دهنده متد های HTTP پشتیبانی شده توسط API است. تنها مقادیر get و post مجاز هستند.
2- path: یک رشته که نشان دهنده مسیر URL API است.
3- files: یک آرایه اختیاری از شیء ها، هر کدام شامل ویژگی های زیر می باشد:
4- name: یک رشته ضروری که نام فایل را نشان می دهد.
5- type: یک رشته ضروری که نوع فایل را نشان می دهد. تنها مقادیر تصویر، ویدئو و صدا مجاز هستند.
6- howGet: یک رشته ضروری که نشان دهنده روش استفاده شده برای دریافت فایل است. تنها مقادیر فایل، لینک و بیس ۶۴ مجاز هستند.
7- required: یک بولین اختیاری که نشان می دهد آیا فایل لازم است یا خیر. اگر مشخص نشده باشد، به صورت پیش فرض به false تنظیم می شود.
Response
{ "id": "851d6d91-fb0d-4e72-b5ea-b901tyutyu657b9", "name": "vehicleIDCardRecognition3434", "queue": "vehicleIDCardRecognition3434", "ProjectId": "7670da1a-2f6d-4214-babb-8b4dd56786783a5", "validation": { "type": "object", "required": [ "imagePath" ], "properties": { "name": { "enum": [ "1", "true", "True", true, false, 1, 0, "false", "False", "0" ] }, "base64": { "enum": [ "1", "true", "True", true, false, 1, 0, "false", "False", "0" ] }, "capacity": { "enum": [ "1", "true", "True", true, false, 1, 0, "false", "False", "0" ] }, "checksum": { "enum": [ "1", "true", "True", true, false, 1, 0, "false", "False", "0" ] }, "imagePath": { "enum": [ "1", "true", "True", true, false, 1, 0, "false", "False", "0" ] }, "nationalCode": { "enum": [ "1", "true", "True", true, false, 1, 0, "false", "False", "0" ] }, }, "errorMessage": { "type": "ورودی یکی از مقادیر روبرو میباشد ['1', 'true', 'True', true, false, 1, 0, 'false', 'False', '0']", "required": { "imagePath": "imagePath الزامی است" }, "properties": {} }, "additionalProperties": true }, "apis": [ { } ], "updatedAt": "2023-04-08T07:19:28.331Z", "createdAt": "2023-04-08T07:19:28.331Z" }
Behavior
ابتدا تابع بررسی میکند که آیا کاربر احراز هویت شده است یا نه. اگر کاربر احراز هویت نشده باشد، پیام خطای “غیرمجاز” به کلاینت ارسال میشود. همچنین، تابع نقش کاربر را بررسی میکند و بر اساس آن، دسترسی کاربر را تأیید میکند یا رد میکند. اگر کاربر دسترسی نداشته باشد، پیام خطای مناسبی به کلاینت ارسال میشود. اگر کاربر احراز هویت شده باشد و کاربر دسترسی لازم را داشته باشد، تابع اطلاعات service ها را از جدول دریافت کرده و به کلاینت برمیگرداند.
Restricts
تنها سوپر ادمین و ادمینها میتوانند اطلاعات service ها را ایجاد کنند.
داکیومنت متد آپدیت service
Route
http method: PATCH
{{prod}}/api/services/{serviceID}
Headers:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
Parameters
{ "name": "vehicleIDCardRecognition3434", "queue": "vehicleIDCardRecognition3434", "ProjectId": "7670da1a-2f6d-4214-babb-8b4dd56786783a5", "validation": { "type": "object", "required": [ "imagePath" ], "properties": { "name": { "enum": [ "1", "true", "True", true, false, 1, 0, "false", "False", "0" ] }, "base64": { "enum": [ "1", "true", "True", true, false, 1, 0, "false", "False", "0" ] }, "capacity": { "enum": [ "1", "true", "True", true, false, 1, 0, "false", "False", "0" ] }, "checksum": { "enum": [ "1", "true", "True", true, false, 1, 0, "false", "False", "0" ] }, "imagePath": { "enum": [ "1", "true", "True", true, false, 1, 0, "false", "False", "0" ] }, "nationalCode": { "enum": [ "1", "true", "True", true, false, 1, 0, "false", "False", "0" ] }, }, "errorMessage": { "type": "ورودی یکی از مقادیر روبرو میباشد ['1', 'true', 'True', true, false, 1, 0, 'false', 'False', '0']", "required": { "imagePath": "imagePath الزامی است" }, "properties": {} }, "additionalProperties": true }, "apis": [ { } ], "updatedAt": "2023-04-08T07:19:28.331Z", "createdAt": "2023-04-08T07:19:28.331Z" }
نوع داده ورودی برای اعتبار سنجی ایجاد service، یک شیء با ویژگی های زیر است:
- name: یک رشته ضروری که نمایانگر نام سرویس است
- ProjectId: یک رشته ضروری که نمایانگر شناسه پروژه است.
- validation: یک شیء ضروری است.
- queue: یک رشته ضروری که نام صف را نشان می دهد.
- apis: یک آرایه ضروری از شیء ها، هر کدام شامل ویژگی های زیر می باشد:
1- method: یک آرایه از رشته ها که نشان دهنده متد های HTTP پشتیبانی شده توسط API است. تنها مقادیر get و post مجاز هستند.
2- path: یک رشته که نشان دهنده مسیر URL API است.
3- files: یک آرایه اختیاری از شیء ها، هر کدام شامل ویژگی های زیر می باشد:
4- name: یک رشته ضروری که نام فایل را نشان می دهد.
5- type: یک رشته ضروری که نوع فایل را نشان می دهد. تنها مقادیر تصویر، ویدئو و صدا مجاز هستند.
6- howGet: یک رشته ضروری که نشان دهنده روش استفاده شده برای دریافت فایل است. تنها مقادیر فایل، لینک و بیس ۶۴ مجاز هستند.
7- required: یک بولین اختیاری که نشان می دهد آیا فایل لازم است یا خیر. اگر مشخص نشده باشد، به صورت پیش فرض به false تنظیم می شود.
Response
{ "id": "851d6d91-fb0d-4e72-b5ea-b901tyutyu657b9", "name": "vehicleIDCardRecognition3434", "queue": "vehicleIDCardRecognition3434", "ProjectId": "7670da1a-2f6d-4214-babb-8b4dd56786783a5", "validation": { "type": "object", "required": [ "imagePath" ], "properties": { "name": { "enum": [ "1", "true", "True", true, false, 1, 0, "false", "False", "0" ] }, "base64": { "enum": [ "1", "true", "True", true, false, 1, 0, "false", "False", "0" ] }, "capacity": { "enum": [ "1", "true", "True", true, false, 1, 0, "false", "False", "0" ] }, "checksum": { "enum": [ "1", "true", "True", true, false, 1, 0, "false", "False", "0" ] }, "imagePath": { "enum": [ "1", "true", "True", true, false, 1, 0, "false", "False", "0" ] }, "nationalCode": { "enum": [ "1", "true", "True", true, false, 1, 0, "false", "False", "0" ] }, }, "errorMessage": { "type": "ورودی یکی از مقادیر روبرو میباشد ['1', 'true', 'True', true, false, 1, 0, 'false', 'False', '0']", "required": { "imagePath": "imagePath الزامی است" }, "properties": {} }, "additionalProperties": true }, "apis": [ { } ], "updatedAt": "2023-04-08T07:19:28.331Z", "createdAt": "2023-04-08T07:19:28.331Z" }
Behavior
ابتدا تابع بررسی میکند که آیا کاربر احراز هویت شده است یا نه. اگر کاربر احراز هویت نشده باشد، پیام خطای “غیرمجاز” به کلاینت ارسال میشود. همچنین، تابع نقش کاربر را بررسی میکند و بر اساس آن، دسترسی کاربر را تأیید میکند یا رد میکند. اگر کاربر دسترسی نداشته باشد، پیام خطای مناسبی به کلاینت ارسال میشود. اگر کاربر احراز هویت شده باشد و کاربر دسترسی لازم را داشته باشد، تابع اطلاعات service ها را از جدول دریافت کرده و به کلاینت برمیگرداند.
Restricts
تنها سوپر ادمین و ادمینها میتوانند اطلاعات service ها را آپدیت کنند.
داکیومنت متد دریافت اطلاعات service
Route
http method: GET
{{prod}}/api/services/{serviceID}
Headers:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
Behavior
ابتدا تابع بررسی میکند که آیا کاربر احراز هویت شده است یا نه. اگر کاربر احراز هویت نشده باشد، پیام خطای “غیرمجاز” به کلاینت ارسال میشود. سپس، تابع بررسی میکند که شناسه کاربری وجود دارد یا خیر. اگر وجود نداشته باشد، پیام خطای مناسبی به کلاینت ارسال میشود. همچنین، تابع نقش کاربر را بررسی میکند و بر اساس آن، دسترسی کاربر را تأیید میکند یا رد میکند. اگر کاربر دسترسی نداشته باشد، پیام خطای مناسبی به کلاینت ارسال میشود. اگر کاربر احراز هویت شده باشد، شناسه کاربری وجود داشته باشد و کاربر دسترسی لازم را داشته باشد، تابع اطلاعات service را از جدول دریافت کرده و به کلاینت برمیگرداند.
Restricts
تنها سوپر ادمین و ادمینها میتوانند اطلاعات service را دریافت کنند.
داکیومنت متد دریافت اطلاعات همه service ها
Route
http method: GET
{{prod}}/api/services/{serviceID}
Headers:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
Parameters
{ "offs": "1", "limit": "100", "startTimeStamp": "2022-12-02T08:52:04.647Z", "endTimeStamp": "2023-12-20T05:21:11.182Z", }
Behavior
ابتدا تابع بررسی میکند که آیا کاربر احراز هویت شده است یا نه. اگر کاربر احراز هویت نشده باشد، پیام خطای “غیرمجاز” به کلاینت ارسال میشود. همچنین، تابع نقش کاربر را بررسی میکند و بر اساس آن، دسترسی کاربر را تأیید میکند یا رد میکند. اگر کاربر دسترسی نداشته باشد، پیام خطای مناسبی به کلاینت ارسال میشود. اگر کاربر احراز هویت شده باشد و کاربر دسترسی لازم را داشته باشد، تابع اطلاعات service ها را از جدول دریافت کرده و به کلاینت برمیگرداند.
Restricts
تنها سوپر ادمین و ادمینها میتوانند اطلاعات service ها را دریافت کنند.
داکیومنت متد حذف service
Route
http method: DELETE
{{prod}}/api/services/{serviceID}
Headers:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
متد حذف service شناسه service را میگیرد از (req.params.id). اگر کاربر مجاز به حذف service مورد نظر باشد، این متد service با شناسه ارائه شده را از پایگاه داده حذف کرده و سند حذف شده را به عنوان پاسخ باز می گرداند. اگر کاربر با شناسه داده شده یافت نشد یا کاربر تأیید شده مجوز حذف کاربر را ندارشته باشد، یک پیام خطا به عنوان پاسخ برگردانده می شود.
درخواست با استفاده از توکن bearer در هدر Authorization تأیید می شود. اگر کاربر درخواست دهنده مجاز به حذف service مورد نظر باشد، متد service را از پایگاه داده حذف کرده و ریسپانس موفقیت آمیزی با سند حذف شده را باز می گرداند.
Restricts
تنها سوپر ادمین و ادمینها میتوانند service را حذف کنند.

داکیومنت متد ایجاد api
Route
http method: POST
{{prod}}/api/apis
Headers:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
Parameters
{ "ApiKeyId": "ed7f7ffe-745c-4f0a-9ce7-c859asdaa474", "ServiceId": "f2955049-10a3-40a7-8dda-9472asdads0a6eb", "apis": [ { "path": "vehicleIDCardRecognition/file", "method": [ "post" ] }, { "path": "vehicleIDCardRecognition/*", "method": [ "get" ] } ], "TPM": 200, "policies": {} }
نوع داده ورودی برای اعتبار سنجی ایجاد api، یک شیء با ویژگی های زیر است:
- apiKeyId: یک رشته اجباری که نشان دهنده شناسه apiKey است. مقدار باید یک GUID باشد.
- serviceId: یک رشته اجباری که نشان دهنده شناسه سرویس است. مقدار باید یک GUID باشد.
- apis: یک آرایه اجباری از شیء ها که شامل ویژگی های زیر است: 1- method: یک آرایه از رشته ها که نشان دهنده روش های HTTP است که API پشتیبانی می کند. تنها مقادیر “get” و “post” مجاز هستند. 2- path: یک رشته که نشان دهنده مسیر URL API است.
- TPM: یک عدد صحیح اجباری که حداکثر تعداد تراکنش های مجاز در دقیقه را نشان می دهد.
- maxCount: یک عدد صحیح اختیاری که حداکثر تعداد تراکنش های مجاز را نشان می دهد.
- policies: یک شیء اختیاری که شامل دو خصوصیت اختیاری است: 1- image: یک شیء که یک خصوصیت اختیاری دارد: 2- size: یک عدد که حداکثر اندازه مجاز یک تصویر را نشان می دهد.
- video: یک شیء که دو خصوصیت اختیاری دارد: 1- size: یک عدد که حداکثر اندازه مجاز یک ویدئو را نشان می دهد. 2- duration: یک عدد که حداکثر مدت زمان مجاز یک ویدئو را نشان می دهد.
تمامی ویژگی های فوق دارای پیام های خطای مربوط به خود هستند، در صورتی که قوانین اعتبارسنجی مربوط به آنها برآورده نشوند.
Return Value
این متد ریسپانسی به کلاینت که شامل اطلاعات api ایجاد شده است بازمیگرداند.
Restricts
تنها سوپر ادمین و ادمینها میتوانند api را ایجاد کنند.
داکیومنت متد حذف api
Route
http method: DELETE
{{prod}}/api/apis/{apiID}
Headers:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
متد حذف api شناسه api را میگیرد از (req.params.id). اگر کاربر مجاز به حذف api مورد نظر باشد، این متد api با شناسه ارائه شده را از پایگاه داده حذف کرده و سند حذف شده را به عنوان پاسخ باز می گرداند. اگر کاربر با شناسه داده شده یافت نشد یا کاربر تأیید شده مجوز حذف کاربر را ندارشته باشد، یک پیام خطا به عنوان پاسخ برگردانده می شود.
درخواست با استفاده از توکن bearer در هدر Authorization تأیید می شود. اگر کاربر درخواست دهنده مجاز به حذف api مورد نظر باشد، متد api را از پایگاه داده حذف کرده و ریسپانس موفقیت آمیزی با سند حذف شده را باز می گرداند.
Restricts
تنها سوپر ادمین و ادمینها میتوانند api را حذف کنند.
داکیومنت متد دریافت اطلاعات api
Route
http method: GET
{{prod}}/api/apis/{apiID}
Headers:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
Behavior
ابتدا تابع بررسی میکند که آیا کاربر احراز هویت شده است یا نه. اگر کاربر احراز هویت نشده باشد، پیام خطای “غیرمجاز” به کلاینت ارسال میشود. سپس، تابع بررسی میکند که شناسه api وجود دارد یا خیر. اگر وجود نداشته باشد، پیام خطای مناسبی به کلاینت ارسال میشود. همچنین، تابع نقش کاربر را بررسی میکند و بر اساس آن، دسترسی کاربر را تأیید میکند یا رد میکند. اگر کاربر دسترسی نداشته باشد، پیام خطای مناسبی به کلاینت ارسال میشود. اگر کاربر احراز هویت شده باشد، شناسه api وجود داشته باشد و کاربر دسترسی لازم را داشته باشد، تابع اطلاعات api را از جدول دریافت کرده و به کلاینت برمیگرداند.
Restricts
تنها سوپر ادمین و ادمینها میتوانند اطلاعات api را دریافت کنند.
