Code Monkey home page Code Monkey logo

aftership-sdk-ruby's Introduction

aftership-ruby

Ruby Gem for AfterShip API.

This extension helps developers to integrate with AfterShip easily.

About AfterShip

AfterShip provides an automated way for online merchants to track packages and send their customers delivery status notifications. Customers no longer need to deal with tracking numbers and track packages on their own. With AfterShip, online merchants extend their customer service after the point of purchase by keeping their customers actively informed, while saving time and money by reducing customers’ questions about the status of their purchase delivery.

Migration to 6.0.0+

We suggest all users to upgrade your aftership gem to v6.0.0 as any earlier versions are NOT maintained, which also means you will need to upgrade your ruby version to at least 2.6 to be able to use faraday the new http client of the revamped aftership gem.

If you want to use recent versions of Faraday, update your Gemfile as below:

gem "aftership", "~> 6.0.0"
gem 'faraday', '~> 2.7.1'

Changes

  • 2024-01-02 6.0.0

    • Supported API 2023-10 version.
  • 2022-12-16 5.0.0

    • Merged #42: Update faraday dependency to support faraday 2.x
    • Merged #43: Update faraday minimum version to 2.0.1
  • 2021-02-08 4.5.2

    • Merged #39: Add compatibility for recent versions of Faraday
  • 2021-02-08 4.5.1

    • Resolved #31: Deprecation of encryption algorithms below 256 bits
  • 2021-02-08 4.5.0

    • Downgraded faraday to 1.0.1 that accepts ruby 2.3.0+ as required version.
    • Updated request User agent to follow AfterShip SDK guideline.
    • Required ruby version is now 2.3.0+
  • 2021-02-08 4.4.0

    • Removed httpclient and used faraday 1.3 as http client
    • Polished project with prettified formatting
    • Required ruby version updated to 2.4.0+
  • 2016-01-11 4.3.1

    • Updated gem httpclient version to 2.7.1
  • 2015-12-14 4.3.0

    • Added rescue methods for parsing JSON, and try to retrieve error codes from cloudflare
    • Added /trackings/exports method
    • Added auto-retry mechanism if invalid JSON response retrieved
  • 2015-11-11 Pump version to 4.2.0

    • Removed v3 code, support ENV variable AFTERSHIP_API_ENDPOINT for testing
  • 2014-10-31 Pump version to 4.1.0

    • Replaced HTTPI with HTTPClient
  • 2014-10-28 Pump version to 4.0.0, support latest v4 api

    • Adding deprecation messages
    • Adding new api endpoints
    • Make all changes regarding new API version
  • 2014-04-11 Pump version to 3.0.1, support latest v3 api

    • Removed the debug message
  • 2014-04-11 Pump version to 3.0.0, support latest v3 api

    • Change license to MIT

Installation

  1. Add the following line to your application's Gemfile
gem "aftership", "~> 6.0.0"
  1. Run bundler
bundle install

Configuration

  1. Before you begin

You'll need to have a AfterShip account: http://www.aftership.com

  1. Setup the API Key

You can retrieve your api key at: https://admin.aftership.com/settings/api-keys

Usage

  1. Setup

Before using API, please include the gem in your script.

require 'rubygems'
require 'aftership'

You should set you API key before making any request to AfterShip.

AfterShip.api_key = 'YOUR_API_KEY' # Replace "YOUR_API_KEY" to your AfterShip api key.
  1. Coding
require('aftership')
AfterShip.api_key = 'YOUR_API_KEY'

AfterShip::V4::Courier.get
AfterShip::V4::Courier.get_all
AfterShip::V4::Courier.detect({:tracking_number => 'EJ276142450JP'})

