ضبط مؤقت في الماضي لا يبدو أنه يعمل، ولكنه يعمل

غالبًا ما أستخدم إجراء POST /t/:topic_id/timer لتغيير فئات المواضيع (من خاصة إلى عامة).

يعمل هذا بشكل جيد إذا كانت معلمة time في المستقبل، لكن إذا استخدمت الوقت الحالي (أو وقتًا في الماضي عن طريق الخطأ)، أحصل على استجابة صالحة لكن تغيير الفئة لا يحدث فورًا.

عادةً ما يستغرق الأمر من 5 إلى 10 دقائق، مما قد يكون مربكًا (أفترض أن هذا يعود إلى تكرار حلقة استقصاء داخلية).

إليك مثال على طلب (وقت في الماضي) واستجابة:

# الطلب
POST /t/4378/timer HTTP/1.1
Accept: application/json, */*;q=0.5
Accept-Encoding: gzip, deflate
Api-Key: REDACTED
Api-Username: REDACTED
Connection: keep-alive
Content-Length: 96
Content-Type: application/json
Host: REDACTED
User-Agent: HTTPie/2.2.0

{
    "category_id": "54",
    "status_type": "publish_to_category",
    "time": "2020-10-26 08:09:45+01:00"
}

# الاستجابة
HTTP/1.1 200 OK
Cache-Control: no-cache, no-store
Connection: keep-alive
Content-Encoding: gzip
Content-Type: application/json; charset=utf-8
Date: Mon, 26 Oct 2020 07:09:46 GMT
Referrer-Policy: strict-origin-when-cross-origin
Server: nginx/1.18.0 (Ubuntu)
Strict-Transport-Security: max-age=63072000;
Transfer-Encoding: chunked
Vary: Accept-Encoding
X-Content-Type-Options: nosniff
X-Discourse-Route: topics/timer
X-Discourse-Username: REDACTED
X-Download-Options: noopen
X-Frame-Options: SAMEORIGIN
X-Permitted-Cross-Domain-Policies: none
X-Request-Id: REDACTED
X-Runtime: 0.055819
X-XSS-Protection: 1; mode=block

{
    "based_on_last_post": false,
    "category_id": 54,
    "closed": false,
    "duration": null,
    "execute_at": "2020-10-26T07:09:45.000Z",
    "success": "OK"
}

تحديث: اعتقدت أن هذه المشكلة حصرية للواجهة البرمجية (API)، لكنها قد تظهر أيضًا في واجهة المستخدم لأنه رغم عدم إمكانية اختيار تاريخ في الماضي، يمكن اختيار وقت في الماضي.

السلوك نفسه: لا توجد أي إشارة إلى أن المؤقت قد تم ضبطه، لكنه مع ذلك يعمل بعد مرور ما بين 5 إلى 10 دقائق من إنشائه.

إعجابَين (2)

هذا حالة هامشية إلى حد ما، لكنني أعتقد أن الخادم يجب أن يُرجع رسالة خطأ إذا قمت بإرسال مؤقت موضوع بتاريخ اليوم ووقت في الماضي.

3 إعجابات

في الواقع، يوجد خطأ برمجي :bug: في الكود يمنع تحديد تواريخ سابقة. تم فتح طلب دمج (PR) في:

3 إعجابات