New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

privacygate

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

privacygate

  • 1.1.1
  • Rubygems
  • Socket score

Version published
Maintainers
1
Created
Source

privacygate-ruby

PrivacyGate Ruby Gem

Table of contents

Ruby Version

Ruby 2.3, 2.4, 2.5, 2.6RC are supported and tested.

Third Party Libraries and Dependencies

The following libraries will be installed when you install the client library:

Installation

Add this line to your application's Gemfile:

gem 'privacygate'

Then execute:

bundle install

Or install it yourself as:

gem install privacygate

Documentation

For more details visit PrivacyGate API docs.

To start using library, you'll need to create a PrivacyGate account. Once you've created your PrivacyGate account, create an API_KEY in Settings.

Next create a Client object for interacting with the API:

require 'privacygate'

API_KEY = "API KEY"
client = PrivacyGate::Client.new(api_key: API_KEY)

Client contains links to every Ruby Class representations of the API resources Checkout, Charge, Event

You can call list, auto_paging, create, retrieve, modify methods from API resource classes

client.charge.create
client.checkout.auto_paging 
client.event.list
client.charge.retrieve
client.checkout.modify

as well as save, delete, refresh methods from API resource class instances.

checkout = client.checkout.retrieve <id>
checkout.refresh
checkout.save
checkout.delete

Each API method returns an APIObject representing the JSON response from the API, all of the models support hash and JSON representation.
Also when the response data is parsed into Ruby objects, the appropriate APIObject subclasses will be used automatically. All subclasses of APIResource class support refresh method. This will update their attributes and all nested data by making a fresh GET request to the relevant API endpoint.

The client supports handling of common API errors and warnings. All errors occuring during the interaction with the API will be raised as exceptions.

ErrorStatus Code
APIError*
InvalidRequestError400
ParamRequiredError400
ValidationError400
AuthenticationError401
ResourceNotFoundError404
RateLimitExceededError429
InternalServerError500
ServiceUnavailableError503

Installation

Add this line to your application's Gemfile:

gem 'privacygate'

Then execute:

bundle install

Or install it yourself as:

gem install privacygate

Usage

require 'privacygate'

client = PrivacyGate::Client.new(api_key: 'your_api_key')

Checkouts

Checkouts API docs

Retrieve

checkout = client.checkout.retrieve <checkout_id>

Create

checkout_info = {
    "name": "The Sovereign Individual",
    "description": "Mastering the Transition to the Information Age",
    "pricing_type": "fixed_price",
    "local_price": {
        "amount": "1.00",
        "currency": "USD"
    },
    "requested_info": ["name", "email"]
}
checkout = client.checkout.create(checkout_info)

# or

checkout = client.checkout.create(:name=>'The Sovereign Individual',
                                  :description=>'Mastering the Transition to the Information Age',
                                  :pricing_type=>'fixed_price',
                                  :local_price=>{
                                          "amount": "100.00",
                                          "currency": "USD"
                                          },
                                  :requested_info=>["name", "email"])                            

Update

checkout = client.checkout.retrieve <checkout_id>
checkout.name = 'new name'
checkout.save

# or

client.checkout.modify(<checkout_id>, "local_price": {
    "amount": "10000.00",
    "currency": "USD"
})

Delete

checkout.delete

List

checkouts = client.checkout.list

Paging list iterations

client.checkout.auto_paging  do |ch|
  puts ch.id
end

Charges

Charges API docs

Retrieve

charge = client.charge.retrieve <charge_id>

Create

charge_info = {
    "name": "The Sovereign Individual",
    "description": "Mastering the Transition to the Information Age",
    "pricing_type": "fixed_price",
    "local_price": {
        "amount": "1.00",
        "currency": "USD"
    },
    "requested_info": ["name", "email"]
}
charge = client.charge.create(charge_info)

# or

charge = client.charge.create(:name=>'The Sovereign Individual',
                              :description=>'Mastering the Transition to the Information Age',
                              :pricing_type=>'fixed_price',
                              :local_price=>{
                                  "amount": "100.00",
                                  "currency": "USD"
                              })

List

charges_list = client.charge.list

Paging list iterations

client.charge.auto_paging do |charge|
  puts charge.id
end

Events

Events API Docs

Retrieve

event = client.event.retrieve <event_id>

List

events = client.event.list

Paging list iterations

client.event.auto_paging do |event|
  puts event.id
end

Validating webhook signatures

You should verify the webhook signatures using our library. To perform the verification you'll need to provide the event data, a webhook signature from the request header, and the endpoint’s secret. In case of an invalid request signature or request payload, you will receive an appropriate error message.

WEBHOOK_SECRET = 'your_webhook_secret'

# Using Sinatra
post '/webhooks' do
  request_payload = request.body.read
  sig_header = request.env['HTTP_X_CC_WEBHOOK_SIGNATURE']

  begin
    event = PrivacyGate::Webhook.construct_event(request_payload, sig_header, WEBHOOK_SECRET)
    # event handle
    puts "Received event id=#{event.id}, type=#{event.type}"
    status 200
  # errors handle
  rescue JSON::ParserError => e
    puts "json parse error"
    status 400
    return
  rescue PrivacyGate::Errors::SignatureVerificationError => e
    puts "signature verification error"
    status 400
    return
  rescue PrivacyGate::Errors::WebhookInvalidPayload => e
    puts "missing request or headers data"
    status 400
    return
  end
end

Testing and Contributing

Any and all contributions are welcome! The process is simple: fork this repo, make your changes, add tests, run the test suite, and submit a pull request. Tests are run via rspec. To run the tests, clone the repository and then:

FAQs

Package last updated on 19 Apr 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc