داکیومنت متد ایجاد کاربر

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. یک شیء اختیاری شامل اطلاعات کاربر با ویژگی های زیر:

  1. firstName: نام کاربر جدید. یک رشته که نام کوچک کاربر را نشان می دهد.
  2. lastName: نام خانوادگی کاربر جدید. یک رشته که نام خانوادگی کاربر را نشان می دهد.
  3. email: یک رشته که آدرس ایمیل کاربر را نشان می دهد. رشته باید الگوی استاندارد ایمیل را دنبال کند.
  4. phoneNumber: یک رشته که شماره تلفن کاربر را نشان می دهد. رشته باید الگوی یک شماره تلفن ایرانی را دنبال کند که با ‘۰۹’ شروع می شود و در کل ۱۱ رقم است

تمامی ویژگی های فوق دارای پیام های خطای مربوط به خود هستند، در صورتی که قوانین اعتبارسنجی مربوط به آنها برآورده نشوند.

Return Value

این متد ریسپانسی به کلاینت که شامل اطلاعات کاربر ایجاد شده است بازمیگرداند.

Errors

اگر اروری در طی عملیات ایجاد کاربر اتفاق بیفتد، فانکشن next فراخوانی میگردد. این ارور میتواند شامل:

  • ValidationError (زمانی رخ میدهد که اطلاعات ورودی مطابق ساختار مورد نظر نباشد)
  • DatabaseError (زمانی رخ میدهد مشکلی در ارتباط با دیتابیس در حین ایجاد کاربر رخ دهد) باشد.

Restricts

تنها سوپر ادمین و ادمین‌ها می‌توانند کاربران را ایجاد کنند.

user-create

داکیومنت متد لاگین LOGIN

Route

http method: POST

{{prod}}/users/login

Parameters

{ "username": "test", "password": "test123@A" }

نوع داده ورودی برای اعتبار سنجی ایجاد کاربر، یک شیء با ویژگی های زیر است:

Attributes:

  • username: Required. یک رشته با حداقل طول ۵ کاراکتر و حداکثر طول ۳۶ کاراکتر. این ویژگی اجباری است.
  • password: Required. یک رشته که باید با استفاده از عبارت منظم خاصی الگویی را دنبال کند. رمز عبور باید حداقل شامل یک حرف کوچک، یک حرف بزرگ، یک رقم و یک کاراکتر ویژه باشد. رشته باید حداقل طول ۸ کاراکتر داشته باشد. این ویژگی اجباری است.

Return Value

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

Clipboard_-_April_5__2023_4_35_PM

داکیومنت متد حذف کاربر

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

تنها سوپر ادمین و ادمین‌ها می‌توانند کاربران را حذف کنند.

remove-user

داکیومنت متد آپدیت اطلاعات کاربر

Route

http method: PATCH

{{prod}}/api/users/{userID}

Headers:
  Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9

Parameters

{ "username": "test", "role": "user", "profile": { "firstName": "alii" } }

Behavior

این متد برای بروزرسانی اطلاعات یک کاربر استفاده می‌شود. درخواست مربوطه باید شامل اطلاعات کاربری که قرار است به روزرسانی شود، شامل نام کاربری، نقش کاربری و پروفایل کاربری باشد. در صورتی که کاربر مشخص شده با شناسه داده شده در درخواست پیدا نشود یا کاربری که درخواست را ارسال کرده است مجوز مورد نیاز برای انجام این کار را ندارد، پیغام خطا به عنوان پاسخ ارسال می‌شود.

درخواست با استفاده از توکن مجوز دسترسی در هدر Authorization تأیید می‌شود. اگر کاربری که درخواست را ارسال کرده است مجوز لازم برای بروزرسانی کاربر مورد نظر را داشته باشد، متد کاربر مورد نظر را با استفاده از اطلاعات ارسالی درخواست به روزرسانی کرده و سپس سند به‌روز شده به عنوان پاسخ ارسال می‌شود.

Restricts

تنها سوپر ادمین و ادمین‌ها می‌توانند اطلاعات کاربران را آپدیت کنند.

update-user

داکیومنت متد دریافت اطلاعات کاربر

Route

http method: GET

{{prod}}/api/users/{userID}

Headers:
  Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9

Behavior

