برای راه اندازی یک فروشگاه آنلاین با Nodejs میتوانید از اسکریپت Ecommerce API استفاده کنید. اسکریپت Ecommerce API با زبان Typescript نوشته شده است و در آن از زبانها و ابزارهای Node.js – Mongodb – Mongoose – Express.js و … استفاده شده است.
اسکریپت Ecommerce API دارای اکثر ویژگیهای یک سایت فروشگاهی کامل میباشد که در ادمه به شرح برخی از این ویژگیها می پردازم:
در سیستم احراز هویت ایکامرس ای پی آی، از ابزار JsonWebToken برای ایجاد توکن تایید هویت استفاده شده است. این سیستم به صورت Role Based تنظیم شده و دارای چهار سطح دسترسی میباشد:
- ریشه: (Root) این سطح دسترسی مدیر اصلی برنامه است و کلیه تنظیمات و قابلیت های سایت را میتواند مدیریت کند.
- مدیر: (Admin) این سطح دسترسی مدیران سایت است که توسط مدیر اصلی (Root) سایت ایجاد شده است و توانایی ایجاد تنظیمات سطح پایین سایت مثل ایجاد حساب کاربری فروشنده (Seller) و … دارا است.
- فروشنده: (Seller) این سطح دسترسی فروشنده سایت است که توانایی بررسی و مدیریت فروشگاه سایت را دارا است. ایجاد و حذف و ویرایش محصول و بارگذاری فایل و … از جمله توانایی سطح دسترسی فروشنده است.
- مشتری: (Customer) این سطح دسترسی مشتریان سایت است که میتوانند در سایت ثبت نام کرده و به محصولات سایت را خریداری کنند و یا اطلاعات حساب کاربری خود را بررسی کرده و به سفارشات خود دسترسی داشته باشند. (به صورت پیشفرض کاربرانی که در سایت ثبت نام میکنند در این سطح دسترسی قرار میگیرند)
ویژگی های سیستم احراز هویت ایکامرس ای پی آی:
- ثبت نام با ایمیل و شماره موبایل (بدون ارسال کد)
- ورود با ایمیل و شماره موبایل
- خروج از حساب کاربری
- خروج از همه دستگاه ها
- نمایش پروفایل کاربری
- بروز رسانی حساب کاربری
- فراموشی رمز عبور (ارسال ایمیل)
- بازیابی رمز عبور
- حذف حساب کاربری
- نقش بندی کاربران (ریشه،مدیر،فروشنده،مشتری)
- نمایش فهرست کاربران
- جستجو در کاربران
- ایجاد حساب کاربری
- ویرایش حساب های کاربری
- حذف حساب های کاربری
مدیران و فروشندگان سایت میتوانند محصول ایجاد کرده و یا محصولات سایت را ویرایش و حذف کنند. همچنین میتوانند فهرست خرید های آنجام شده در سایت را بررسی کرده و آنها را تایید و رد کنند.
- ایجاد یا افزودن محصول
- بروز رسانی محصولات
- فهرست گرفتن از محصولات
- نمایش جزئیات محصول
- جستجو در محصولات
- حذف محصولات
مشتریان میتوانند محصولات مورد نظر خود را به سبد خرید اضافه کنند و یا سبد خرید خود را ویرایش و حذف کنند.
- افزودن به سبد خرید
- اهده سبد خرید
- وز رسانی سبد خرید
- حذف سبد خرید
پس از افزودن محصول به سبد خرید توانایی پرداخت آنلاین فعال شده و با پرداخت و تایید تراکنش، خرید انجام شده و سبد خرید کاربر به فهرست سفارشات کاربر منتقل میشود.
- پرداخت با درگاه پرداخت آنلاین
- بررسی پرداخت انجام شده
مشتریان میتوانند فهرست سفارشات خود را دریافت کرده و جزئیات هر سفارش را بررسی کنند. همچنین این فهرست توسط فروشندگان نیز قابل مشاهده است.
- فهرست گرفتن از سفارشات
- نمایش جزئیات سفارش
مدیران سایت میتوانند برای محصولات دسته ایجاد کرده و این دسته ها را ویرایش و حذف کنند. همچنین قابلیت نمایش محصولات بر اساس دسته ها وجود دارد.
- افزودن دسته و زیر دسته
- ویرایش دسته
- فهرست گیری دسته ها
- نمایش محصولات دسته
- حذف دسته ها
مدیران سایت میتوانند برای محصولات برچسب ایجاد کرده و این برچسب ها را ویرایش و حذف کنند. همچنین قابلیت نمایش محصولات بر اساس برچسب ها وجود دارد.
- فهرست گیری از برچسب ها
- ویرایش برچسب ها
- افزودن برچسب ها
- نمایش محصولات هر برچسب
- حذف برچسب ها
کاربران ثبت نام شده و غیر ثبت نام شده میتوانند برای هر محصول دیدگاه ثبت کنند و به محصولات امتیاز دهند. همچنین کاربران ثبت نام شده میتوانند دیدگاه های خود را ویرایش کنند. کلیه دیدگاه ها توسط مدیران سایت باید تایید و یا رد شود.
- ثبت دیدگاه یا نظر روی محصول
- فهرست گیری از نظرات
- نمایش نظرات هر محصول
- ویرایش نظرات
- حذف نظرات
فروشندگان و مدیران سایت میتوانند فایلهای خود را آپلود کنند. فایلهای آپلود شده فروشندگان فقط توسط خود آنها قابل ویرایش و حذف شدن است و مدیران سایت میتوانند کلیه فایلها را مدیریت کنند.
- فهرست گیری از فایلها
- مشاهده جزئیات هر فایل
- آپلود کردن فایل (پسوند های مشخص)
- ویرایش فایلها
- حذف فایل های آپلود شده
مشتریان سایت میتوانند محصولات مورد علاقه خود را به فهرست علاقه مندی های اضافه کرده و یا آنرا از فهرست خود حذف کنند.
- افزودن به علاقه مندی ها
- حذف از علاقه مندی ها
- نمایش فهرست علاقه مندی ها
مدیران سایت میتوانند در سایت کشور و استان/ایالت و شهر ایجاد کرده و مشخص کنند استان ها و یا شهر ها متعلق به کدام کشور یا استان/ایالت است.
- ایجاد یا افزودن مکان (کشور – استان/ایالت – شهر)
- فهرست گرفتن از مکان ها
- نمایش مکان (مثلا استان و شهر های زیرمجموع)
- ویرایش و بروز رسانی مکان
- حذف مکان ها
مشتریان میتوانند آدرس خود را در پروفایل کاربری خود ثبت و اضافه کنند تا محصول به آدرس مشخص شده در پروفایل کاربر، ارسال شود.
- افزودن یا ایجاد آدرس
- نمایش آدرس
- ویرایش آدرس
- حذف آدرس
برای اجرا و استفاده از Ecommerce API مستندات مذکور در این بخش را به صورت کامل مطالعه کرده و طبق دستورالعمل پیش روید.
برای اجرای برنامه در سیستم شخصی باید نرم افزار ها و ماژول های زیر را در سیستم خود نصب داشته باشید و یا آنها را نصب کنید:
Node.js ==> https://nodejs.org/en
TypeScript ==> https://www.typescriptlang.org/download
Mongodb ==> https://www.mongodb.com
NPM ==> https://www.npmjs.com/
bcrypt: 5.1.0
cookie-parser: 1.4.6
cors: 2.8.5
express: 4.18.2
express-fileupload: 1.4.0
jsonwebtoken: 8.5.1
mongoose: .8.0
nodemailer: 6.8.0
dotenv: 16.0.3
در صورتیکه برنامه Nodejs را در سیستم خود نصب داشته باشید با اجرای دستور زیر در پوشه پروژه کلیه ماژولهای مورد نیاز به صورت خودکار نصب خواهند شد:
npm install
برای نصب TypeScript میتوانید از دستور زیر استفاده کنید:
npm install typescript
بعد از نصب برنامه ها و ماژول های مورد نیاز یک فایل با نام .env در پوشه اصلی پروژه ایجاد کنید و متغیر های زیر را در آن ایجاد کنید:
PORT=8000
# پورت دسترسی به برنامه
DB_URI=mongodb://127.0.0.1:27017/
# آدرس دسترسی به سرور Mongodb میتواند Mongodb Atlas یا Local Database باشد
DB_NAM=ecommerce
# نام پایگاه داده
JWT_SECRET_KEY=7b51677da05da7ebcd4be6499ea87cfe31f5a7af9552ad234e2b52dd934ec
# یک مقدار تصادفی 30 بایتی برای متد ساین JWT
EMAIL_USER=email@example.com
EMAIL_PASS=password
EMAIL_SERV=mail.example.com
# آدرس ایمیل و رمز عبور و میل سرور خود را در این سه فیلد به ترتیب وارد کنید.
ZARIN_PAY_MERCHANT=merchantId
ZARIN_PAY_ADDRESS=https://api.zarinpal.com/pg/v4/payment/request.json
ZARIN_PAY_PGSTART=https://www.zarinpal.com/pg/StartPay/
PAYMENT_CALLBACK_URL=http://localhost:3000/checkout
# در این بخش اطلاعات درگاه پرداخت را باید پر کنید که در حال حاضر فقط درگاه پرداخت زرین پال قابل استفاده است.
بعد از نصب برنامه ها و ماژول های مورد نیاز و تنظیم متغیر های محیطی در فایل .env نوبت به اجرای ایکامرس ای پی آی میرسد. برای این منظور کافیست از دستورات زیر استفاده کنید:
tsc -w
npm run dev
دستور tsc فایلهای تایپ اسکریپت را به JavaScript تبدیل میکند و آنها را در پوشه dist ذخیره میکند. سپس دستور npm run dev برنامه را در حالت توسعه اجرا میکند.
نکته: برای اجرای برنامه به صورت عادی میتوانید از npm start استفاده کنید.
برای ارسال ریکوست به بک اند به فرمت JSON باید طبق دستورالعمل های زیر اقدام کنید، توجه کنید بجای مقدار {{URL}} باید از آدرس سرور مورد نظر خود استفاده کنید.
برای ثبت نام در برنامه به آدرس زیر با متد Post ریکوست ارسال کنید:
POST: {{URL}}/api/user/signup
فیلد | نوع | توضیحات |
---|---|---|
name* | string | نام و نام خانوادگی کاربر |
email* | string | آدرس ایمیل کاربر |
phone | string | شماره موبایل کاربر |
password* | string | رمز عبور کاربر |
role | number | غیر قابل انتخاب (پیشفرض مشتری) |
نمونه ریکوست:
{
"name": "Mohammad Barghamadi",
"email": "mohammadbarghamadi@gmail.com",
"phone": "9304551004",
"password": "83d43c6e56bb7af02962ce0f"
}
مقدار بازگشتی:
اگر فرایند ثبت نام به صورت صحیح و درست انجام شود خروجی مقدار بازگشتی به صورت زیر میباشد:
{
"status": 200,
"data": {
"name": "Mohammad Barghamadi",
"email": "mohammadbarghamadi@gmail.com",
"phone": "9304551004",
"role": 2000,
"_id": "63bfba9f3c79dfd0eb8d0dae",
"createdAt": "2023-01-12T07:45:35.044Z",
"updatedAt": "2023-01-12T07:45:35.044Z",
"__v": 0
},
"message": "New user created!"
}
برای ورود به برنامه به آدرس زیر با متد Post ریکوست ارسال کنید:
POST: {{URL}}/api/user/signin
فیلد | نوع | توضیحات |
---|---|---|
username | string | آدرس ایمیل یا شماره موبایل کاربر ثبت نام شده |
password | string | رمز عبور حساب کاربر |
نمونه ریکوست:
{
"phone": "9304551004",
"password": "83d43c6e56bb7af02962ce0f"
}
مقدار بازگشتی:
در صورتیکه فرایند ورود به برنامه موفقیت آمیز باشد همراه با پاسخ یک توکن در هدر به سمت کاربر ارسال میشود که نام آن authToken است و برای ارسال ریکویست های بعدی (احراز هویت شده) میتوانید از این توکن استفاده کنید.
{
"status": 200,
"data": {
"_id": "63bfba9f3c79dfd0eb8d0dae",
"name": "Mohammad Barghamadi",
"email": "mohammadbarghamadi@gmail.com",
"phone": "9304551004",
"role": 2000,
"createdAt": "2023-01-12T07:45:35.044Z",
"updatedAt": "2023-01-12T08:15:44.581Z",
"__v": 1
},
"message": "User signed in."
}
در صورت اشتباه بودن نام کاربری یا رمز عبور مقدار بازگشتی به صورت زیر میشود:
{
"success": false,
"error": "Invalid Credentials!"
}
برای خروج از برنامه با متد Post به آدرس زیر ریکوست ارسال کنید، به طور پیشفرض توکن احراز هویت که به صورت HttpOnly در Cookie ذخیره شده به برنامه ارسال میشود.
POST: {{URL}}/api/user/signout
نکته: با ارسال این ریکوست توکن از حساب کاربری در پایگاه داده حذف شده و فاقد اعتبار میشود.
مقدار بازگشتی:
{
"status": 200,
"message": "signout with success!"
}
برای خروج از همه دستگاه ها بجز دستگاه فعلی که با آن به برنامه وارد شده اید میبایست به آدرس زیر با متد Post ریکوست ارسال کنید:
POST: {{URL}}/api/user/signoutall
مقدار بازگشتی:
{
"status": 200,
"message": "Signed out from all devices!"
}
برای دریافت پروفایل کاربر به آدرس زیر با متد Get ریکوست ارسال کنید.
GET: {{URL}}/api/user/profile
مقدار بازگشتی:
{
"status": 200,
"data": {
"_id": "63bfba9f3c79dfd0eb8d0dae",
"name": "Mohammad Barghamadi",
"email": "mohammadbarghamadi@gmail.com",
"phone": "9304551004",
"role": 2000,
"createdAt": "2023-01-12T07:45:35.044Z",
"updatedAt": "2023-01-13T04:51:49.026Z",
"__v": 3
},
"message": "User profile"
}
بای بروز رسانی پروفایل کاربر به آدرس زیر با متد Patch ریکوست ارسال کنید:
PATCH: {{URL}}/api/user/update
فیلد | نوع | توضیحات |
---|---|---|
name | string | نام و نام خانوادگی کاربر |
string | آدرس ایمیل کاربر | |
phone | string | شماره موبایل کاربر |
password | string | رمز عبور کاربر |
role | number | غیر قابل تغییر (فقط مدیر میتواند تغییر دهد) |
نمونه ریکوست:
{
"password": "mynewpassword"
}
مقدار بازگشتی:
{
"status": 200,
"data": {
"_id": "63bfba9f3c79dfd0eb8d0dae",
"name": "Mohammad Barghamadi",
"email": "mohammadbarghamadi@gmail.com",
"phone": "9304551004",
"role": 2000,
"createdAt": "2023-01-12T07:45:35.044Z",
"updatedAt": "2023-01-13T05:24:22.869Z",
"__v": 3
},
"message": "User updated!"
}
خطای بازگشتی در صورت ارسال فیلد نامرتبط:
{
"success": false,
"error": "Invalid fields!"
}
در صورت فراموشی رمز عبور به آدرس زیر با متد Post ریکوست ارسال کنید:
POST: {{URL}}/api/user/forgot
فیلد | نوع | توضیحات |
---|---|---|
string | آدرس ایمیل کاربر |
نمونه ریکوست:
{
"email": "mohammadbarghamadi@gmail.com"
}
در صورت موفقیت آمیز بودن فرایند یک ایمیل به کاربر ارسال میشود که حاوی لینک بازیابی رمز عبور است. نمونه لینک:
{{URL}}/reset/4447f4ea8917250b4bdf3f3d1946f42f977
با کلیک بر روی لینک بالا کاربر به صفحه ریست پسور در فرانت منتقل میشود و از آن قسمت میبایست مقدار پارامتری که در جلوی reset وجود دارد به همراه رمز عبور تازه به بکاند یا همان برنامه ما ارسال شود.
برای بازیابی رمز عبور ریکوست خود را به آدرس زیر با متد Post ارسال کنید.
POST: {{URL}}/api/user/reset/4447f4ea8917250b4bdf3f3d1946f42f977
فیلد | نوع | توضیحات |
---|---|---|
password | string | رمز عبور جدید کاربر را وارد کنید |
نمونه ریکوست:
{
"password": "mynewpass"
}
نکته: برای منقضی نشدن توکن حداکثر 10 دقیقه زمان برای کلیک بر روی لینک بازیابی رمز عبور و ارسال رمز عبور دارید.
مقدار بازگشتی:
{
"status": 200,
"message": "Your password changed!"
}
مقدار بازگشتی در صورت بروز خطا:
{
"success": false,
"error": "Invalid request!"
}
برای حذف حساب کاربری با متد Delete یک ریکوست به آدرس زیر بفرستید:
DELETE: {{URL}}/user/delete
مقدار بازگشتی:
{
"status": 200,
"message": "Your account removed!"
}
برای فهرست گرفتن کاربران ثبت نام شده باید به آدرس زیر با متد Get ریکوست ارسال کنید:
POST: {{URL}}/user/list
کوئری های قابل استفاده:
کلید | مقدار | توضیحات |
---|---|---|
csort | asc\dsc | مقدار dsc کاربران را بر اساس تاریخ ثبت نام منظم میکند |
limit | N | عدد مورد نظر برای محدود کردن تعداد دیتاهای بازگشتی |
skip | N | عدد مورد نظر برای رد شدن از دیتاهای بازگشتی |
نمونه ریکوست:
{{URL}}/user/list?csort=dsc&limit=10&skip=10
نمونه پاسخ:
{
"status": 200,
"data": [
{
"_id": "63c235facb76f81556b2df72",
"name": "Deyl Karnegi",
"email": "deylkarnegi@gmail.com",
"phone": "9304551013",
"role": 2000,
"createdAt": "2023-01-14T04:56:26.124Z",
"updatedAt": "2023-01-14T04:56:26.124Z",
"__v": 0
},
{
"_id": "63c23625cb76f81556b2df74",
"name": "Esther Hicks",
},
{
"_id": "63c2364bcb76f81556b2df76",
"name": "Jerry Hicks",
}
]
}
برای جستجو در بین کاربران به آدرس زیر با متد Get یک ریکوست ارسال کنید:
GET: {{URL}}/user/search
کلید | مقدار | توضیحات |
---|---|---|
keyphrase | string | در جلوی کلیدواژه مقدار مورد نظر خود را جستجو کنید. |
csort | asc\dsc | مقدار dsc کاربران را بر اساس تاریخ ثبت نام منظم میکند |
limit | N | عدد مورد نظر برای محدود کردن تعداد دیتاهای بازگشتی |
skip | N | عدد مورد نظر برای رد شدن از دیتاهای بازگشتی |
نمونه ریکوست:
{{URL}}/user/search?keyphrase=mohammad
مقدار بازگشتی:
{
"status": 200,
"data": [
{
"_id": "63c23094cb76f81556b2df3a",
"name": "Mohammad Barghamadi",
"email": "mohammadbarghamadi@gmail.com",
"phone": "9304551004",
"role": 1100,
"createdAt": "2023-01-14T04:33:24.124Z",
"updatedAt": "2023-01-14T04:33:26.712Z",
"__v": 1
}
]
}
نکته: اگر چیزی یافت نشود مقدار دیتا خالی باز میگردد.
ساخت حساب کاربری برای ساخت حساب کاربری در برنامه به آدرس زیر با متد Post ریکوست ارسال کنید:
POST: {{URL}}/user/create
فیلد | نوع | توضیحات |
---|---|---|
name* | string | نام و نام خانوادگی کاربر |
email* | string | آدرس ایمیل کاربر |
phone | string | شماره موبایل کاربر |
password* | string | رمز عبور کاربر |
role | number | رووت: 1000 ادمین: 1100 فروشنده: 1500 مشتری: 2000 |
نکته: اگر سطح دسترسی شما پایین تر از مدیریت باشد نمیتوانید به این بخش ریکوست ارسال کنید و همچنین فقط مدیر اصلی (1000) میتواند حساب کاربری مدیر اصلی (1000) را ایجاد کند.
حساب های مدیریت (1100) میتوانند حساب مدیرت و حساب های فروشنده و مشتری را ایجاد و ویرایش کنند.
نمونه ریکوست:
{
"name": "Rhonda Byrne",
"email": "rhondabyrne@gmail.com",
"phone": "9304551016",
"password": "themagicsecret",
"role": 1500
}
نمونه پاسخ:
{
"status": 200,
"data": {
"name": "Rhonda Byrne",
"email": "rhondabyrne@gmail.com",
"phone": "9304551016",
"role": 1500,
"_id": "63c24c0f2d0db7ae22d57b89",
"createdAt": "2023-01-14T06:30:39.910Z",
"updatedAt": "2023-01-14T06:30:39.910Z",
"__v": 0
},
"message": "New user created!"
}
برای ویرایش حساب های کاربری با متد Patch به آدرس زیر ریکوست ارسال کنید:
PATCH: {{URL}}/user/edit/userId
فیلد | نوع | توضیحات |
---|---|---|
name* | string | نام و نام خانوادگی کاربر |
email* | string | آدرس ایمیل کاربر |
phone | string | شماره موبایل کاربر |
password* | string | رمز عبور کاربر |
role | number | رووت: 1000 ادمین: 1100 فروشنده: 1500 مشتری: 2000 |
نکته: فرایند تغییر نقش کاربر همانند ایجاد کاربر میباشد. یعنی حساب Root دسترسی کامل در تغییر کاربران دارد و حساب ادمین فقط میتواند سطح خود و فروشنده ها و مشتری ها را تا به سطح ادمین افزایش دهد. نمونه ریکوست:
PATCH: {{URL}}/user/edit/63c24c0f2d0db7ae22d57b89
{
"role": 1100
}
مقدار بازگشتی:
{
"status": 200,
"data": {
"_id": "63c24c0f2d0db7ae22d57b89",
"name": "Rhonda Byrne",
"email": "rhondabyrne@gmail.com",
"phone": "9304551016",
"role": 1100,
"createdAt": "2023-01-14T06:30:39.910Z",
"updatedAt": "2023-01-14T07:41:16.935Z",
"__v": 0
},
"message": "User updated!"
}
برای حذف یک حساب کاربری به آدرس زیر با متد Delete ریکوست ارسال کنید:
DELETE: {{URL}}/user/remove/userId
نمونه ریکوست:
{{URL}}/user/remove/63c23409cb76f81556b2df60
نمونه پاسخ:
{
"status": 200,
"data": {
"_id": "63c23409cb76f81556b2df60",
"name": "Jack Cherry",
"email": "jackcherry@gmail.com",
"phone": "9304551005",
"role": 2000,
"createdAt": "2023-01-14T04:48:09.351Z",
"updatedAt": "2023-01-14T04:48:09.351Z",
"__v": 0
},
"message": "User removed!"
}
برای بارگذاری فایل به آدرس زیر با متد Post ریکوست ارسال کنید.
POST: {{URL}}/file/upload
نمونه پاسخ:
{
"status": 200,
"data": [
{
"name": "mbp16-silver-gallery2-202110.jpeg",
"encoding": "7bit",
"size": "208874",
"filepath": "dist/files/images/2023/1/15/1673757892069-157159.jpg",
"mimetype": "image/jpeg",
"md5": "84dc87e1cfb4850cb4bddd75a75997f1",
"userId": "63c23094cb76f81556b2df3a",
"_id": "63c384c44c7daae474b9b611",
"__v": 0
}
]
}
بارگذاری فایل ها بر اساس تاریخ و نوع فایل میباشد. یعنی اگر فرمت فایل jpg باشد یک پوشه با نام images ایجاد شده و زیر مجموع آن بر اساس تاریخ سال و ماه و روز پوشه ساخته میشود و در نهایت فایل با نام تصادفی و تاریخ همان روز ذخیره میشود. برای مثال:
/files/images/2023/1/15/1673757892069-157159.jpg
به صورت پیشفرض فقط پسوند های jpg,jpeg,png,mpeg با حداکثر حجم 2 مگابایت قابل بارگذاری هستند. فایل بارگذاری شده متعلق به کاربری میباشد که آنرا بارگذاری کرده است و دیگر کاربران نمیتوانند به آن دسترسی داشته باشند اما مدیران برنامه میتوانند به کلیه فایل های بارگذاری شده دسترسی داشته باشند.
برای فهرست گیری از فایل ها به آدرس زیر با متد Get ریکوست ارسال کنید:
GET: {{URL}}/file/list
نمونه پاسخ:
{
"status": 200,
"data": [
{
"_id": "63aaa7110c832c33351fb79e",
"name": "Image16.jpg",
"encoding": "7bit",
"size": "652006",
"filepath": "/dist/files/images/2022/12/27/1672128273496-997340.jpg",
"mimetype": "image/jpeg",
"md5": "0a0e1ef9b26931a856852ed90f12aa62",
"userId": "63aaa69e0c832c33351fb77e",
"__v": 0
},
{
"_id": "63c388b34c7daae474b9b615",
"name": "6183d38056d48692be8226c6be39f063.png",
"encoding": "7bit",
"size": "1605859",
"filepath": "/dist/files/images/2023/1/15/1673758899966-6809644.png",
"mimetype": "image/png",
"md5": "01f092bd23c85e7b2c9166e3aa807ed5",
"userId": "63c23094cb76f81556b2df3a",
"__v": 0
}
],
"message": "Files retrived."
}
برای دریافت یک فایل شناسه آنرا با متد Get به آدرس زیر ارسال کنید:
GET: {{URL}}/file/get/fileId
نمونه ریکوست:
{{URL}}/file/get/63aaa7110c832c33351fb79e
نمونه پاسخ:
{
"status": 200,
"data": {
"_id": "63aaa7110c832c33351fb79e",
"name": "Image16.jpg",
"encoding": "7bit",
"size": "652006",
"filepath": "/dist/files/images/2022/12/27/1672128273496-997340.jpg",
"mimetype": "image/jpeg",
"md5": "0a0e1ef9b26931a856852ed90f12aa62",
"userId": "63aaa69e0c832c33351fb77e",
"__v": 0
},
"message": "File found."
}
برای ویرایش نام یا تغییر مالک فایل میتوانید به آدرس زیر با متد Patch ریکوست ارسال کنید:
PATCH: {{URL}}/file/update/fileId
فیلد | نوع | توضیحات |
---|---|---|
name | string | نام جدید فایل |
userId | string | شناسه مالک جدید |
فقط حساب های مدیریت میتوانند مالک یک فایل را تغییر دهند.
نمونه ریکوست:
{{URL}}/file/update/63aaa7110c832c33351fb79e
نمونه پاسخ:
{
"status": 200,
"data": {
"_id": "63bcf356ce90d6dbda7696b0",
"name": "Apple Laptop",
"encoding": "7bit",
"size": "208874",
"filepath": "/dist/files/images/2023/1/10/1673327446389-6649813.jpeg",
"mimetype": "image/jpeg",
"md5": "84dc87e1cfb4850cb4bddd75a75997f1",
"userId": "63b51152f7daee2dfbd6d28a",
"__v": 0
},
"message": "File updated."
}
برای حذف یک فایل باید به آدرس زیر با متد Delete ریکوست ارسال کنید:
DELETE: {{URL}}/file/delete/fileId
نمونه ریکوست:
{{URL}}/file/delete/63aaa7110c832c33351fb79d
نمونه پاسخ:
{
"status": 200,
"data": {
"_id": "63bcf356ce90d6dbda7696b0",
"name": "Apple Laptop",
"encoding": "7bit",
"size": "208874",
"filepath": "/dist/files/images/2023/1/10/1673327446389-6649813.jpeg",
"mimetype": "image/jpeg",
"md5": "84dc87e1cfb4850cb4bddd75a75997f1",
"userId": "63b51152f7daee2dfbd6d28a",
"__v": 0
},
"message": "File deleted!"
}
برای افزودن دسته به آدرس زیر با متد Post ریکوست ارسال کنید:
POST: {{URL}}/cate/add
فیلد | نوع | توضیحات |
---|---|---|
name* | string | نام دسته |
url* | string | لینک دسته |
category | string | شناسه دسته والد |
meta | meta | شامل: title – description – keyphrase |
نمونه ریکوست:
{
"name": "Backend Development",
"url": "backend-dev",
"meta": {
"title": "Backend Archive - Ecommerce-API",
"description": "If you want to learn Backend you should understand its basic and here you can find much good information.",
"keyphrase": [
"backend",
"backend development",
"server side"
]
}
}
نمونه پاسخ:
{
"status": 200,
"data": {
"category": {
"name": "Backend Development",
"url": "backend-dev",
"children": [],
"_id": "63c398914c7daae474b9b637",
"meta": "63c398914c7daae474b9b638",
"__v": 0
},
"meta": {
"title": "Backend Archive - Ecommerce-API",
"description": "If you want to learn Backend you should understand its basic and here you can find much good information.",
"keyphrase": [
"backend",
"backend development",
"server side"
],
"link": "63c398914c7daae474b9b637",
"_id": "63c398914c7daae474b9b638",
"__v": 0
}
},
"message": "New category added!"
}
برای فهرست گرفتن از دسته ها به آدرس زیر با متد Get ریکوست ارسال کنید:
GET: {{URL}}/cate/list
نمونه پاسخ:
{
"status": 200,
"message": "Category found",
"data": [
{
"_id": "63b12f67ff0cf3e6dcfd1d79",
"name": "Frontend Dev",
"url": "frontend",
"children": [
"63ba7b18af12483d41a1e454"
],
"__v": 0,
"meta": "63bbaa15e2459b34c12fa2b0"
},
{
"_id": "63ba7b18af12483d41a1e454",
"name": "Javascript",
"url": "javascript",
"children": [],
"meta": "63ba7b18af12483d41a1e455",
"__v": 0,
"category": "63b12f67ff0cf3e6dcfd1d79"
},
{
"_id": "63c398914c7daae474b9b637",
"name": "Backend Development",
"url": "backend-dev",
"children": [],
"meta": "63c398914c7daae474b9b638",
"__v": 0
}
]
}
برای دیدن محتوای یک دسته و محصولات زیر مجموع آن به آدرس زیر با متد Get ریکوست ارسال کنید:
GET: {{URL}}/cate/get/categoryId
نمونه ریکوست:
{{URL}}/cate/get/63b12f67ff0cf3e6dcfd1d79
نمونه پاسخ:
{
"status": 200,
"data": {
"category": {
"_id": "63b12f67ff0cf3e6dcfd1d79",
"name": "Frontend Dev",
"url": "frontend",
"children": [
"63ba7b18af12483d41a1e454"
],
"__v": 0,
"meta": {
"_id": "63bbaa15e2459b34c12fa2b0",
"title": "Frontend development - Ecommerce API",
"description": "Do you want to become a frontend development? here is the best resources you can use on you path."
}
},
"products": [
{
"images": {
"main": null
},
"_id": "63bcf64ece90d6dbda7696c4",
"title": "HTML & CSS Elementry",
"price": 124000,
"url": "html-css-guide"
}
]
},
"message": "Category and its products"
}
برای ویرایش یک دسته به آدرس زیر با متد Patch ریکوست ارسال کنید:
PATCH: {{URL}}/cate/edit/categoryId
فیلد | نوع | توضیحات |
---|---|---|
name* | string | نام دسته |
url* | string | لینک دسته |
category | string | شناسه دسته والد |
meta | meta | شامل: title – description – keyphrase |
نمونه ریکوست:
{{URL}}/cate/edit/63b12fb1ff0cf3e6dcfd1d8f
{
"category": "63c398914c7daae474b9b637"
}
نمونه پاسخ:
{
"status": 200,
"data": {
"removed": null,
"assigned": {
"_id": "63c398914c7daae474b9b637",
"name": "Backend Development",
"url": "backend-dev",
"children": [],
"meta": "63c398914c7daae474b9b638",
"__v": 0
},
"saved": {
"_id": "63b12fb1ff0cf3e6dcfd1d8f",
"name": "GraphQL",
"url": "graphql",
"children": [],
"__v": 0,
"category": "63c398914c7daae474b9b637"
}
},
"message": "Category updated!"
}
در مثال بالا دسته 63b12fb1ff0cf3e6dcfd1d8f به زیر مجموعه دسته 63c398914c7daae474b9b637 اضافه شد.
برای حذف یک دسته به آدرس زیر با متد Delete ریکوست ارسال کنید:
DELETE: {{URL}}/cate/delete/categoryId
نمونه ریکوست:
{{URL}}/cate/delete/63bbaa7ee2459b34c12fa2b7
نمونه پاسخ:
{
"status": 200,
"data": {
"category": {
"_id": "63bbaa7ee2459b34c12fa2b7",
"name": "Backend Development",
"url": "backend-dev",
"children": [
"63b12f89ff0cf3e6dcfd1d83",
"63b12fb1ff0cf3e6dcfd1d8f"
],
"meta": "63bbaa7ee2459b34c12fa2b8",
"__v": 0
},
"meta": {
"_id": "63bbaa7ee2459b34c12fa2b8",
"title": "Backend Archive - Ecommerce-API",
"description": "If you want to learn Backend you should understand its basic and here you can find much good information.",
"keyphrase": [],
"link": "63bbaa7ee2459b34c12fa2b7",
"__v": 0
}
},
"message": "Category deleted"
}
برای افزودن برچسب به آدرس زیر با متد Post ریکوست ارسال کنید:
POST: {{URL}}/tags/add
فیلد | نوع | توضیحات |
---|---|---|
name* | string | نام برچسب |
url* | string | لینک برچسب |
meta | meta | شامل: title – description – keyphrase |
نمونه ریکوست:
{
"name": "Node.js",
"url": "nodejs",
"meta": {
"title": "Nodejs Tag",
"description": "Latest Nodejs videos and courses and news",
"keyphrase": [
"nodejs",
"node"
]
}
}
نمونه پاسخ:
{
"status": 200,
"data": {
"tag": {
"name": "Node.js",
"url": "nodejs",
"_id": "63c3aee04c7daae474b9b65c",
"meta": "63c3aee04c7daae474b9b65d",
"__v": 0
},
"meta": {
"title": "Nodejs Tag",
"description": "Latest Nodejs videos and courses and news",
"keyphrase": [
"nodejs",
"node"
],
"link": "63c3aee04c7daae474b9b65c",
"_id": "63c3aee04c7daae474b9b65d",
"__v": 0
}
},
"message": "New tag added!"
}
برای گرفتن فهرست کلیه برچسب ها به آدرس زیر با متد Get ریکوست ارسال کنید:
GET: {{URL}}/tags/list
نمونه پاسخ:
{
"status": 200,
"message": "Tag found",
"data": [
{
"_id": "63bbb75d9753a93e0e9dbaa3",
"name": "React.js",
"url": "reactjs",
"meta": "63bbb75d9753a93e0e9dbaa4",
"__v": 0
},
{
"_id": "63bbbe58bae680a81673f7cd",
"name": "ReduxJs Posts",
"url": "redux",
"meta": "63bbbe58bae680a81673f7ce",
"__v": 0
},
{
"_id": "63c3aee04c7daae474b9b65c",
"name": "Node.js",
"url": "nodejs",
"meta": "63c3aee04c7daae474b9b65d",
"__v": 0
}
]
}
برای دریافت کلیه محصولات افزوده شده به برچسب به آدرس زیر با متد Get ریکوست ارسال کنید:
GET: {{URL}}/tags/get/tagId
نمونه ریکوست:
{
"status": 200,
"data": {
"_id": "63bbb75d9753a93e0e9dbaa3",
"name": "React.js",
"url": "reactjs",
"meta": {
"_id": "63bbb75d9753a93e0e9dbaa4",
"title": "React.js Archive - Ecommerce API",
"description": "Here is some info about React.js and if you want to learn this stuf you have to follow me",
"keyphrase": []
},
"__v": 0
},
"products": [
{
"images": {
"main": null
},
"_id": "63aaa7dc465015f29b89fee1",
"title": "Frontend dev with React",
"price": 98000,
"url": "frontend-dev-with-react-68465-1672128476128"
},
{
"images": {
"main": null
},
"_id": "63bcf64ece90d6dbda7696c4",
"title": "HTML & CSS Elementry",
"price": 124000,
"url": "html-css-guide"
}
]
}
برای ویرایش برچسب ها به آدرس زیر با متد Patch ریکوست ارسال کنید:
Patch: {{URL}}/tags/edit/tagId
فیلد | نوع | توضیحات |
---|---|---|
name* | string | نام برچسب |
url* | string | لینک برچسب |
meta | meta | شامل: title – description – keyphrase |
نمونه ریکوست:
{{URL}}/tags/edit/63bbbe58bae680a81673f7cd
{
"name": "ReduxJs Posts",
"meta": {
"title": "Redux js products",
"description": "Here is you can find all reduxjs posts and content"
}
}
نمونه پاسخ:
{
"status": 200,
"data": {
"updatedTag": {
"_id": "63c3aee04c7daae474b9b65c",
"name": "Nodejs Posts",
"url": "nodejs",
"meta": "63c3aee04c7daae474b9b65d",
"__v": 0
},
"meta": {
"_id": "63c3aee04c7daae474b9b65d",
"title": "Node.js products",
"description": "Here is you can find all nodejs posts and content",
"keyphrase": [
"nodejs",
"node"
],
"link": "63c3aee04c7daae474b9b65c",
"__v": 0
}
},
"message": "Tag updated!"
}
برای حذف یک برچسب به آدرس زیر با متد Delete ریکوست ارسال کنید:
DELETE: {{URL}}/tags/delete/tagId
نمونه ریکوست:
{{URL}}/tags/delete/63bbb75d9753a93e0e9dbaa3
نمونه پاسخ:
{
"status": 200,
"data": {
"tag": {
"_id": "63bbb75d9753a93e0e9dbaa3",
"name": "React.js",
"url": "reactjs",
"meta": "63bbb75d9753a93e0e9dbaa4",
"__v": 0
},
"meta": {
"_id": "63bbb75d9753a93e0e9dbaa4",
"title": "React.js Archive - Ecommerce API",
"description": "Here is some info about React.js and if you want to learn this stuf you have to follow me",
"keyphrase": [],
"link": "63bbb75d9753a93e0e9dbaa3",
"__v": 0
},
"products": {
"acknowledged": true,
"modifiedCount": 2,
"upsertedId": null,
"upsertedCount": 0,
"matchedCount": 2
}
},
"message": "tag deleted"
}
برای ایجاد یا افزودن محصول به آدرس زیر با متد Post ریکوست ارسال کنید:
POST: {{URL}}/prod/add
فیلد | نوع | توضیحات |
---|---|---|
title | string | عنوان محصول |
excerpt | string | توضیحات مختصر درباره محصول |
content | string | توضیحات کامل محصول به همراه جزئیات |
price | number | قیمت محصول |
url | string | آدرس لینک مستقیم محصول |
images | ObjectId | شامل: تصویر اصلی (main) و گالری تصاویر ([]Gallery) |
category | []ObjectId | آرایه ای از شناسه دسته ها |
tag | []ObjectId | آرایه ای از شناسه برچسب ها |
owner | ObjectId | شناسه مالک محصول (به صورت پیشفرض شخص سازنده است) |
meta | meta | شامل: title – description – keyphrase |
نمونه ریکوست:
{
"title": "Reactjs Study Guide",
"excerpt": "short description to introduce this product",
"content": "complete description and detail about this product",
"price": 124000,
"url": "reactjs-guide",
"images": {
"main": "63aaa7110c832c33351fb79e",
"gallery": [
"63c388b34c7daae474b9b615",
"63aaa7110c832c33351fb79e"
]
},
"category": [
"63b12f67ff0cf3e6dcfd1d79"
],
"tag": [
"63bbbe58bae680a81673f7cd",
"63c3aee04c7daae474b9b65c"
],
"meta": {
"title": "Reactjs Study Guide",
"description": "If you want to learn Reactjs here I will teach you how you can build a frontend app"
}
}
نمونه پاسخ:
{
"status": 200,
"message": "New product added.",
"data": {
"meta": {
"title": "Reactjs Study Guide",
"description": "If you want to learn Reactjs here I will teach you how you can build a frontend app",
"keyphrase": [],
"_id": "63c4dc6213d8575602ccf5de",
"link": "63c4dc6213d8575602ccf5df",
"__v": 0
},
"product": {
"title": "Reactjs Study Guide",
"excerpt": "short description to introduce this product",
"content": "complete description and detail about this product",
"price": 124000,
"url": "reactjs-guide",
"images": {
"main": "63aaa7110c832c33351fb79e",
"gallery": [
"63c388b34c7daae474b9b615",
"63aaa7110c832c33351fb79e"
]
},
"category": [
"63b12f67ff0cf3e6dcfd1d79"
],
"tag": [
"63bbbe58bae680a81673f7cd",
"63c3aee04c7daae474b9b65c"
],
"meta": "63c4dc6213d8575602ccf5de",
"owner": "63c23094cb76f81556b2df3a",
"_id": "63c4dc6213d8575602ccf5df",
"createdAt": "2023-01-16T05:10:58.314Z",
"updatedAt": "2023-01-16T05:10:58.314Z",
"__v": 0
}
}
}
برای دیدن جزئیات یک محصول میتوانید به آدرس زیر با متد Get ریکوست ارسال کنید:
GET: {{URL}}/prod/get/prodId
نمونه ریکوست:
{{URL}}/prod/get/63c4dc6213d8575602ccf5df
نمونه پاسخ:
{
"status": 200,
"data": {
"images": {
"main": {
"_id": "63aaa7110c832c33351fb79e",
"name": "Image16.jpg",
"encoding": "7bit",
"size": "652006",
"filepath": "/dist/files/images/2022/12/27/1672128273496-997340.jpg",
"mimetype": "image/jpeg",
"md5": "0a0e1ef9b26931a856852ed90f12aa62",
"userId": "63aaa69e0c832c33351fb77e",
"__v": 0
},
"gallery": [
{
"_id": "63c388b34c7daae474b9b615",
"name": "6183d38056d48692be8226c6be39f063.png",
"encoding": "7bit",
"size": "1605859",
"filepath": "/dist/files/images/2023/1/15/1673758899966-6809644.png",
"mimetype": "image/png",
"md5": "01f092bd23c85e7b2c9166e3aa807ed5",
"userId": "63c23094cb76f81556b2df3a",
"__v": 0
},
{
"_id": "63aaa7110c832c33351fb79e",
"name": "Image16.jpg",
"encoding": "7bit",
"size": "652006",
"filepath": "/dist/files/images/2022/12/27/1672128273496-997340.jpg",
"mimetype": "image/jpeg",
"md5": "0a0e1ef9b26931a856852ed90f12aa62",
"userId": "63aaa69e0c832c33351fb77e",
"__v": 0
}
]
},
"_id": "63c4dc6213d8575602ccf5df",
"title": "Reactjs Study Guide",
"excerpt": "short description to introduce this product",
"content": "complete description and detail about this product",
"price": 124000,
"url": "reactjs-guide",
"category": [
{
"_id": "63b12f67ff0cf3e6dcfd1d79",
"name": "Frontend Dev",
"url": "frontend",
"children": [
"63ba7b18af12483d41a1e454"
],
"__v": 0,
"meta": "63bbaa15e2459b34c12fa2b0"
}
],
"tag": [
{
"_id": "63bbbe58bae680a81673f7cd",
"name": "ReduxJs Posts",
"url": "redux",
"meta": "63bbbe58bae680a81673f7ce",
"__v": 0
},
{
"_id": "63c3aee04c7daae474b9b65c",
"name": "Nodejs Posts",
"url": "nodejs",
"meta": "63c3aee04c7daae474b9b65d",
"__v": 0
}
],
"meta": {
"_id": "63c4dc6213d8575602ccf5de",
"title": "Reactjs Study Guide",
"description": "If you want to learn Reactjs here I will teach you how you can build a frontend app",
"keyphrase": [],
"link": "63c4dc6213d8575602ccf5df",
"__v": 0
},
"owner": "63c23094cb76f81556b2df3a",
"createdAt": "2023-01-16T05:10:58.314Z",
"updatedAt": "2023-01-16T05:10:58.314Z",
"__v": 0
},
"message": "Product found."
}
برای فهرست گرفتن از کلیه محصولات به آدرس زیر با متد Get ریکوست ارسال کنید:
GET: {{URL}}/prod/list
نمونه ریکوست:
{
"status": 200,
"data": [
{
"images": {
"main": {
"_id": "63aaa7110c832c33351fb79e",
"name": "Image16.jpg",
"filepath": "/dist/files/images/2022/12/27/1672128273496-997340.jpg"
},
"gallery": [
{
"_id": "63aaa7110c832c33351fb79e",
"name": "Image16.jpg",
"filepath": "/dist/files/images/2022/12/27/1672128273496-997340.jpg"
}
]
},
"_id": "63ad11e3d7261f57cfbb4566",
"title": "Backend dev with Nodejs",
"excerpt": "You will learn how to use some advanced tools such as Nodejs work",
"content": "Here is I have to describe tutorial detail",
"price": 98000,
"category": [
{
"_id": "63b12fb1ff0cf3e6dcfd1d8f",
"name": "GraphQL",
"url": "graphql"
}
],
"tag": [],
"meta": "63ad11e3d7261f57cfbb4565",
"owner": "63aaa69e0c832c33351fb77e",
"comments": [],
"createdAt": "2022-12-29T04:04:51.815Z",
"updatedAt": "2023-01-01T09:45:09.732Z",
"url": "backend-dev-with-nodejs-58949-1672286691815",
"__v": 4
},
{
"images": {
"main": {
"_id": "63aaa7110c832c33351fb79e",
"name": "Image16.jpg",
"filepath": "/dist/files/images/2022/12/27/1672128273496-997340.jpg"
},
"gallery": [
{
"_id": "63c388b34c7daae474b9b615",
"name": "6183d38056d48692be8226c6be39f063.png",
"filepath": "/dist/files/images/2023/1/15/1673758899966-6809644.png"
},
{
"_id": "63aaa7110c832c33351fb79e",
"name": "Image16.jpg",
"filepath": "/dist/files/images/2022/12/27/1672128273496-997340.jpg"
}
]
},
"_id": "63c4dc6213d8575602ccf5df",
"title": "Reactjs Study Guide",
"excerpt": "short description to introduce this product",
"content": "complete description and detail about this product",
"price": 124000,
"url": "reactjs-guide",
"category": [
{
"_id": "63b12f67ff0cf3e6dcfd1d79",
"name": "Frontend Dev",
"url": "frontend"
}
],
"tag": [
{
"_id": "63bbbe58bae680a81673f7cd",
"name": "ReduxJs Posts",
"url": "redux"
},
{
"_id": "63c3aee04c7daae474b9b65c",
"name": "Nodejs Posts",
"url": "nodejs"
}
],
"meta": "63c4dc6213d8575602ccf5de",
"owner": "63c23094cb76f81556b2df3a",
"createdAt": "2023-01-16T05:10:58.314Z",
"updatedAt": "2023-01-16T05:10:58.314Z",
"__v": 0
}
],
"message": "Products found"
}
برای ویرایش و بروز رسانی یک محصول به آدرس زیر با متد Patch ریکوست ارسال کنید:
PATCH: {{URL}}/prod/update/prodId
فیلد | نوع | توضیحات |
---|---|---|
title | string | عنوان محصول |
excerpt | string | توضیحات مختصر درباره محصول |
content | string | توضیحات کامل محصول به همراه جزئیات |
price | number | قیمت محصول |
url | string | آدرس لینک مستقیم محصول |
images | ObjectId | شامل: تصویر اصلی (main) و گالری تصاویر ([]Gallery) |
category | []ObjectId | آرایه ای از شناسه دسته ها |
tag | []ObjectId | آرایه ای از شناسه برچسب ها |
owner | ObjectId | شناسه مالک جدید |
meta | meta | شامل: title – description – keyphrase |
نمونه ریکوست:
{{URL}}/prod/update/63aaa7dc465015f29b89fee1
{
"title": "Backend Dev with Nodejs",
"content":"Complete description and detail about Nodejs and backend development",
"images": {
"main": "63bcf356ce90d6dbda7696b0",
"gallery": [
"63aaa7110c832c33351fb79e"
]
},
"url":"nodejs-backend-dev"
}
نمونه پاسخ:
{
"status": 200,
"data": {
"product": {
"images": {
"main": "63bcf356ce90d6dbda7696b0",
"gallery": [
"63aaa7110c832c33351fb79e"
]
},
"_id": "63aaa7dc465015f29b89fee1",
"title": "Backend Dev with Nodejs",
"excerpt": "You will learn how to use some advanced tools such as Nodejs work",
"content": "Complete description and detail about Nodejs and backend development",
"price": 98000,
"category": [
"63b12f89ff0cf3e6dcfd1d83"
],
"tag": [],
"meta": "63bbcec3ee1416b96dbf8f53",
"owner": "63aaa69e0c832c33351fb77e",
"comments": [],
"createdAt": "2022-12-27T08:07:56.128Z",
"updatedAt": "2023-01-16T05:28:21.863Z",
"url": "nodejs-backend-dev",
"__v": 2
},
"meta": {
"_id": "63bbcec3ee1416b96dbf8f53",
"keyphrase": [],
"link": "63aaa7dc465015f29b89fee1",
"__v": 0
}
},
"message": "Your product updated."
}
برای افزودن مکان، (کشور/ایالت|استان/شهر) به آدرس زیر با متد Post ریکوست ارسال کنید:
POST: {{URL}}loca/add
فیلد | نوع | توضیحات |
---|---|---|
type* | string | میتواند: COUNTRY – PROVESTATE - CITY |
name | string | نام کشور یا استان/ایالت یا شهر |
url | string | لینک و یا آدرس |
parent | ObjectId | برای انواع CITY و PROVESTATE باید مقدار والد را مشخص کنید |
نکته: برای ایجاد کشور مقدار COUNTRY باید وارد شود، برای ایجاد ایالت یا استان باید مقدار PROVESTATE وارد شود و برای ایجاد شهر باید مقدار CITY وارد شود. (فقط حروف بزرگ)
به جز کشور برای استان ها و یا ایالت ها و شهر ها باید مقدار والد آنرا مشخص کنید. مثلا برای ایجاد شهر باید شناسه استان والد آن شهر را وارد کنید و یا برای استان باید شناسه کشور والد آن استان را مشخص کنید.
نمونه ریکوست افزودن کشور:
{
"type": "COUNTRY",
"name": "Iran",
"url": "iran"
}
نمونه پاسخ:
{
"status": 200,
"data": {
"name": "Iran",
"url": "iran",
"_id": "63c503de7940e7743cce895d",
"__v": 0
},
"message": "Location added."
}
نمونه ریکوست افزودن استان:
{
"type": "PROVESTATE",
"name": "Golestan",
"url": "golestan",
"parent": "63c503de7940e7743cce895d"
}
نمونه پاسخ:
{
"status": 200,
"data": {
"name": "Golestan",
"url": "golestan",
"parent": "63c503de7940e7743cce895d",
"_id": "63c5048e7940e7743cce8961",
"__v": 0
},
"message": "Location added."
}
نمونه ریکوست افزودن شهر:
{
"type": "CITY",
"name": "Gorgan",
"url": "gorgan",
"parent": "63c5048e7940e7743cce8961"
}
نمونه پاسخ:
{
"status": 200,
"data": {
"name": "Gorgan",
"url": "gorgan",
"parent": "63c5048e7940e7743cce8961",
"_id": "63c505047940e7743cce8965",
"__v": 0
},
"message": "Location added."
}
برای فهرست گرفتن از کلیه کشور ها به آدرس زیر با متد Get ریکوست ارسال کنید:
GET: {{URL}}/loca/list
{
"status": 200,
"data": [
{
"_id": "63b7d68507808f0582fe2000",
"name": "USA",
"url": "usa",
"__v": 0
},
{
"_id": "63c503de7940e7743cce895d",
"name": "Iran",
"url": "iran",
"__v": 0
}
],
"message": "Country found."
}
برای دریافت جزئیات و استان ها و شهر های زیر مجموع یک مکان به آدرس زیر با متد Get ریکوست ارسال کنید:
GET: {{URL}}/loca/get/locationId
فیلد | نوع | توضیحات |
---|---|---|
type* | string | میتواند: COUNTRY – PROVESTATE - CITY |
نمونه ریکوست:
{{URL}}/loca/get/63c503de7940e7743cce895d
{
"type": "COUNTRY"
}
نمونه پاسخ:
{
"status": 200,
"data": {
"country": {
"_id": "63c503de7940e7743cce895d",
"name": "Iran",
"url": "iran",
"__v": 0
},
"provState": [
{
"_id": "63c5048e7940e7743cce8961",
"name": "Golestan",
"url": "golestan",
"parent": "63c503de7940e7743cce895d",
"__v": 0
}
]
},
"message": "Country found"
}
برای ویرایش و بروز رسانی یک مکان به آدرس زیر با متد Patch یک ریکوست ارسال کنید:
PATCH: {{URL}}/loca/edit/locationId
فیلد | نوع | توضیحات |
---|---|---|
type* | string | میتواند: COUNTRY – PROVESTATE - CITY |
name | string | نام کشور یا استان/ایالت یا شهر |
url | string | لینک و یا آدرس |
parent | ObjectId | برای انواع CITY و PROVESTATE باید مقدار والد را مشخص کنید |
نمونه ریکوست:
{{URL}}/loca/edit/63c505047940e7743cce8965
{
"type": "CITY",
"url": "gorgan",
"parent": "63c5048e7940e7743cce8961"
}
نمونه پاسخ:
{
"status": 200,
"data": {
"_id": "63c505047940e7743cce8965",
"name": "Gorgan",
"url": "gorgan",
"parent": "63c5048e7940e7743cce8961",
"__v": 0
},
"message": "Location updated."
}
برای حذف یک مکان به آدرس زیر با متد Delete ریکوست ارسال کنید:
DELETE: {{URL}}/loca/remove/locationId
فیلد | نوع | توضیحات |
---|---|---|
type* | string | میتواند: COUNTRY – PROVESTATE - CITY |
نمونه ریکوست:
{{URL}}/loca/remove/63b90bdbe496b54dcbb636f2
{
"status": 200,
"data": {
"_id": "63b90bdbe496b54dcbb636f2",
"name": "Isfahan",
"url": "isfahan",
"parent": "63b7d6bf663b803a8b3c9f79",
"__v": 0
},
"message": "This location id: 63b90bdbe496b54dcbb636f2 deleted!"
}
برای حذف یک محصول به آدرس زیر با متد Delete ریکوست ارسال کنید:
DELETE: {{URL}}/prod/delete/prodId
نمونه ریکوست:
{{URL}}/prod/delete/63aaa7dc465015f29b89fee1
نمونه پاسخ:
{
"status": 200,
"message": "The product deleted!",
"data": {
"images": {
"main": "63bcf356ce90d6dbda7696b0",
"gallery": [
"63aaa7110c832c33351fb79e"
]
},
"_id": "63aaa7dc465015f29b89fee1",
"title": "Backend Dev with Nodejs",
"excerpt": "You will learn how to use some advanced tools such as Nodejs work",
"content": "Complete description and detail about Nodejs and backend development",
"price": 98000,
"category": [
"63b12f89ff0cf3e6dcfd1d83"
],
"tag": [],
"meta": "63bbcec3ee1416b96dbf8f53",
"owner": "63aaa69e0c832c33351fb77e",
"comments": [],
"createdAt": "2022-12-27T08:07:56.128Z",
"updatedAt": "2023-01-16T05:28:21.863Z",
"url": "nodejs-backend-dev",
"__v": 2
}
}
برای اضافه کردن یک محصول بع سبد خرید باید شناسه محصول را با متد Post به آدرس زیر ارسال کنید:
POST: {{URL}}/cart/add
فیلد | نوع | توضیحات |
---|---|---|
prodId | string | شناسه محصول |
نمونه ریکوست:
{
"prodId": "63aaa7dc465015f29b89fee1"
}
نمونه پاسخ:
{
"status": 200,
"data": {
"userId": "63c23094cb76f81556b2df3a",
"list": [
{
"prodId": "63c4dc6213d8575602ccf5df",
"quantity": 1,
"price": 124000,
"_id": "63c4eef60257c81a33d4269e"
}
],
"payment": {
"state": "READY",
"date": 1673846143351
},
"amount": 124000,
"_id": "63c4eef60257c81a33d4269d",
"__v": 0
},
"message": "A new cart created."
}
نکته: با تکرار ارسال یک ریکوست تکراری فقط تعداد Quantity همان محصول در سبد خرید افزایش پیدا میکند.
برای مشاهده محصولات افزوده شده به سبد خرید به آدرس زیر با متد Get ریکوست ارسال کنید:
GET: {{URL}}/cart/get
نمونه پاسخ:
{
"status": 200,
"data": {
"payment": {
"state": "READY",
"date": 1673846143351
},
"_id": "63c4eef60257c81a33d4269d",
"userId": "63c23094cb76f81556b2df3a",
"list": [
{
"prodId": "63c4dc6213d8575602ccf5df",
"quantity": 1,
"price": 124000,
"_id": "63c4eef60257c81a33d4269e"
}
],
"amount": 124000,
"__v": 0
},
"message": "Cart found."
}
برای بروز رسانی سبد خرید به آدرس زیر با متد Patch ریکوست ارسال کنید:
PATCH: {{URL}}/cart/update
فیلد | نوع | توضیحات |
---|---|---|
list | array | شامل محصولات سبد خرید: شناسه محصول prodId و تعداد محصول quantity |
نکته: ریکوست ارسالی شامل یک آرایه از کلیه محصولات به همراه مقادیر جدول بالا میباشد.
نمونه ریکوست:
{
"list": [
{
"prodId": "63c4dc6213d8575602ccf5df",
"quantity": 1
},
{
"prodId": "63ad11e3d7261f57cfbb4566",
"quantity": 2
}
]
}
نمونه پاسخ:
{
"status": 200,
"data": {
"payment": {
"state": "READY",
"date": 1673846143351
},
"_id": "63c4eef60257c81a33d4269d",
"userId": "63c23094cb76f81556b2df3a",
"list": [
{
"prodId": "63c4dc6213d8575602ccf5df",
"quantity": 1,
"price": 124000,
"_id": "63c4eef60257c81a33d4269e"
},
{
"prodId": "63ad11e3d7261f57cfbb4566",
"quantity": 2,
"price": 98000,
"_id": "63c4f1870257c81a33d426a9"
}
],
"amount": 320000,
"__v": 1
},
"message": "Cart updated."
}
برای خالی کردن سبد خرید به آدرس زیر با متد Delete ریکوست ارسال کنید:
DELET: {{URL}}/cart/delete
نمونه پاسخ:
{
"status": 200,
"message": "Cart removed!"
}
برای پرداخت آنلاین به آدرس زیر با متد Post ریکوست ارسال کنید:
POST: {{URL}}/paym/payment
نمونه پاسخ:
{
"status": 200,
"data": {
"info": {
"payment": {
"authority": "A00000000000000000000000000403047345",
"code": 100,
"state": "PEDNDING",
"date": 1674015932872
},
"_id": "63c62325447dd312c35662fd",
"userId": "63c23094cb76f81556b2df3a",
"list": [
{
"prodId": "63ad11e3d7261f57cfbb4566",
"quantity": 1,
"price": 98000,
"_id": "63c62325447dd312c35662fe"
}
],
"amount": 98000,
"__v": 0
},
"redirect": "https://www.zarinpal.com/pg/StartPay/A00000000000000000000000000403047345"
}
}
بعد از دریافت پاسخ، کاربر را به مقدار ریدایرکت منتقل کنید. در صورت موفق بودن تراکنش مقدار Status مساوی OK میشود و در غیر این صورت مقدار آن NOK باز میگردد.
نمونه تراکنش موفق که کاربر از طرف درگاه پرداخت به فرانت منتقل شده است:
{{URL}}?Authority=A00000000000000000000000000403047345&Status=OK
نمونه تراکنش ناموفق که کاربر از طرف درگاه پرداخت به فرانت منتقل شده است:
{{URL}}?Authority=A00000000000000000000000000403047345&Status=NOK
نکته: در حال حاضر تنها درگاه پرداخت تنظیم شده زرین پال میباشد.
در صورت خالی بودن سبد خرید:
تایید پرداخت
برای بررسی پرداخت انجام شده به آدرس زیر ریکوست خود را با متد POST ارسال کنید:
POST: {{URL}}/paym/checkout
فیلد | نوع | توضیحات |
---|---|---|
Authority | string | شناسه پرداخت |
Status | string | مقدار OK یا NOK |
در صورت دریافت OK مقدار OK را بازگردانید و در صورت دریافت مقدار NOK همان را بازگردانید.
ریکوست نمونه:
{
"Authority":"A00000000000000000000000000401330946",
"Status":"OK"
}
نمونه پاسخ:
{
"status": 200,
"data": {
"userId": "63c23094cb76f81556b2df3a",
"list": [
{
"prodId": "63ad11e3d7261f57cfbb4566",
"quantity": 1,
"price": 98000,
"_id": "63c62325447dd312c35662fe"
}
],
"payment": {
"authority": "A00000000000000000000000000403047345",
"code": 100,
"state": "SUCCESS",
"date": 1674015932872
},
"amount": 98000,
"_id": "63c6289f447dd312c3566309",
"createdAt": "2023-01-17T04:48:31.741Z",
"updatedAt": "2023-01-17T04:48:31.741Z",
"__v": 0
},
"message": "The payment is done."
}
برای فهرست گیری از کلیه سفارش های انجام شده به آدرس زیر با متد Get ریکوست ارسال کنید:
GET: {{URL}}/orde/list
نمونه پاسخ:
{
"status": 200,
"data": [
{
"payment": {
"authority": "A00000000000000000000000000398323748",
"code": 100,
"state": "SUCCESS"
},
"_id": "63abdcc007c4f8af45cf4a0d",
"userId": "63aaa69e0c832c33351fb77e",
"list": [
{
"prodId": "63aaa7dc465015f29b89fee1",
"quantity": 2,
"price": 98000,
"_id": "63aaa87bff14249bda05adfb"
}
],
"amount": 196000,
"__v": 0
},
{
"payment": {
"authority": "A00000000000000000000000000401330946",
"code": 100,
"state": "SUCCESS",
"date": 1673425068471
},
"_id": "63bd2029c9927249907a709d",
"userId": "63b51152f7daee2dfbd6d28a",
"list": [
{
"prodId": "63ad11e3d7261f57cfbb4566",
"quantity": 1,
"price": 98000,
"_id": "63ba6b5bce97ace49c2afa1b"
},
{
"prodId": "63aaa7dc465015f29b89fee1",
"quantity": 1,
"price": 98000,
"_id": "63ba6b5ece97ace49c2afa22"
}
],
"amount": 196000,
"createdAt": "2023-01-10T08:22:01.895Z",
"updatedAt": "2023-01-10T08:22:01.895Z",
"__v": 0
}
],
"message": "Orders found"
}
برای دریافت جزئیات سفارش به آدرس زیر با متد Get ریکوست ارسال کنید:
GET: {{GET}}/orde/get/orderId
نمونه ریکوست:
{{URL}}/orde/get/63c6289f447dd312c3566309
نمونه پاسخ:
{
"status": 200,
"data": {
"payment": {
"authority": "A00000000000000000000000000403047345",
"code": 100,
"state": "SUCCESS",
"date": 1674015932872
},
"_id": "63c6289f447dd312c3566309",
"userId": {
"_id": "63c23094cb76f81556b2df3a",
"name": "Mohammad Barghamadi",
"phone": "9304551004"
},
"list": [
{
"prodId": "63ad11e3d7261f57cfbb4566",
"quantity": 1,
"price": 98000,
"_id": "63c62325447dd312c35662fe"
}
],
"amount": 98000,
"createdAt": "2023-01-17T04:48:31.741Z",
"updatedAt": "2023-01-17T04:48:31.741Z",
"__v": 0
},
"message": "Order found."
}
برای افزودن آدرس پستی مشتری به آدرس زیر با متد Post ریکوست ارسال کنید:
POST: {{URL}}/addr/add
فیلد | نوع | توضیحات |
---|---|---|
country | ObjectId | شناسه کشور انتخاب شده |
Status | string | مقدار OK یا NOK |
proveState | ObjectId | شناسه استان انتخاب شده |
city | ObjectId | شناسه شهر انتخاب شده |
address | string | جزئیات آدرس: خیابان – محله – کوچه |
postalcode | string | کد پستی دریافت کننده محصول |
نمونه ریکوست:
{
"country": "63c503de7940e7743cce895d",
"provState": "63c5048e7940e7743cce8961",
"city": "63c505047940e7743cce8965",
"address": "Soroush 6 entehayeh kheyaban",
"postalcode": "49187245365"
}
نمونه پاسخ:
{
"status": 200,
"data": {
"country": "63c503de7940e7743cce895d",
"provState": "63c5048e7940e7743cce8961",
"city": "63c505047940e7743cce8965",
"address": "Soroush 6 entehayeh kheyaban",
"postalcode": "49187245365",
"userId": "63c23094cb76f81556b2df3a",
"_id": "63c639c0634ef0881f9a3567",
"__v": 0
},
"message": "Address added."
}
برای فهرست گیری از آدرس های پستی خریدار به آدرس زیر با متد Get ریکوست ارسال کنید:
GET: {{URL}}/addr/list
نمونه ریکوست:
{
"status": 200,
"data": [
{
"_id": "63c639c0634ef0881f9a3567",
"address": "Soroush 6 entehayeh kheyaban"
}
],
"message": "Address found."
}
برای دریافت جزئیات آدرس پستی یک کاربر به ادرس زیر با متد Get ریکوست ارسال کنید:
GET: {{URL}}/addr/get/addressId
نمونه ریکوست:
{{URL}}/addr/get/63c639c0634ef0881f9a3567
نمونه پاسخ:
{
"status": 200,
"data": {
"_id": "63c639c0634ef0881f9a3567",
"country": {
"_id": "63c503de7940e7743cce895d",
"name": "Iran"
},
"provState": {
"_id": "63c5048e7940e7743cce8961",
"name": "Golestan"
},
"city": {
"_id": "63c505047940e7743cce8965",
"name": "Gorgan"
},
"address": "Soroush 6 entehayeh kheyaban",
"postalcode": "49187245365",
"userId": "63c23094cb76f81556b2df3a",
"__v": 0
},
"message": "Address found."
}
برای ویرایش آدرس پستی مشتری به آدرس زیر با متد Patch ریکوست ارسال کنید:
PATCH: {{URL}}/addr/edit/addressId
فیلد | نوع | توضیحات |
---|---|---|
country | ObjectId | شناسه کشور انتخاب شده |
Status | string | مقدار OK یا NOK |
proveState | ObjectId | شناسه استان انتخاب شده |
city | ObjectId | شناسه شهر انتخاب شده |
address | string | جزئیات آدرس: خیابان – محله – کوچه |
postalcode | string | کد پستی دریافت کننده محصول |
نمونه ریکوست:
{{URL}}/addr/edit/63c639c0634ef0881f9a3567
{
"postalcode": "471665892"
}
نمونه پاسخ:
{
"status": 200,
"data": {
"_id": "63c639c0634ef0881f9a3567",
"country": "63c503de7940e7743cce895d",
"provState": "63c5048e7940e7743cce8961",
"city": "63c505047940e7743cce8965",
"address": "Soroush 6 entehayeh kheyaban",
"postalcode": "471665892",
"userId": "63c23094cb76f81556b2df3a",
"__v": 0
},
"message": "Address updated."
}
برای حذف آدرس پستی مشتری به آدرس زیر با متد Delete ریکوست ارسال کنید:
DELETE: {{URL}}/addr/delete/addressId
نمونه ریکوست:
{{URL}}/addr/delete/63c639c0634ef0881f9a3567
نمونه پاسخ:
{
"status": 200,
"data": {
"_id": "63c639c0634ef0881f9a3567",
"country": "63c503de7940e7743cce895d",
"provState": "63c5048e7940e7743cce8961",
"city": "63c505047940e7743cce8965",
"address": "Soroush 6 entehayeh kheyaban",
"postalcode": "471665892",
"userId": "63c23094cb76f81556b2df3a",
"__v": 0
},
"message": "Address deleted."
}
برای افزودن یک محصول به فهرست علاقه مندی های به آدرس زیر با متد Post ریکوست ارسال کنید:
POST: {{URL}}/favo/add
فیلد | نوع | توضیحات |
---|---|---|
prodId | ObjectId | شناسه محصول |
نمونه ریکوست:
{
"prodId": "63ad11e3d7261f57cfbb4566"
}
نمونه پاسخ:
{
"status": 200,
"message": "Item added to favorites."
}
نکته: برای حذف یک محصول از فهرست علاقه مندی ها کافیست همان ریکوست تکرار شود.
برای فهرست گرفتن از آیتم های موجود در علاقه مندی ها به آدرس زیر با متد Get ریکوست ارسال کنید:
GET: {{URL}}/favo/list
نمونه پاسخ:
{
"status": 200,
"data": {
"_id": "63c64d3a9294f4f5be73456a",
"userId": "63c23094cb76f81556b2df3a",
"list": [
{
"prodId": {
"images": {
"main": "63aaa7110c832c33351fb79e"
},
"_id": "63ad11e3d7261f57cfbb4566",
"title": "Backend dev with Nodejs",
"price": 98000,
"url": "backend-dev-with-nodejs-58949-1672286691815"
},
"_id": "63c64d3a9294f4f5be73456b"
}
],
"__v": 0
},
"message": "Favorite list"
}
برای خالی نمودن کلیه ایتم های موجود در فهرست علاقه مندی ها به آدرس زیر با متد Delete ریکوست ارسال کنید:
DELETE: {{URL}}/favo/clear
نمونه پاسخ:
{
"status": 200,
"data": {
"_id": "63c64d3a9294f4f5be73456a",
"userId": "63c23094cb76f81556b2df3a",
"list": [],
"__v": 1
},
"message": "Favorite list emptied"
}
برای ثبت نظر به آدرس زیر با متد Post ریکوست ارسال کنید:
POST: {{URL}}/cmnt/add
فیلد | نوع | توضیحات |
---|---|---|
name | string | نام کاربر درصورتیکه وارد برنامه نشده باشد |
prodId | ObjectId | شناسه محصول |
rating | number | عدد ۱ تا 5 |
title | string | عنوان دیدگاه |
description | string | توضیحات دیدگاه |
string | آدرس ایمیل کاربر در صورتیکه وارد برنامه نشده باشد |
نمونه ریکوست:
{
"prodId": "63ad11e3d7261f57cfbb4566",
"rating": 4,
"title": "Best Nodejs course ever",
"description": "I don't know how to say thank you, but I can say Thanks so much."
}
نمونه پاسخ:
{
"status": 200,
"data": {
"name": "Mohammad Barghamadi",
"email": "mohammadbarghamadi@gmail.com",
"authorId": "63c23094cb76f81556b2df3a",
"prodId": "63ad11e3d7261f57cfbb4566",
"rating": 4,
"title": "Best Nodejs course ever",
"description": "I don't know how to say thank you, but I can say Thanks so much.",
"status": "PENDING",
"_id": "63c653c5a66636d4f0ff8db1",
"createdAt": "2023-01-17T07:52:37.158Z",
"updatedAt": "2023-01-17T07:52:37.158Z",
"__v": 0
},
"message": "New comment added."
}
نمونه ریکوست برای زمانیکه کاربر ثبت نام نکرده و یا وارد برنامه نشده باشد:
{
"name": "Jim Kwik",
"email": "jimkwik@gmail.com",
"prodId": "63ad11e3d7261f57cfbb4566",
"rating": 5,
"title": "What a tutorial",
"description": "Best backend development you can find on whole Internet."
}
نمونه پاسخ:
{
"status": 200,
"data": {
"name": "Jim Kwik",
"email": "jimkwik@gmail.com",
"prodId": "63ad11e3d7261f57cfbb4566",
"rating": 5,
"title": "What a tutorial",
"description": "Best backend development you can find on whole Internet.",
"status": "PENDING",
"_id": "63c6574f772d2f9ce1268a34",
"createdAt": "2023-01-17T08:07:43.376Z",
"updatedAt": "2023-01-17T08:07:43.376Z",
"__v": 0
},
"message": "New comment added."
}
برای فهرست گیری و نمایش کلیه دیدگاه های (تایید شده) یک محصول به آدرس زیر با متد Get ریکوست ارسال کنید:
GET: {{URL}}/cmnt/show/prodId
نمونه ریکوست:
{{URL}}/cmnt/show/63ad11e3d7261f57cfbb4566
نمونه پاسخ:
{
"status": 200,
"data": [
{
"_id": "63c653c5a66636d4f0ff8db1",
"name": "Mohammad Barghamadi",
"email": "mohammadbarghamadi@gmail.com",
"rating": 4,
"title": "Best Nodejs course ever",
"description": "I don't know how to say thank you, but I can say Thanks so much."
},
{
"_id": "63c6574f772d2f9ce1268a34",
"name": "Jim Kwik",
"email": "jimkwik@gmail.com",
"rating": 5,
"title": "What a tutorial",
"description": "Best backend development you can find on whole Internet."
}
],
"message": "Product comments found."
}
برای فهرست گیری از کلیه دیدگاه ها ثبت شده در سایت به آدرس زیر با متد Get ریکوست ارسال کنید:
GET: {{URL}}/cmnt/list
فیلد | نوع | توضیحات |
---|---|---|
admin | boolean | درصورت true بودن فهرست کلیه دیدگاه ها ارسال میشود در غیر اینصورت فقط دیدگاه های فرد درخواست کنند نمایش داده میشود. |
نمونه ریکوست برای دریافت همه دیدگاه ها به عنوان مدیر برنامه:
{
"admin":true
}
نمونه پاسخ:
{
"status": 200,
"data": [
{
"_id": "63bd17ca36ee070579b89cda",
"name": "Sharif Mohamed",
"email": "sharifmohamed@gmail.com",
"prodId": "63aaa7dc465015f29b89fee1",
"rating": 4,
"title": "Best Laptop ever",
"description": "I don't know how to say thank you, but I can say Thanks so much.",
"status": "APPROVED",
"createdAt": "2023-01-10T07:46:18.191Z",
"updatedAt": "2023-01-10T07:50:34.457Z",
"__v": 0
},
{
"_id": "63c653c5a66636d4f0ff8db1",
"name": "Mohammad Barghamadi",
"email": "mohammadbarghamadi@gmail.com",
"authorId": "63c23094cb76f81556b2df3a",
"prodId": "63ad11e3d7261f57cfbb4566",
"rating": 4,
"title": "Best Nodejs course ever",
"description": "I don't know how to say thank you, but I can say Thanks so much.",
"status": "PENDING",
"createdAt": "2023-01-17T07:52:37.158Z",
"updatedAt": "2023-01-17T07:52:37.158Z",
"__v": 0
},
{
"_id": "63c6574f772d2f9ce1268a34",
"name": "Jim Kwik",
"email": "jimkwik@gmail.com",
"prodId": "63ad11e3d7261f57cfbb4566",
"rating": 5,
"title": "What a tutorial",
"description": "Best backend development you can find on whole Internet.",
"status": "PENDING",
"createdAt": "2023-01-17T08:07:43.376Z",
"updatedAt": "2023-01-17T08:07:43.376Z",
"__v": 0
}
],
"message": "Comments found."
}
برای مشاهده یک دیدگاه به آدرس زیر با متد Get ریکوست ارسال کنید:
GET: {{URL}}/cmnt/get/commentId
نمونه ریکوست:
{{URL}}/cmnt/get/63bd15d14a35eb59ad50d235
نمونه پاسخ:
{
"status": 200,
"data": {
"_id": "63bd15d14a35eb59ad50d235",
"name": "Mohammad Barghamadi",
"email": "mohammadbarghamadi@gmail.com",
"authorId": "63b51152f7daee2dfbd6d28a",
"prodId": "63aaa7dc465015f29b89fee1",
"rating": 5,
"title": "Amazing Product",
"description": "I really appricate for this nice product that you created for us, thank you and keep up good work.",
"status": "APPROVED",
"createdAt": "2023-01-10T07:37:53.982Z",
"updatedAt": "2023-01-10T07:51:31.509Z",
"__v": 0
},
"message": "comment found."
}
ویرایش یک دیدگاه
برای ویرایش و تایید و رد نمودن یک دیدگاه به آدرس زیر با متد Patch ریکوست ارسال کنید:
PATCH: {{URL}}/cmnt/edit/commentId
فیلد | نوع | توضیحات |
---|---|---|
status | string | میتواند: PENDING – REJECTED - APPROVED |
name | string | نام کاربر |
prodId | ObjectId | شناسه محصول |
rating | number | عدد ۱ تا 5 |
title | string | عنوان دیدگاه |
description | string | توضیحات دیدگاه |
string | آدرس ایمیل کاربر |
نمونه ریکوست:
{
"status":"APPROVED"
}
نمونه پاسخ:
{
"status": 200,
"data": {
"_id": "63c6574f772d2f9ce1268a34",
"name": "Jim Kwik",
"email": "jimkwik@gmail.com",
"prodId": "63ad11e3d7261f57cfbb4566",
"rating": 5,
"title": "What a tutorial",
"description": "Best backend development you can find on whole Internet.",
"status": "APPROVED",
"createdAt": "2023-01-17T08:07:43.376Z",
"updatedAt": "2023-01-17T08:20:14.116Z",
"__v": 0
},
"message": "Comment updated."
}
برای حذف یک دیدگاه به آدرس زیر با متد Delete ریکوست ارسال کنید:
DELETE: {{URL}}/cmnt/delete/63c6574f772d2f9ce1268a34
نمونه ریکوست:
{{URL}}/cmnt/delete/63c6574f772d2f9ce1268a34
نمونه پاسخ:
{
"status": 200,
"data": {
"_id": "63c6574f772d2f9ce1268a34",
"name": "Jim Kwik",
"email": "jimkwik@gmail.com",
"prodId": "63ad11e3d7261f57cfbb4566",
"rating": 5,
"title": "What a tutorial",
"description": "Best backend development you can find on whole Internet.",
"status": "APPROVED",
"createdAt": "2023-01-17T08:07:43.376Z",
"updatedAt": "2023-01-17T08:20:14.116Z",
"__v": 0
},
"message": "Comment deleted."
}