Yardımcılar ve sabitler
Gem'in istemci dışında tanımladığı diğer şeyler.
Modül metotları
| Metot | Nedir |
|---|---|
| OpenEmail.init, OpenEmail.client | Paylaşılan istemciyi bir kez yapılandırın, ardından ona her yerden ulaşın. init hiç çalışmadıysa kendini OPENEMAIL_API_KEY değerinden kurar. |
| OpenEmail.emails, OpenEmail.threads ve diğer tüm ad alanları | Paylaşılan istemcinin ad alanlarına giden kısayollar. |
| OpenEmail.reset_client | Paylaşılan istemciyi bırakır; böylece bir sonraki çağrı yeni bir istemci kurar. Bir testin vakalar arasında istediği de budur. |
| OpenEmail.create_client, OpenEmail::Client.new, OpenEmail.new | Ayrı bir istemci. create_client belirtmediğiniz her şeyi ortamdan okur; Client.new (ya da OpenEmail.new) ise yalnızca geçirdiğinizi alır. |
| OpenEmail.create_temp_mail | Hiç API anahtarı taşımayan bir tek kullanımlık gelen kutusu istemcisi. |
| OpenEmail.verify_webhook_signature | Bir teslimatın imzasını sabit zamanda ve bir yeniden oynatma penceresiyle denetler. Ayrıştırılmış olayı döndürür ve herhangi bir başarısızlıkta OpenEmail::WebhookSignatureError fırlatır. |
| OpenEmail.to_base64 | İkili bir String, bir IO ya da bir Pathname'den ek baytları için Base64. |
| OpenEmail.api_key? | Bir String'in oe_live_ ya da oe_test_ biçiminde olup olmadığı. Bir biçim denetimidir, anahtarın hâlâ çalıştığının kanıtı değildir. |
| OpenEmail.access_token? | Bir String'in bir OAuth erişim tokenı biçiminde olup olmadığı: 1 ile 512 karakter arası ve oe_ ile başlamayan. |
| OpenEmail.sealed? | Bir iletinin gövdesinin şifreli metin olup olmadığı. Gövdeleri açık olarak gelen iki imzalı biçim için false'tur. |
| OpenEmail.resolve_language, OpenEmail.language_by_code, OpenEmail.rtl_language? | Bir dil seçicinin ihtiyaç duyduğu, gem'le birlikte gelen OpenEmail::LANGUAGES tablosu üzerindeki aramalar. |
Sabitler
TypeScript SDK'sının dışa aktardığı her değer kümesi, OpenEmail üzerinde aynı adlarla anahtarlanmış dondurulmuş bir Hash'tir; bu yüzden OpenEmail::WEBHOOK_EVENTS[:EMAIL_DELIVERED] değeri "email.delivered" olur. Listeye ihtiyaç duyduğunuz yerde .values, dışarıdan gelen bir değeri denetlemek için ise .value? kullanın.
events = OpenEmail::WEBHOOK_EVENTS.values scopes = [OpenEmail::API_SCOPES[:EMAILS_SEND], OpenEmail::API_SCOPES[:THREADS_READ]] puts events.size, scopes.join(","), OpenEmail::PAGE_LIMITS[:MAX_LIMIT]| Sabit | Ne tutar |
|---|---|
| OpenEmail::VERSION | Gem sürümü. |
| OpenEmail::API_SCOPES | Kapsam sözlüğü; bir anahtar oluşturma ekranı için. |
| OpenEmail::WEBHOOK_EVENTS, OpenEmail::WEBHOOK_SIGNATURE_HEADERS | Bir uç noktanın abone olabileceği olaylar ve bir teslimatın taşıdığı başlıkların adları. |
| OpenEmail::ERROR_TYPES | ApiError#type değerinin aldığı hata sözlüğü. |
| OpenEmail::PAGE_LIMITS | Sayfalanan listelerin çoğunda en büyük ve varsayılan limit: değerleri: 100 ve 25. Birkaç liste daha fazlasını alır ve her metodun başvurusu bunu belirtir. |
| OpenEmail::RULE_FIELDS, OpenEmail::RULE_OPERATORS, OpenEmail::RULE_ACTIONS | Bir kuralın koşullarının ve eylemlerinin kurulduğu sözlük. |
| OpenEmail::MESSAGE_ENCRYPTION_FORMATS | Alım işleminin adlandırabileceği beş zarf. Bunlardan üçü mühürlüdür. |
| OpenEmail::CREDENTIAL_KINDS, OpenEmail::STEP_UP_METHODS, OpenEmail::STEP_UP_ERROR_CODES | me.get ve me.ping çağrılarının hangi kimlik bilgisini tanımladığı, bir doğrulama kodunun nasıl denetlendiği ve bir doğrulamanın hangi kodlarla başarısız olabileceği. |
| OpenEmail::THREAD_SORTS, OpenEmail::PEOPLE_SORTS, OpenEmail::FILE_SORTS ve diğer *_SORTS | Bir listenin sıralanabileceği düzenler. |
| OpenEmail::FORM_STATUSES, OpenEmail::BROADCAST_STATUSES, OpenEmail::SUPPRESSION_REASONS ve diğer kümeler | Bir kaynağın bir alanının alabileceği değerler. Her küme tuttuğu şeye göre adlandırılır. |
Nesneler
Bir yanıt, ayrıştırılmış JSON'un Symbol anahtarlı bir Hash hâlidir. Gem yalnızca yanıtı biçimlendirdiği yerlerde kendi nesnesini oluşturur ve her biri değiştirilemez bir Data nesnesidir.
| Sınıf | Ne taşır |
|---|---|
| OpenEmail::Page | Sayfalanan her list çağrısından items, has_more? ve next_cursor. |
| OpenEmail::PeoplePage | contacts.list_people çağrısından aynıları ve ek olarak seen. |
| OpenEmail::TempMessagesPage | temp_mail.list_messages çağrısından aynıları ve ek olarak expires_at. |
| OpenEmail::AddressBookPage, OpenEmail::AddressBook | addresses.list (has_more? ve next_cursor ile) ve addresses.list_all çağrılarından unrestricted, addresses ve domains. |
| OpenEmail::BatchResult | emails.send_batch çağrısından items, sent ve failed. |
| OpenEmail::TemplateSends | templates.list_sends çağrısından items, total, page ve page_size. |
| OpenEmail::HttpRequest, OpenEmail::HttpResponse | Bir adapter: nesnesinin aldığı ve döndürdüğü. Bir istek, Authorization başlığını [redacted] olarak yazdırır. |
Gem'in bilerek fırlattığı her hata OpenEmail::Error sınıfından türer: ApiError ve alt sınıfları, NetworkError ve WebhookSignatureError. Yanlış bir argüman ise bunun yerine bir ArgumentError'dır, çünkü yakalanacak bir şey değil, çağıran koddaki bir hatadır.
Henüz sarmalanmayan bir uç nokta
Bir gem sürümü, sizinle zaten çalışan bir uç nokta arasında asla engel olmamalıdır. client.raw.request bir yol ve anahtar kelime seçenekleri alır ve istemcinin kimlik bilgisi, temel URL'si, zaman aşımı ve yeniden deneme politikası uygulanmış olarak ayrıştırılmış gövdeyi döndürür.
result = client.raw.request( "/something-new", method: :post, query: {dryRun: true}, body: {name: "Invoices"}, repeatable: true) p resultBir GET diğer her okuma gibi yeniden denenir. Diğer her metot, repeatable: true geçirmediğiniz sürece bir kez gönderilir; bu değer, isteğin iki kez gönderilebileceğine dair sizin beyanınızdır. query: nil ya da boş değerleri atlar ve api_key: diğer her metotta olduğu gibi çalışır.
Bilerek yapmadıkları
- Hiçbir istek gövdesini doğrulamaz. Kuralların tek kopyası sunucunun şemasıdır; burada ikinci bir kopya, birinin iki yıl önce sabitlediği bir sürümde, daha yeni bir sunucunun kabul ettiği bir adresi eninde sonunda reddederdi.
- Çalışma zamanı bağımlılığı yoktur; standart kütüphane dışında bir JSON ya da HTTP gem'i bile yoktur.
- Bir yanıtı yalnızca tek bir şekilde yeniden biçimlendirir: bir koleksiyonun
datadizisi zarfından çıkarılarak yukarıdaki nesnelerden birine aktarılır. Diğer her yanıt, API'nin camelCase anahtarlarıyla, API'nin gönderdiği gibi döner.
Gem'in eşlik denetimi bunu dürüst tutar. Bir TypeScript metodunun Ruby ikizi olmadığında, farklı seçenekler aldığında ya da farklı bir istek gönderdiğinde derlemeyi başarısız kılar.