ابتدا تابع بررسی می‌کند که آیا کاربر احراز هویت شده است یا نه. اگر کاربر احراز هویت نشده باشد، پیام خطای “غیرمجاز” به کلاینت ارسال می‌شود. سپس، تابع بررسی می‌کند که شناسه کاربری وجود دارد یا خیر. اگر وجود نداشته باشد، پیام خطای مناسبی به کلاینت ارسال می‌شود. همچنین، تابع نقش کاربر را بررسی می‌کند و بر اساس آن، دسترسی کاربر را تأیید می‌کند یا رد می‌کند. اگر کاربر دسترسی نداشته باشد، پیام خطای مناسبی به کلاینت ارسال می‌شود. اگر کاربر احراز هویت شده باشد، شناسه کاربری وجود داشته باشد و کاربر دسترسی لازم را داشته باشد، تابع اطلاعات کاربر را از جدول دریافت کرده و به کلاینت برمی‌گرداند.

Restricts

تنها سوپر ادمین و ادمین‌ها می‌توانند اطلاعات کاربران را دریافت کنند.

get-user__1_

داکیومنت متد دریافت اطلاعات همه کاربران

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

تنها سوپر ادمین و ادمین‌ها می‌توانند اطلاعات کاربران را دریافت کنند.

users-get

داکیومنت متد آپدیت پسوورد کاربر

Route

http method: PATCH

{{prod}}/api/users/{userID}

Headers:
  Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9

Parameters

{ "currentPassword": "testA123@A", "newPassword": "testA123@B", "confirmNewPassword": "testA123@B" }

Response

FieldTypeDescription
dataObjectThe updated user object

Error Responses

Status CodeDescription
400One of the following conditions is met:
  • The user is not found.
  • The confirm password doesn’t match the new password.
  • The current password is invalid.
401The user is not authenticated.
403The user does not have sufficient privileges to update the password.
500An unexpected error occurred.

Behavior

ابتدا تابع بررسی می‌کند که آیا کاربر احراز هویت شده است یا نه. اگر کاربر احراز هویت نشده باشد، پیام خطای “غیرمجاز” به کلاینت ارسال می‌شود. سپس، تابع بررسی می‌کند که شناسه کاربری وجود دارد یا خیر. اگر وجود نداشته باشد، پیام خطای مناسبی به کلاینت ارسال می‌شود. همچنین، تابع نقش کاربر را بررسی می‌کند و بر اساس آن، دسترسی کاربر را تأیید می‌کند یا رد می‌کند. اگر کاربر دسترسی نداشته باشد، پیام خطای مناسبی به کلاینت ارسال می‌شود. اگر کاربر احراز هویت شده باشد، شناسه کاربری وجود داشته باشد و کاربر دسترسی لازم را داشته باشد، تابع اطلاعات کاربر را از جدول دریافت کرده و به کلاینت برمی‌گرداند.

Restricts

تنها سوپر ادمین و ادمین‌ها می‌توانند پسوورد کاربران را آپدیت کنند.

user-password

داکیومنت متد ایجاد 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 را ایجاد کنند.

create-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-update

داکیومنت متد حذف 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 را حذف کنند.

delete-apikey

داکیومنت متد دریافت اطلاعات apikey

Route

http method: GET

{{prod}}/api/apikeys/{apikeyID}

Headers:
  Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9

Behavior

ابتدا تابع بررسی می‌کند که آیا کاربر احراز هویت شده است یا نه. اگر کاربر احراز هویت نشده باشد، پیام خطای “غیرمجاز” به کلاینت ارسال می‌شود. سپس، تابع بررسی می‌کند که شناسه apikey وجود دارد یا خیر. اگر وجود نداشته باشد، پیام خطای مناسبی به کلاینت ارسال می‌شود. همچنین، تابع نقش کاربر را بررسی می‌کند و بر اساس آن، دسترسی کاربر را تأیید می‌کند یا رد می‌کند. اگر کاربر دسترسی نداشته باشد، پیام خطای مناسبی به کلاینت ارسال می‌شود. اگر کاربر احراز هویت شده باشد، شناسه apikey وجود داشته باشد و کاربر دسترسی لازم را داشته باشد، تابع اطلاعات apikey را از جدول دریافت کرده و به کلاینت برمی‌گرداند.

Restricts

تنها سوپر ادمین و ادمین‌ها می‌توانند اطلاعات apikey را دریافت کنند.

get-apikey__1_

داکیومنت متد دریافت اطلاعات همه 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 را حذف کنند.

delete-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 را حذف کنند.

delete-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 را دریافت کنند.

api-getall