Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/C404/sift_ex
Siftscience API Library for Elixir
https://github.com/C404/sift_ex
Last synced: 2 months ago
JSON representation
Siftscience API Library for Elixir
- Host: GitHub
- URL: https://github.com/C404/sift_ex
- Owner: C404
- License: mit
- Created: 2016-10-04T19:25:51.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2016-10-20T14:46:54.000Z (about 8 years ago)
- Last Synced: 2024-10-08T16:10:00.656Z (3 months ago)
- Language: Elixir
- Size: 10.7 KB
- Stars: 13
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- freaking_awesome_elixir - Elixir - A Siftscience API Library for Elixir. (Third Party APIs)
- fucking-awesome-elixir - sift_ex - A Siftscience API Library for Elixir. (Third Party APIs)
- awesome-elixir - sift_ex - A Siftscience API Library for Elixir. (Third Party APIs)
README
[![Build Status](https://travis-ci.org/C404/sift_ex.svg?branch=master)](https://travis-ci.org/C404/sift_ex)
[![Hex.pm](https://img.shields.io/hexpm/v/sift_ex.svg)](https://hex.pm/packages/sift_ex)
[![License](http://img.shields.io/badge/license-MIT-brightgreen.svg)](http://opensource.org/licenses/MIT)
# Siftscience API Library for Elixir
This library (based on the official [SiftScience](https://github.com/SiftScience) libraries) allows you to interact with the SiftScience API via various functions in Elixir.## Installation
First, add sift_ex to your `mix.exs` dependencies:
```elixir
def deps do
[{:sift_ex, "~> 0.1"}]
end
```
and run `$ mix deps.get`.## Usage
**Set your Sift API key**
`Application.put_env(:sift_ex, :api_key, YOUR_API_KEY)`
**Set your Account ID (optional)**
`Application.put_env(:sift_ex, :account_id, YOUR_ACCOUNT_ID)`
```iex
iex> SiftEx.start# send a transaction event -- note this is blocking
iex> event = "$transaction"iex> user_id = "23069" # User ID's may only contain a-z, A-Z, 0-9, =, ., -, _, +, @, :, &, ^, %, !, $
iex> properties = %{
"$user_id" => user_id,
"$user_email" => "[email protected]",
"$seller_user_id" => "2371",
"seller_user_email" => "[email protected]",
"$transaction_id" => "573050",
"$payment_method" => %{
"$payment_type" => "$credit_card",
"$payment_gateway" => "$braintree",
"$card_bin" => "542486",
"$card_last4" => "4444"
},
"$currency_code" => "USD",
"$amount" => 15230000,
}iex> response = SiftEx.track(event, properties)
iex> response["status"] # returns Sift status, default is 0
iex> response["error_message"] # returns Sift error message, default is "OK"
iex> IO.inspect response # for more details of the response format# Request a score for the user with user_id 23069
response = SiftEx.score(user_id)# Label the user with user_id 23069 as Bad with all optional fields
iex> response = SiftEx.label(user_id, %{
"$is_bad" => true,
"$abuse_type" => "payment_abuse",
"$description" => "Chargeback issued",
"$source" => "Manual Review",
"$analyst" => "analyst.name@your_domain.com"
})# Get the status of a workflow run
iex> response = SiftEx.get_workflow_status('my_run_id')# Get the latest decisions for a user
iex> response = SiftEx.get_user_decisions('example_user_id')# Get the latest decisions for an order
iex> response = SiftEx.get_order_decisions('example_order_id')
```Check out the official documentation [here](https://siftscience.com/developers/docs/curl/apis-overview) for more informations
## Contributing
1. Fork it!
2. Create your feature branch: `git checkout -b my-new-feature`
3. Commit your changes: `git commit -am 'Add some feature'`
4. Push to the branch: `git push origin my-new-feature`
5. Submit a pull request :D## Testing
Various tests included, just run:
mix deps.get
mix test## License
Copyright (c) 2015 Thibault Hagler. See the LICENSE file for license rights and limitations (MIT).