المناسبات: مفاهيم أساسيّة

يُمكن لدائرةٍ ما إضافة و عرض المناسبات الخاصّة بها، هذه المناسبات يُدعى إليها أفراد الدائرة و كذلك يُمكن دعوة أفراد دائرة أخرى، هذه الصفحة خُصّصت لشرح إضافة المناسبات بالتفصيل:

إضافة مناسبة

يُمكن إضافة مناسبة من خلال إرسال طلب POST إلى الرابط التالي:

الطلب
POST
{{teenah_api_url}}/events
  • {title} (مطلوب) عنوان المناسبة.
  • {start_datetime} (مطلوب) تاريخ بدء المناسبة بالصياغة YYYYY-mm-dd.
  • {finish_datetime} (مطلوب) تاريخ انتهاء المناسبة بالصياغة YYYYY-mm-dd.
  • {location} (مطلوب) موقع المناسبة.
  • {circles} (مطلوب) الدوائر المُراد دعوة أفرادها، توضع أرقام الدوائر داخل مصفوفة، مثلاً: [1,3,5].
  • {latitude} خط العرض للمناسبة، مثال: 4.6.
  • {longitude} خط الطول للمناسبة، مثال: 2.4 .

و الردّ القادم من الخادم سيكون أحد الردود التالية: إمّا 201 أو 400 أو 403:

الردود
201
{
    "message": "The event has been created successfully.",
    "event_id": 1
}
  • {message} رسالة الخطأ العائدة من الخادم.
  • {event_id} رقم أو معرّف المناسبة التي تمّ إنشاؤها.
400
{
    "message": "Bad request."
}
  • {message} رسالة الخطأ العائدة من الخادم.
403
{
    "message": "Not authroized to use this resource."
}
  • {message} رسالة الخطأ العائدة من الخادم.

عرض معلومات مناسبة

يُمكن للمستخدم الحاليّ جلب و عرض معلومات مناسبةٍ ما إذا كان مدعوّاً إليها من خلال إرسال طلب GET إلى الرابط التالي:

الطلب
GET
{{teenah_api_url}}/events/{id}
  • {id} (مطلوب) رقم أو معرّف المناسبة.

و سيكون ردّ الخادم أحد الردود التالية إمّا 200 أو 400 أو 403:

الردود
200
{
    "id": "1",
    "title": "اجتماع العائلة الشهري",
    "start_datetime": "2014-01-01 13:00:00",
    "finish_datetime": "2014-01-01 22:00:00",
    "location": "الرياض",
    "latitude": null,
    "longtitude": null,
    "created_by": "2",
    "created_at": "2014-02-08 20:18:01",
    "updated_at": "2014-02-08 20:18:01",
    "views_count": "2",
    "likes_count": "0",
    "comments_count": "0",
    "creator": {
        "id": "2",
        "gender": "male",
        "name": "حسام",
        "fullname": null,
        "nickname": null,
        "dob": null,
        "pob": null,
        "dod": null,
        "pod": null,
        "age": "0",
        "is_alive": "1",
        "photo": "https://teenahapp.s3.amazonaws.com/uWY14ohesH4Olco.png",
        "location": null,
        "mobile": "966553085572",
        "email": null,
        "home_phone": null,
        "work_phone": null,
        "marital_status": "",
        "blood_type": null,
        "is_root": "0",
        "tribe_id": null,
        "created_at": "2014-02-02 17:56:34",
        "updated_at": "2014-02-05 12:07:30",
        "social_medias": [
            {
                "id": "1",
                "social_media": "Twitter",
                "account": "hossamzee",
                "url": "https://twitter.com/hossamzee",
                "created_at": "2014-02-07 22:29:42",
                "updated_at": "2014-02-07 22:29:42"
            }
        ],
        "updates_count": "0"
    },
    "members": [
        {
            "id": "1",
            "circle_id": "1",
            "event_id": "1",
            "member_id": "2",
            "decision": "notyet",
            "created_at": "2014-02-08 20:18:01",
            "updated_at": "2014-02-08 20:18:01",
            "member": {
                "id": "2",
                "gender": "male",
                "name": "حسام",
                "fullname": null,
                "nickname": null,
                "dob": null,
                "pob": null,
                "dod": null,
                "pod": null,
                "age": "0",
                "is_alive": "1",
                "photo": "https://teenahapp.s3.amazonaws.com/V2Y14ohesH4Olco.png",
                "location": null,
                "mobile": "966553085572",
                "email": null,
                "home_phone": null,
                "work_phone": null,
                "marital_status": "",
                "blood_type": null,
                "is_root": "0",
                "tribe_id": null,
                "created_at": "2014-02-02 17:56:34",
                "updated_at": "2014-02-05 12:07:30",
                "social_medias": [
                    {
                        "id": "1",
                        "social_media": "Twitter",
                        "account": "hossamzee",
                        "url": "https://twitter.com/hossamzee",
                        "created_at": "2014-02-07 22:29:42",
                        "updated_at": "2014-02-07 22:29:42"
                    }
                ],
                "updates_count": "0"
            }
        },
        {
            "id": "2",
            "circle_id": "1",
            "event_id": "1",
            "member_id": "3",
            "decision": "notyet",
            "created_at": "2014-02-08 20:18:01",
            "updated_at": "2014-02-08 20:18:01",
            "member": {
                "id": "3",
                "gender": "male",
                "name": "علي",
                "fullname": null,
                "nickname": null,
                "dob": null,
                "pob": null,
                "dod": null,
                "pod": null,
                "age": "0",
                "is_alive": "1",
                "photo": null,
                "location": null,
                "mobile": "966542048525",
                "email": null,
                "home_phone": null,
                "work_phone": null,
                "marital_status": "single",
                "blood_type": null,
                "is_root": "0",
                "tribe_id": null,
                "created_at": "2014-02-05 13:13:17",
                "updated_at": "2014-02-05 13:13:17",
                "social_medias": [],
                "updates_count": "0"
            }
        }
    ],
    "medias": [
        {
            "id": "1",
            "event_id": "1",
            "media_id": "1",
            "created_at": "0000-00-00 00:00:00",
            "updated_at": "0000-00-00 00:00:00",
            "media": {
                "id": "1",
                "category": "image",
                "taste": null,
                "url": "https://teenahapp.s3.amazonaws.com/0bwzy5tTrkExVOS.png",
                "created_by": "1",
                "created_at": "2014-01-25 07:50:21",
                "updated_at": "2014-01-25 07:50:21"
            }
        }
    ]
}
  • {id} رقم أو معرّف المناسبة.
  • {title} عنوان المناسبة.
  • {start_datetime} تاريخ بدء المناسبة بالصياغة YYYYY-mm-dd.
  • {finish_datetime} تاريخ انتهاء المناسبة بالصياغة YYYYY-mm-dd.
  • {location} موقع المناسبة.
  • {latitude} خط العرض للمناسبة، مثال: 4.6.
  • {longtitude} خط الطول للمناسبة، مثال: 2.4.
  • {created_by} رقم أم معرّف الفرد الذي قام بإنشاء هذه المناسبة.
  • {created_at} وقت و تاريخ إنشاء السجل.
  • {updated_at} آخر وقت و تاريخ لتحديث السجل.
  • {views_count} عدد مرّات مشاهدة هذه المناسبة.
  • {likes_count} عدد مرّات الإعجاب بهذه المناسبة.
  • {comments_count} عدد التعليقات على هذه المناسبة.
  • {creator} مصفوفة فرعيّة تضمّ معلومات الفرد الذي أنشأ هذه المصفوفة.
  • {members} مصفوفة فرعيّة تضم الأفراد الذين تمّت دعوتهم إلى هذه المناسبة.
  • {members.circle_id} رقم أو معرّف الدائرة التي ينتمي إليها الفرد.
  • {members.event_id} رقم أو معرّف المناسبة التي تمّ إنشاؤها.
  • {members.member_id} رقم أو معرّف الفرد المدعو.
  • {members.decision} قرار الفرد المدعو بالحضور willcome من عدمه apologize.
  • {members.member} مصفوفة فرعيّة تضمّ معلومات الفرد المدعو.
  • {medias} مصفوفة تضمّ الوسائط المتعدّدة الخاصّة بالمناسبة.
  • {medias.media.category} تصنيف الوسائط المتعدّدة، صورة image أو فيديو video أو صوت sound.
  • {medias.media.taste} مذاق عن الوسائط المتعدّدة، مثل الصورة المصغّرة للصورة، أو مقطع بسيط من الفيديو، و هكذا.
  • {medias.media.url} رابط الوسائط المتعدّدة.
  • {medias.media.created_by} رقم أو معرّف الفرد الذي أنشأ الوسائط المتعدّدة.
  • {medias.media.created_at} وقت و تاريخ إنشاء الوسائط المتعدّدة.
  • {medias.media.updated_at} آخر وقت و تاريخ لتحديث الوسائط المتعدّدة.
