Kalo te dokumentacioni
Ruby

Ndihmësit dhe konstantet

Çfarë tjetër përcakton gem-i përveç klientit.

Metodat e modulit

MetodaÇfarë është
OpenEmail.init, OpenEmail.clientKonfiguroni klientin e përbashkët një herë, pastaj arrijeni nga kudo. Ai ndërtohet vetë nga OPENEMAIL_API_KEY nëse init nuk u ekzekutua kurrë.
OpenEmail.emails, OpenEmail.threads dhe çdo hapësirë tjetër emrashShkurtore për hapësirat e emrave të klientit të përbashkët.
OpenEmail.reset_clientHeq klientin e përbashkët, ndaj thirrja e radhës ndërton një të ri, që është ajo që do një test midis rasteve.
OpenEmail.create_client, OpenEmail::Client.new, OpenEmail.newNjë klient më vete. create_client lexon mjedisin për çdo gjë që lini jashtë, ndërsa Client.new (ose OpenEmail.new) merr vetëm atë që jepni.
OpenEmail.create_temp_mailNjë klient për kutitë e përkohshme që nuk mbart çelës API.
OpenEmail.verify_webhook_signatureKontrollon nënshkrimin e një dërgese në kohë konstante, me një dritare kundër riluajtjes. Kthen ngjarjen e analizuar, dhe ngre OpenEmail::WebhookSignatureError në çdo dështim.
OpenEmail.to_base64Base64 për bajtet e bashkëngjitjeve, nga një String binar, një IO ose një Pathname.
OpenEmail.api_key?Nëse një String ka formën oe_live_ ose oe_test_. Një kontroll i formës, jo provë se çelësi funksionon ende.
OpenEmail.access_token?Nëse një String ka formën e një token-i aksesi OAuth: 1 deri në 512 karaktere, pa nisur me oe_.
OpenEmail.sealed?Nëse trupi i një mesazhi është tekst i shifruar. Është false për dy formatet e nënshkruara, trupat e të cilave mbërritën të hapur.
OpenEmail.resolve_language, OpenEmail.language_by_code, OpenEmail.rtl_language?Kërkimet që i duhen një zgjedhësi gjuhe, mbi tabelën e përfshirë OpenEmail::LANGUAGES.

Konstantet

Çdo bashkësi vlerash që eksporton SDK-ja TypeScript është një Hash i ngrirë te OpenEmail, me të njëjtat emra si çelësa, ndaj OpenEmail::WEBHOOK_EVENTS[:EMAIL_DELIVERED] është "email.delivered". Përdorni .values aty ku ju duhet lista, dhe .value? për të kontrolluar një vlerë që erdhi nga jashtë.

constants.rb
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]
KonstantjaÇfarë mban
OpenEmail::VERSIONVersioni i gem-it.
OpenEmail::API_SCOPESFjalori i scope-ve, për një ekran krijimi çelësash.
OpenEmail::WEBHOOK_EVENTS, OpenEmail::WEBHOOK_SIGNATURE_HEADERSNgjarjet te të cilat mund të abonohet një endpoint dhe emrat e header-ave që mbart një dërgesë.
OpenEmail::ERROR_TYPESFjalori i gabimeve që merr ApiError#type.
OpenEmail::PAGE_LIMITSlimit: më i madh dhe ai i parazgjedhur në shumicën e listave të faqosura: 100 dhe 25. Disa lista pranojnë më shumë, dhe referenca e secilës metodë e thotë këtë.
OpenEmail::RULE_FIELDS, OpenEmail::RULE_OPERATORS, OpenEmail::RULE_ACTIONSFjalori nga i cili ndërtohen kushtet dhe veprimet e një rregulli.
OpenEmail::MESSAGE_ENCRYPTION_FORMATSPesë zarfet që mund të emërtojë përpunimi i postës hyrëse. Tre prej tyre janë të vulosur.
OpenEmail::CREDENTIAL_KINDS, OpenEmail::STEP_UP_METHODS, OpenEmail::STEP_UP_ERROR_CODESCilin kredencial përshkruajnë me.get dhe me.ping, si kontrollohet një kod verifikimi, dhe kodet me të cilat mund të dështojë një verifikim.
OpenEmail::THREAD_SORTS, OpenEmail::PEOPLE_SORTS, OpenEmail::FILE_SORTS dhe *_SORTS të tjeraRenditjet sipas të cilave mund të renditet një listë.
OpenEmail::FORM_STATUSES, OpenEmail::BROADCAST_STATUSES, OpenEmail::SUPPRESSION_REASONS dhe bashkësitë e tjeraVlerat që mund të marrë një fushë e një burimi. Çdo bashkësi emërtohet sipas asaj që mban.

