الأفكار

كائن الفكرة

{
  "id": "c469e730-043d-4bda-a3a0-5e029f56c027",
  "createdAt": "2025-03-07T13:22:12.110Z",
  "updatedAt": "2025-03-07T13:22:12.110Z",
  "friendlyId": 1,
  "aiAssisted": false,
  "canEdit": true,
  "keywords": [],
  "anonymity": null,
  "isLiked": false,
  "fields": [
    {
      "kind": "SHORT_TEXT",
      "title": "Title",
      "value": "Great Idea"
    },
    {
      "kind": "LONG_TEXT",
      "title": "Description",
      "value": "This is a great idea"
    }
  ],
  "stats": {
    "likes": {
      "total": 0
    }
  },
  "mission": {
    "title": "My mission"
  },
  "owner": {
    "email": "test@test.com",
    "firstName": "Test"
  },
  "status": {
    "title": "On Track",
    "kind": "ACTIVE"
  },
  "phase": {
    "name": "Comment"
  }
}

الحقول

الحقل

النوع

الوصف

المعرّف

string

المعرّف الفريد للفكرة.

createdAt

ISODate

تاريخ إنشاء الفكرة.

updatedAt

ISODate

تاريخ آخر تحديث للفكرة.

friendlyId

number

معرّف الفكرة المقروء للبشر

aiAssisted

boolean

يشير إلى ما إذا كانت هذه الفكرة قد أُنشئت باستخدام الذكاء الاصطناعي

canEdit

boolean

يشير إلى ما إذا كان لدى المستخدم إذن تعديل الفكرة

الكلمات المفتاحية

string[]

الكلمات المفتاحية المستخرجة من محتوى الفكرة

إخفاء الهوية

"partial" "full"

درجة إخفاء الهوية في هذه الفكرة

isLiked

boolean

يشير إلى ما إذا كان المستخدم المفوّض قد أعجب بهذه الفكرة

fields.kind

"SHORT_TEXT" "LONG_TEXT" "ATTACHMENTS" "NUMERIC" "CHECKMARK" "SLIDER" "RADIO" "SELECT" "DATETIME" "CODE" "IMAGE_CHOICE" "SCORE" "MEMBER" "STATIC"

نوع حقل الفكرة المعبأ

fields.title

string

عنوان حقل الفكرة المعبأ

fields.value

"string" "number" "Media"

قيمة حقل الفكرة المعبأ

stats.likes.total

number

إجمالي عدد الإعجابات بالفكرة

المهمة

المهمة

المهمة التي أُنشئت فيها هذه الفكرة

المالك

المستخدم

المستخدم الذي أنشأ هذه الفكرة

الحالة

الحالة

حالة الفكرة

المرحلة

المرحلة

المرحلة الحالية للفكرة

عرض الأفكار

curl -X GET "https://api.ideanote.io/v1/ideas?fields=id,friendlyId,keywords,status.title,phase.name,fields.{kind,title,value},owner.{firstName}" \
     -H "Content-Type: application/json" \
     -H "Authorization: Bearer <API Token>"
const result = await fetch("https://api.ideanote.io/v1/ideas?fields=id,friendlyId,keywords,status.title,phase.name,fields.{kind,title,value},owner.{firstName}", {
  method: "GET",
  headers: {
    "Content-Type": "application/json",
    "Authorization": "Bearer <API Token>",
  }
});

const ideas = await result.json();
يعرض الأمر أعلاه بيانات JSON منظمة على النحو التالي:
[
  {
    "friendlyId": 2,
    "keywords": [],
    "status": {},
    "phase": {},
    "fields": [
      {},
      {}
    ],
    "owner": {}
  },
  {
    "friendlyId": 1,
    "keywords": [],
    "status": {},
    "phase": {},
    "fields": [
      {},
      {}
    ],
    "owner": {}
  }
]

تعرض نقطة النهاية هذه الأفكار.

HTTP طلب

GET /v1/ideas

عرض الأفكار في مهمة

curl -X GET "https://api.ideanote.io/v1/missions/b3f0255d-6dc9-4c4e-b932-7186d7268a66/ideas?fields=id,friendlyId,keywords,status.title,phase.name,fields.{kind,title,value},owner.{firstName}" \
     -H "Content-Type: application/json" \
     -H "Authorization: Bearer <API Token>"
const result = await fetch("https://api.ideanote.io/v1/missions/b3f0255d-6dc9-4c4e-b932-7186d7268a66/ideas?fields=id,friendlyId,keywords,status.title,phase.name,fields.{kind,title,value},owner.{firstName}", {
  method: "GET",
  headers: {
    "Content-Type": "application/json",
    "Authorization": "Bearer <API Token>",
  }
});

const idea = await result.json();
يعرض الأمر أعلاه بيانات JSON منظمة على النحو التالي:
[]

تعرض نقطة النهاية هذه الأفكار.

HTTP طلب

GET /v1/missions/:mission_id/ideas

معلمات الاستعلام

المعلمة

الوصف

mission_id

معرّف المهمة التي تريد عرض أفكارها

الحصول على فكرة

curl -X GET "https://api.ideanote.io/v1/ideas/c469e730-043d-4bda-a3a0-5e029f56c027?fields=id,friendlyId,keywords,status.title,phase.name,fields.{kind,title,value},owner.{firstName}" \
     -H "Content-Type: application/json" \
     -H "Authorization: Bearer <API Token>"
const result = await fetch("https://api.ideanote.io/v1/ideas/c469e730-043d-4bda-a3a0-5e029f56c027?fields=id,friendlyId,keywords,status.title,phase.name,fields.{kind,title,value},owner.{firstName}", {
  method: "GET",
  headers: {
    "Content-Type": "application/json",
    "Authorization": "Bearer <API Token>",
  }
});

const idea = await result.json();
يعرض الأمر أعلاه بيانات JSON منظمة على النحو التالي:
{
  "friendlyId": 1,
  "keywords": [],
  "status": {},
  "phase": {},
  "fields": [
    {},
    {}
  ],
  "owner": {}
}

تسترجع نقطة النهاية هذه فكرة محددة.

HTTP طلب

GET /v1/ideas/:idea_id

معلمات الاستعلام

المعلمة

الوصف

idea_id

معرّف الفكرة المراد استرجاعها

إنشاء فكرة

curl -X POST "https://api.ideanote.io/v1/ideas?fields=id,friendlyId,keywords,status.title,phase.name,fields.{kind,title,value},owner.{firstName}" \
     -H "Content-Type: application/json" \
     -H "Authorization: Bearer <API Token>" \
     -d '{"mission":"b3f0255d-6dc9-4c4e-b932-7186d7268a66","Title":"My idea","Description":"This is my idea","Days to Implement":28}'
const result = await fetch("https://api.ideanote.io/v1/ideas?fields=id,friendlyId,keywords,status.title,phase.name,fields.{kind,title,value},owner.{firstName}", {
  method: "POST",
  body: {
    "mission": "b3f0255d-6dc9-4c4e-b932-7186d7268a66",
    "Title": "My idea",
    "Description": "This is my idea",
    "Days to Implement": 28
  },
  headers: {
    "Content-Type": "application/json",
    "Authorization": "Bearer <API Token>",
  }
});

const ideas = await result.json();
يعرض الأمر أعلاه بيانات JSON منظمة على النحو التالي:
{
  "friendlyId": 3,
  "keywords": [],
  "status": {},
  "phase": {},
  "fields": [
    {},
    {},
    {
      "value": 28
    }
  ],
  "owner": {}
}

تنشئ نقطة النهاية هذه فكرة جديدة.

HTTP طلب

POST /v1/ideas

تحديث الفكرة

curl -X PUT "https://api.ideanote.io/v1/ideas/c469e730-043d-4bda-a3a0-5e029f56c027?fields=id,friendlyId,keywords,status.title,phase.name,fields.{kind,title,value},owner.{firstName}" \
     -H "Content-Type: application/json" \
     -H "Authorization: Bearer <API Token>" \
     -d '{"status":"c52d8af2-2727-4c76-8a8f-1814e488324e"}'
const result = await fetch("https://api.ideanote.io/v1/ideas/c469e730-043d-4bda-a3a0-5e029f56c027?fields=id,friendlyId,keywords,status.title,phase.name,fields.{kind,title,value},owner.{firstName}", {
  method: "PUT",
  body: {
    "status": "c52d8af2-2727-4c76-8a8f-1814e488324e"
  },
  headers: {
    "Content-Type": "application/json",
    "Authorization": "Bearer <API Token>",
  }
});

const idea = await result.json();
يعيد الأمر أعلاه بيانات JSON منظّمة على النحو التالي:
{
  "friendlyId": 1,
  "keywords": [
    null,
    null,
    null,
    null
  ],
  "status": {},
  "phase": {},
  "fields": [
    {},
    {}
  ],
  "owner": {}
}

تُحدّث نقطة النهاية هذه فكرة محددة.

HTTP طلب

PUT /v1/ideas/:idea_id

معلمات الاستعلام

المعلمة

الوصف

idea_id

معرّف الفكرة المراد تحديثها

حذف الفكرة

curl -X DELETE "https://api.ideanote.io/v1/idea/c469e730-043d-4bda-a3a0-5e029f56c027" \
     -H "Content-Type: application/json" \
     -H "Authorization: Bearer <API Token>"
const result = await fetch("https://api.ideanote.io/v1/idea/c469e730-043d-4bda-a3a0-5e029f56c027", {
  method: "DELETE",
  headers: {
    "Content-Type": "application/json",
    "Authorization": "Bearer <API Token>",
  }
});

تحذف نقطة النهاية هذه فكرة محددة.

HTTP طلب

DELETE /v1/idea/:idea_id

مَعلمات الاستعلام

المعلمة

الوصف

idea_id

معرّف الفكرة المراد حذفها