400
{
    "message": "Bad request."
}
  • {message} رسالة الخطأ العائدة من الخادم.
403
{
    "message": "Not authroized to use this resource."
}
  • {message} رسالة الخطأ العائدة من الخادم.

تحديث مناسبة

يُمكن للفرد الذي أنشأ مناسبةً ما أن يقوم بتحديث المناسبة من خلال تغيير العنوان للمناسبة أو مكانها أو غيرها، و ذلك من خلال إرسال طلب PUT إلى الرابط التالي:

الطلب
PUT
{{teenah_api_url}}/events/{id}
  • {id} (مطلوب) (في الرابط) رقم أو معرّف المناسبة.
  • {title} (مطلوب) (في الرؤوس) عنوان المناسبة.
  • {start_datetime} (مطلوب) (في الرؤوس) تاريخ بدء المناسبة بالصياغة YYYYY-mm-dd.
  • {finish_datetime} (مطلوب) (في الرؤوس) تاريخ انتهاء المناسبة بالصياغة YYYYY-mm-dd.
  • {location} (مطلوب) (في الرؤوس) موقع المناسبة.
  • {latitude} خط العرض للمناسبة، مثال: 4.6.
  • {longitude} خط الطول للمناسبة، مثال: 2.4 .

و سيكون ردّ الخادم أحد الردود التالية: إمّا 204 أو 400 أو 403 أو 404:

الردود
204
400
{
    "message": "Bad request."
}
  • {message} رسالة الخطأ العائدة من الخادم.
403
{
    "message": "Not authroized to use this resource."
}
  • {message} رسالة الخطأ العائدة من الخادم.
404
{
    "message": "The event is not found."
}
  • {message} رسالة الخطأ العائدة من الخادم.

حذف مناسبة

يُمكن للفرد الذي أنشأ مناسبة أن يقوم بحذفها و ذلك من خلال إرسال طلب DELETE إلى الرابط التالي:

الطلب
DELETE
{{teenah_api_url}}/events/{id}
  • {id} (مطلوب) رقم أو معرّف المناسبة.

و ردّ الخادم سيكون أحد الردود التالية: إمّا 204 أو 403 أو 404:

الردود
204
403
{
    "message": "Not authroized to use this resource."
}
  • {message} رسالة الخطأ العائدة من الخادم.
404
{
    "message": "The event is not found."
}
  • {message} رسالة الخطأ العائدة من الخادم.

إضافة الوسائط المتعدّدة لمناسبةٍ ما

الطلب
PUT
{{teenah_api_url}}/events/{id}/medias
  • {id} (مطلوب) (في الرابط) رقم أو معرّف المناسبة.
  • {category} (مطلوب) تصنيف الوسائط المُراد إرسالها، صورة image أو فيديو video أو صوت sound.
  • {data} (مطلوب) (في الرؤوس) محتوى الملف المُراد رفعه إلى الخادم بصيغة base64..
  • {extension} (مطلوب) امتداد الملف المُراد، بفترض أن يكون من الصياغات: jpg, png, jpeg, gif, mp4, mp3.