AfterShip::V4::Tracking.create('1ZA6F598D992381375', {:emails => ['[email protected]', '[email protected]']})
AfterShip::V4::Tracking.get('ups', '1ZA6F598D992381375')
AfterShip::V4::Tracking.get_all
AfterShip::V4::Tracking.update('ups', '1ZA6F598D992381375', {:title => 'Testing'})
AfterShip::V4::Tracking.retrack('ups', '1ZA6F598D992381375')
AfterShip::V4::Tracking.delete('ups', '1ZA6F598D992381375')

AfterShip::V4::LastCheckpoint.get('ups', '1ZA6F598D992381375')

The License (MIT)

Released under the MIT license. See the LICENSE file for the complete wording.

Contributor

aftership-sdk-ruby's People

Contributors

aftership-admin avatar bossa573 avatar dantetwc avatar fisk1201 avatar fradim avatar jialixiang avatar laurynas avatar liguangbo avatar lostie avatar panxl6 avatar sharkzp avatar teddychan avatar tomdov avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

aftership-sdk-ruby's Issues

Update httpclient dependency to ~> 2.8.3

Hi,

Any plans to upgrade dependency on httpclient to httpclient 2.8.3 (change log)

The current dependency on httpclient ~> 2.7.1 is causing conflicts with other gems that depend on the newer version.

Thanks,
Brent

Deprecation of encryption algorithms below 256 bits

As per Aftership's Feb 4th, email:

The purpose of this email is to update you regarding the deprecation of encryption algorithms (below 256 bits). It will be done for all our API services from 25th Feburary 2021.

If you’d like to test endpoints, then please use api-tls.aftership.com for testing. It supports all the endpoints!

Overriding the API endpoint, this indeed will be an issue with the Aftership SDK in its current form.

While requests succeed when launching a rails console with:

AFTERSHIP_API_ENDPOINT=https://api.aftership.com rails c

Requests are failing when changing it as per the email suggestion:

AFTERSHIP_API_ENDPOINT=https://api-tls.aftership.com rails c

[4] pry(main)> AfterShip::V4::Courier.get_all { :meta => { :code => 500, :message => "Something went wrong on AfterShip's end.", :type => "InternalError" }, :data => { :body => "<!DOCTYPE html>\n<html lang=en>\n <meta charset=utf-8>\n <meta name=viewport content=\"initial-scale=1, minimum-scale=1, width=device-width\">\n <title>Error 400 (Bad Request)!!1</title>\n <style>\n *{margin:0;padding:0}html,code{font:15px/22px arial,sans-serif}html{background:#fff;color:#222;padding:15px}body{margin:7% auto 0;max-width:390px;min-height:180px;padding:30px 0 15px}* > body{background:url(//www.google.com/images/errors/robot.png) 100% 5px no-repeat;padding-right:205px}p{margin:11px 0 22px;overflow:hidden}ins{color:#777;text-decoration:none}a img{border:0}@media screen and (max-width:772px){body{background:none;margin-top:0;max-width:none;padding-right:0}}#logo{background:url(//www.google.com/images/branding/googlelogo/1x/googlelogo_color_150x54dp.png) no-repeat;margin-left:-5px}@media only screen and (min-resolution:192dpi){#logo{background:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) no-repeat 0% 0%/100% 100%;-moz-border-image:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) 0}}@media only screen and (-webkit-min-device-pixel-ratio:2){#logo{background:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) no-repeat;-webkit-background-size:100% 100%}}#logo{display:inline-block;height:54px;width:150px}\n </style>\n <a href=//www.google.com/><span id=logo aria-label=Google></span></a>\n <p><b>400.</b> <ins>That’s an error.</ins>\n <p>Your client has issued a malformed or illegal request. <ins>That’s all we know.</ins>\n", :cf_ray => nil } }

httpclient dependency issue with Ruby 2.3.0

Any plans of upgrading the dependent version of httpclient ??

The current version gives this warning in Ruby 2.3.0 -

/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/httpclient-2.5.3.3/lib/httpclient/session.rb:762:in `connect': Object#timeout is deprecated, use Timeout.timeout instead.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.