MyNixOS website logo
Description

A driver for the Factual API.

This is a driver for the Factual API. It provides a type-safe, easy way to generate queries, setup OAuth authentication and send queries to the API.

Introduction

This is a Haskell driver for Factual's public API.

Features

  • Read Queries
    • Places US
    • Restaurants US
    • Hotels US
    • Global Places
    • Crosswalk
    • Healthcare Providers
    • World Geographies
    • Products CPG
    • Products Crosswalk
    • Monetize
    • Custom Tables
  • Facets Queries
  • Geocode Queries
  • Geopulse Queries
  • Resolve Queries
  • Match Queries
  • Schema Queries
  • Diffs Queries
  • Multi Queries
  • Raw Read Queries
  • Parametric Search
  • Geo Filters
  • Query Debugging

Installation

Prerequisites

This driver targets ghc 7.4.2 and The Haskell Platform 2012.4.0.0. Please follow the installation instructions for your specific platform to install ghc and The Haskell Platform.

You'll need a Factual account to use this driver. If you don't have one yet, it's free and easy to get one.

Installation from cabal

$ cabal install factual-api

Installation from git

$ git clone [email protected]:rudyl313/factual-haskell-driver.git
$ cabal install hoauth
$ cabal install aeson
$ cabal install MissingH

Tests

To run the integration tests you'll need an to create a yaml file at ~/.factual/factual-auth.yaml to store your Factual credentials:

---
key: MYKEY
secret: MYSECRET

Load the tests file into ghci to run the tests:

$ ghci test/Tests.hs

Next you use the following functions to run the unit and integration tests respectively:

*Main> runUnitTests
Cases: 55  Tried: 55  Errors: 0  Failures: 0
Counts {cases = 55, tried = 55, errors = 0, failures = 0}
*Main> runIntegrationTests
Cases: 15  Tried: 15  Errors: 0  Failures: 0
Counts {cases = 15, tried = 15, errors = 0, failures = 0}

Documentation

You can read library documentation by visiting the Hackage page.

The github wiki also provides thorough documentation and examples for each feature.

Examples

See the examples directory for examples of each query type. To run an example go to the project root and execute these commands:

$ ghc -o example examples/ReadExample.hs --make
$ ./example mykey mysecret

In this example replace mykey with your key and mysecret with your secret. Note that compiling the source code generates .o and .hi files in the source directories.

Locale issues

If you're using Linux and experience character encoding issues add the following line to your bashrc before using the code:

export LC_ALL="en_US.UTF-8"

Metadata

Version

0.6.1

Platforms (77)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-freebsd
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64-windows
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows