API المستخدمين
مرجع كامل لنقاط نهاية إدارة المستخدمين.
قائمة المستخدمين
http
GET /v1/usersمعاملات الاستعلام
| المعامل | النوع | الوصف |
|---|---|---|
role | string | تصفية حسب slug الدور أو المعرف (مثل department_head، procurement_officer) |
department_id | integer | تصفية حسب القسم |
status | string | تصفية حسب الحالة: active، inactive، invited |
page | integer | رقم الصفحة (الافتراضي: 1) |
per_page | integer | عناصر لكل صفحة (الافتراضي: 15، الحد الأقصى: 100) |
search | string | بحث بالاسم أو البريد |
مثال الطلب
bash
curl -X GET "https://api.waqti.sa/v1/users?status=active&department_id=2&per_page=20" \
-H "Authorization: Bearer 3|a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0" \
-H "Accept: application/json"مثال الاستجابة
json
{
"data": [
{
"id": 12,
"name_en": "Sara Al-Mutairi",
"name_ar": "سارة المطيري",
"email": "sara.mutairi@acme.sa",
"role": {
"id": 3,
"name": "Department Head"
},
"department": {
"id": 2,
"name": "Operations",
"code": "OPS"
},
"status": "active",
"two_factor_enabled": true,
"last_login_at": "2026-04-03T08:15:00Z",
"created_at": "2025-08-20T09:00:00Z"
},
{
"id": 18,
"name_en": "Omar Hassan",
"name_ar": "عمر حسن",
"email": "omar.hassan@acme.sa",
"role": {
"id": 5,
"name": "Procurement Officer"
},
"department": {
"id": 2,
"name": "Operations",
"code": "OPS"
},
"status": "invited",
"two_factor_enabled": false,
"last_login_at": null,
"created_at": "2026-04-01T11:30:00Z"
}
],
"meta": {
"current_page": 1,
"last_page": 2,
"per_page": 20,
"total": 34
}
}إنشاء مستخدم (دعوة)
http
POST /v1/usersيُنشئ سجل مستخدم ويُرسل بريد دعوة عندما تكون الحالة invited حتى أول تسجيل دخول.
جسم الطلب
json
{
"name_en": "Layla Al-Qahtani",
"name_ar": "ليلى القحطاني",
"email": "layla.qahtani@acme.sa",
"role": "procurement_officer",
"department_id": 2,
"phone": "+966501234567"
}الاستجابة
json
{
"data": {
"id": 24,
"name_en": "Layla Al-Qahtani",
"name_ar": "ليلى القحطاني",
"email": "layla.qahtani@acme.sa",
"role": {
"id": 5,
"name": "Procurement Officer"
},
"department": {
"id": 2,
"name": "Operations",
"code": "OPS"
},
"status": "invited",
"two_factor_enabled": false,
"last_login_at": null,
"created_at": "2026-04-04T12:00:00Z"
}
}الحصول على مستخدم
http
GET /v1/users/{id}يُرجع الملف الكامل للمستخدم حسب المعرف.
مثال الطلب
bash
curl -X GET "https://api.waqti.sa/v1/users/12" \
-H "Authorization: Bearer 3|a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0" \
-H "Accept: application/json"الاستجابة
json
{
"data": {
"id": 12,
"name_en": "Sara Al-Mutairi",
"name_ar": "سارة المطيري",
"email": "sara.mutairi@acme.sa",
"role": {
"id": 3,
"name": "Department Head"
},
"department": {
"id": 2,
"name": "Operations",
"code": "OPS"
},
"status": "active",
"two_factor_enabled": true,
"last_login_at": "2026-04-03T08:15:00Z",
"created_at": "2025-08-20T09:00:00Z"
}
}تحديث مستخدم
http
PUT /v1/users/{id}جسم الطلب
json
{
"name_en": "Sara Al-Mutairi",
"name_ar": "سارة بنت عبدالله المطيري",
"email": "sara.almutairi@acme.sa",
"role": "department_head",
"department_id": 4,
"phone": "+966507654321"
}الاستجابة
json
{
"data": {
"id": 12,
"name_en": "Sara Al-Mutairi",
"name_ar": "سارة بنت عبدالله المطيري",
"email": "sara.almutairi@acme.sa",
"role": {
"id": 3,
"name": "Department Head"
},
"department": {
"id": 4,
"name": "Finance",
"code": "FIN"
},
"status": "active",
"two_factor_enabled": true,
"last_login_at": "2026-04-03T08:15:00Z",
"created_at": "2025-08-20T09:00:00Z"
}
}تعطيل مستخدم
http
DELETE /v1/users/{id}WARNING
التعطيل يلغي وصول المستخدم. يُحتفظ بالسجل لأغراض التدقيق؛ استخدم إجراءً إداريًا أو عملية دعم إذا لزم الحذف الكامل.
مثال الطلب
bash
curl -X DELETE "https://api.waqti.sa/v1/users/24" \
-H "Authorization: Bearer 3|a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0" \
-H "Accept: application/json"الاستجابة
json
{
"data": {
"id": 24,
"name_en": "Layla Al-Qahtani",
"name_ar": "ليلى القحطاني",
"email": "layla.qahtani@acme.sa",
"role": {
"id": 5,
"name": "Procurement Officer"
},
"department": {
"id": 2,
"name": "Operations",
"code": "OPS"
},
"status": "inactive",
"two_factor_enabled": false,
"last_login_at": null,
"created_at": "2026-04-04T12:00:00Z"
}
}المستخدم الحالي
http
GET /v1/users/meيُرجع ملف المستخدم المصادق عليه (نفس شكل الحصول على مستخدم).
مثال الطلب
bash
curl -X GET "https://api.waqti.sa/v1/users/me" \
-H "Authorization: Bearer 3|a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0" \
-H "Accept: application/json"الاستجابة
json
{
"data": {
"id": 7,
"name_en": "Khalid Al-Rashid",
"name_ar": "خالد الراشد",
"email": "khalid.rashid@acme.sa",
"role": {
"id": 1,
"name": "Tenant Administrator"
},
"department": {
"id": 1,
"name": "Executive",
"code": "EXE"
},
"status": "active",
"two_factor_enabled": true,
"last_login_at": "2026-04-04T07:45:00Z",
"created_at": "2024-01-10T14:20:00Z"
}
}