اتّخاذ قرار بشأن مناسبة

يُمكن للمستخدم الحاليّ أن يقرّر ما إذا كان سيحضر مناسبةً ما أو سيعتذر، كل ذلك يتمّ من خلال إرساله طلب PUT إلى الرابط التاليّ:

الطلب
PUT
{{teenah_api_url}}/events/{id}/decision/{decision}
  • {id} (مطلوب) رقم أو معرّف المناسبة.
  • {decision} (مطلوب) قرار الفرد الحاليّ بالحضور willcome أو الإعتذار apologize.

و سيكون ردّ الخادم أحد الردود التالية: إمّا 204 أو 400 أو 403:

الردود
204
400
{
    "message": "Bad request."
}
  • {message} رسالة الخطأ العائدة من الخادم.
403
{
    "message": "Not authroized to use this resource."
}
  • {message} رسالة الخطأ العائدة من الخادم.

عرض قرار المستخدم بشأن مناسبة

يُمكن للمستخدم أن يعرض قراره الذي اتّخذه بشأن مناسبةٍ ما من خلال إرسال طلب إلى الرابط:

الطلب
GET
{{teenah_api_url}}/events/{id}/decision
  • {id} (مطلوب) رقم أو معرّف المناسبة.

و ردّ الخادم سيكون أحد الردود التالية: إمّا 200 أو 400 أو 403:

الردود
200
{
    "decision": "willcome"
}
  • {decision} قرار الفرد بالحضور willcomeأو الإعتذار apologize.
400
{
    "message": "Bad request."
}
  • {message} رسالة الخطأ العائدة من الخادم.
403
{
    "message": "Not authroized to use this resource."
}
  • {message} رسالة الخطأ العائدة من الخادم.

الإعجاب بمناسبة

يُمكن للمستخدم الحاليّ إبداء إعجابه بأحد المناسبات التي تمّ دعوته إليها من خلال إرسال طلب GET إلى الرابط التالي:

الطلب
GET
{{teenah_api_url}}/events/{id}/like
  • {id} (مطلوب) رقم أو معرّف المناسبات.

و ردّ الخادم سيكون أحد الردود التالية: إمّا 204 أو 403:

الردود
204
403
{
    "message": "Not authroized to use this resource."
}
  • {message} رسالة الخطأ العائدة من الخادم.

التعليق على مناسبة

يُمكن للمستخدم الحاليّ أن يعلّق على أيٍّ من المناسبات التي يمكنه الوصول إليها من خلال إرسال طلب POST إلى الرابط التالي:

الطلب
POST
{{teenah_api_url}}/events/{id}/comment
  • {id} (مطلوب) رقم أو معرّف المناسبات.
  • {comment} (مطلوب) (في الرؤوس) نص التعليق.

و ردّ الخادم سيكون أحد الردود التالية: إمّا 204 أو 400 أو 403:

الردود
204
400
{
    "message": "Bad request."
}
  • {message} رسالة الخطأ العائدة من الخادم.
403
{
    "message": "Not authroized to use this resource."
}
  • {message} رسالة الخطأ العائدة من الخادم.

الإعجاب بتعليق على مناسبة

كما يُمكن للمستخدم الحاليّ الإعجاب بتعليق فردٍ من الأفراد على أيٍّ من الوسائط المتعدّدة من خلال إرسال طلب GET إلى الرابط التالي:

الطلب
GET
{{teenah_api_url}}/events/{event_id}/comments/{comment_id}/like
  • {event_id} (مطلوب) (في الرابط) رقم أو معرّف المناسبة المُرادة.
  • {comment_id} (مطلوب) (في الرابط) رقم أو معرّف التعليق.

و ردّ الخادم سيكون أحد الردود التالية: إمّا 204 أو 403:

الردود
204
403
{
    "message": "Not authroized to use this resource."
}
  • {message} رسالة الخطأ العائدة من الخادم.