تخطَّ إلى المستندات
Ruby

سجل التغييرات

كل إصدارات الـ gem، من الأحدث.

0.0.1

الإصدار الأول. يغطي TypeScript SDK كله كما كان حين أُعدّ هذا الإصدار، أي 0.0.8 مع التغييرات المنتظرة بعده: 430 تابعًا في 41 مساحة أسماء، كلٌّ منها باسمه في TypeScript بصيغة snake_case، وكل واحد منها يرسل بايتًا ببايت الطلب نفسه الذي يرسله توأمه في TypeScript.

  • لـ OpenEmail::Client قارئ لكل مساحة أسماء، من emails وthreads وtemplates إلى provider_imports وdns_connections وaccount. فـ listAll هو list_all، وgetActive هو get_active، وtempMail هو temp_mail.
  • يُمرَّر متن الطلب كوسائط مسمّاة أو كـ Hash واحد، وتحتفظ مفاتيحه بأسماء API بصيغة camelCase. وتعود الاستجابة في صورة Hash بمفاتيح من نوع Symbol.
  • لكل مورد مرقّم الصفحات list الذي يعيد صفحة OpenEmail::Page واحدة، وlist_all الذي يعيد كل العناصر في Array، وiterate الذي يمرّر كل عنصر إلى كتلة أو يعيد Enumerator لا يجلب الصفحة التالية إلا حين يصل إليها. ويحمل PeoplePage وTempMessagesPage وAddressBookPage وAddressBook وBatchResult وTemplateSends الأجوبة التي تتضمن أكثر من قائمة.
  • رفض API يرفع OpenEmail::ApiError أو صنفه الفرعي الخاص بنوع الخطأ، مع status وtype وcode وparam وdoc_url وrequest_id وretry_after_seconds وfields وbody، وتوابع منطقية مثل validation? وstep_up_required?. وغياب أي استجابة يرفع OpenEmail::NetworkError، مع timeout? حين ينقضي الموعد. والخطأ في الاستدعاء نفسه يرفع ArgumentError قبل إرسال أي شيء.
  • يبني OpenEmail.create_client عميلًا من OPENEMAIL_API_KEY وOPENEMAIL_ACCESS_TOKEN وOPENEMAIL_BASE_URL، ويدير OpenEmail.init وOpenEmail.client وOpenEmail.reset_client عميلًا مشتركًا واحدًا تصل عبره OpenEmail.emails وكل مساحة أسماء أخرى. ويفتح OpenEmail.create_temp_mail صناديق بريد مؤقتة دون أي اعتماد.
  • يأخذ access_token: رمز وصول OAuth، أو أي شيء يستجيب لـ call ويعيد رمزًا، ويُستدعى قبل كل طلب. ويأخذ كل تابع api_key: ليعمل بمفتاح آخر في استدعاء واحد، وتأخذ توابع temp_mail الوسيط inbox_token:.
  • يفحص OpenEmail.verify_webhook_signature التسليم بزمن ثابت، ويرفض التسليم الأقدم من خمس دقائق، ويعيد الحدث محلَّلًا. ويقرأ التوقيع من Hash بأي حالة أحرف، أو من بيئة Rack، أو من request.headers في Rails.
  • OpenEmail.to_base64 وapi_key? وaccess_token? وsealed? وresolve_language وlanguage_by_code وrtl_language? هي الأدوات المساعدة الموجودة في TypeScript SDK، وكل مجموعة قيم يصدّرها جذر حزمته هي Hash مجمَّد على OpenEmail.
  • ليس له تبعيات وقت التشغيل. وتمر الطلبات عبر Net::HTTP مع مجموعة من الاتصالات المُبقاة حيّة يتشاركها العميل الواحد بين خيوط التنفيذ ويعيد بناءها بعد عملية fork، ويحدّ timeout: المحاولة كاملة.
  • تُعاد محاولة القراءات والإرسالات وكل كتابة آمنة للتكرار عند 408 و500 و502 و503 و504 مع تأخير متزايد بين المحاولات، وعند 429 فقط حين تكون قيمة Retry-After فيه دقيقة أو أقل. ويحمل كل إرسال مفتاح لاتكرارية تعيد إعادات محاولته استخدامه.
  • يرفض العميل إرسال اعتماد عبر http: العادي إلى أي شيء غير هذا الجهاز، ويرفض base_url على 0.0.0.0، ويرفض ترويسة قد تقسم الطلب، ولا يسمح أبدًا لـ raw.request بمغادرة أصل عنوان URL الأساسي.