Objektet

Një përgjigje është JSON-i i analizuar si Hash me çelësa Symbol. Gem-i ndërton një objekt të vetin vetëm aty ku i jep formë përgjigjes, dhe secili është një Data i pandryshueshëm.

KlasaÇfarë mbart
OpenEmail::Pageitems, has_more? dhe next_cursor, nga çdo list i faqosur.
OpenEmail::PeoplePageTë njëjtat plus seen, nga contacts.list_people.
OpenEmail::TempMessagesPageTë njëjtat plus expires_at, nga temp_mail.list_messages.
OpenEmail::AddressBookPage, OpenEmail::AddressBookunrestricted, addresses dhe domains, nga addresses.list (me has_more? dhe next_cursor) dhe addresses.list_all.
OpenEmail::BatchResultitems, sent dhe failed, nga emails.send_batch.
OpenEmail::TemplateSendsitems, total, page dhe page_size, nga templates.list_sends.
OpenEmail::HttpRequest, OpenEmail::HttpResponseÇfarë merr dhe kthen një adapter:. Një kërkesë e shfaq header-in e saj Authorization si [redacted].

Çdo gabim që gem-i ngre qëllimisht trashëgon nga OpenEmail::Error: ApiError dhe nënklasat e tij, NetworkError dhe WebhookSignatureError. Një argument i gabuar është në vend të kësaj një ArgumentError, sepse është gabim në kodin që thërret dhe jo diçka që duhet kapur.

Një endpoint që kjo ende nuk e mbështjell

Një version i ri i gem-it nuk duhet të jetë kurrë ajo që qëndron mes jush dhe një endpoint-i që funksionon tashmë. client.raw.request merr një shteg dhe opsione me fjalë kyçe dhe kthen trupin e analizuar, me kredencialin, URL-në bazë, kohën maksimale dhe politikën e riprovimeve të klientit të zbatuara.

escape_hatch.rb
result = client.raw.request(  "/something-new",  method: :post,  query: {dryRun: true},  body: {name: "Invoices"},  repeatable: true) p result

Një GET riprovohet si çdo lexim tjetër. Çdo metodë tjetër dërgohet një herë, veç nëse jepni repeatable: true, që është pohimi juaj se mund të dërgohet dy herë. query: i anashkalon vlerat që janë nil ose bosh, dhe api_key: funksionon si në çdo metodë tjetër.

Çfarë nuk bën me qëllim

  • Nuk validon asnjë trup kërkese. Skema e serverit është kopja e vetme e rregullave, dhe një kopje e dytë këtu do të refuzonte herët a vonë një adresë që një server më i ri e pranon, në një version që dikush e fiksoi dy vjet më parë.
  • Nuk ka varësi në kohën e ekzekutimit, as edhe një gem JSON ose HTTP përtej bibliotekës standarde.
  • E riformëson një përgjigje vetëm në një mënyrë: array-i data i një koleksioni nxirret nga zarfi i tij në njërin nga objektet më lart. Çdo përgjigje tjetër kthehet ashtu siç e dërgoi API-ja, me çelësat camelCase të API-së.

Kontrolli i barazisë së gem-it e mban këtë të ndershëm. Ai e dështon build-in kur një metodë TypeScript nuk ka binjak Ruby, merr opsione të ndryshme ose dërgon një kërkesë tjetër.