दस्तावेज़ पर जाएँ
Ruby

चेंजलॉग

gem की हर रिलीज़, सबसे नई पहले।

0.0.1

पहली रिलीज़। यह पूरे TypeScript SDK को कवर करती है जैसा वह इस रिलीज़ के बनते समय था, 0.0.8 और उसके बाद कतार में लगे बदलाव: 41 namespaces में 430 मेथड, हर एक TypeScript नाम के snake_case रूप में, और उनमें से हर एक बाइट-दर-बाइट वही रिक्वेस्ट भेजता है जो उसका TypeScript जुड़वाँ भेजता है।

  • OpenEmail::Client में हर namespace के लिए एक reader है, emails, threads और templates से लेकर provider_imports, dns_connections और account तक। listAll list_all है, getActive get_active है, और tempMail temp_mail है।
  • रिक्वेस्ट बॉडी keyword arguments या एक Hash के रूप में जाती है, और उसकी कुंजियाँ API के camelCase नाम बनाए रखती हैं। जवाब Symbol कुंजियों वाले Hash के रूप में लौटता है।
  • हर पेज वाले resource में list है, जो एक OpenEmail::Page लौटाता है, list_all, जो हर आइटम एक Array के रूप में लौटाता है, और iterate, जो हर आइटम को block में yield करता है या ऐसा Enumerator लौटाता है जो अगला पेज तभी लाता है जब वहाँ पहुँचे। PeoplePage, TempMessagesPage, AddressBookPage, AddressBook, BatchResult और TemplateSends उन जवाबों को रखते हैं जिनमें सूची से ज़्यादा कुछ है।
  • API का अस्वीकार OpenEmail::ApiError या error टाइप वाली उसकी subclass raise करता है, status, type, code, param, doc_url, request_id, retry_after_seconds, fields और body के साथ, और validation? तथा step_up_required? जैसे प्रेडिकेट के साथ। कोई जवाब न आने पर OpenEmail::NetworkError raise होता है, समय-सीमा बीतने पर timeout? के साथ। कॉल में ही ग़लती हो तो कुछ भी भेजे जाने से पहले ArgumentError raise होता है।
  • OpenEmail.create_client OPENEMAIL_API_KEY, OPENEMAIL_ACCESS_TOKEN और OPENEMAIL_BASE_URL से एक क्लाइंट बनाता है, और OpenEmail.init, OpenEmail.client तथा OpenEmail.reset_client एक साझा क्लाइंट संभालते हैं जिसके ज़रिए OpenEmail.emails और हर दूसरा namespace पहुँचता है। OpenEmail.create_temp_mail बिना क्रेडेंशियल के डिस्पोज़ेबल इनबॉक्स खोलता है।
  • access_token: एक OAuth एक्सेस टोकन लेता है, या कुछ भी जो call का जवाब दे और टोकन लौटाए, जिसे हर रिक्वेस्ट से पहले कॉल किया जाता है। हर मेथड एक कॉल के लिए दूसरी कुंजी से काम करने को api_key: लेता है, और temp_mail के मेथड inbox_token: लेते हैं।
  • OpenEmail.verify_webhook_signature डिलीवरी को constant time में जाँचता है, पाँच मिनट से पुरानी डिलीवरी अस्वीकार करता है और पार्स किया गया इवेंट लौटाता है। यह सिग्नेचर किसी भी case वाले Hash, Rack env या Rails के request.headers से पढ़ता है।
  • OpenEmail.to_base64, api_key?, access_token?, sealed?, resolve_language, language_by_code और rtl_language? TypeScript SDK के helpers हैं, और उसका package root जो भी मान-सेट export करता है वह OpenEmail पर एक frozen Hash है।
  • इसकी कोई रनटाइम निर्भरता नहीं है। रिक्वेस्ट keep-alive कनेक्शनों के पूल वाले Net::HTTP से जाती हैं, जिसे एक क्लाइंट थ्रेड्स के बीच साझा करता है और fork के बाद फिर से बनाता है, और timeout: पूरे एक प्रयास को सीमित करता है।
  • reads, sends और दोहराने में सुरक्षित हर write पर 408, 500, 502, 503 और 504 पर backoff के साथ पुनः प्रयास होता है, और 429 पर सिर्फ़ तब जब उसका Retry-After एक मिनट या उससे कम हो। हर send में एक idempotency कुंजी होती है जिसे उसके पुनः प्रयास दोबारा इस्तेमाल करते हैं।
  • क्लाइंट इस मशीन के सिवा किसी को भी सादे http: पर क्रेडेंशियल भेजने से इनकार करता है, 0.0.0.0 पर base_url को अस्वीकार करता है, रिक्वेस्ट को दो टुकड़ों में बाँटने वाले हेडर को अस्वीकार करता है, और raw.request को कभी बेस URL के origin से बाहर नहीं जाने देता।