elixir-deltek

A wrapper around the Deltek SOAP API. Requires curl.

Requirements

Be sure to have curl installed. That's pretty much it! 👍🏻

Installation

Add a line to your deps in mix.exs:

  def deps do
    [{:deltek, "~> 0.0.2"}]
  end

and :deltek in your applications:

  def application do
    [applications: [:logger, :deltek]]
  end

Configure deltek in your app's config.exs:

config :deltek,
  wsdl: "http://yourhost.com/Vision/VisionWS.asmx?wsdl",
  username: "yourusername",
  password: "yourpassword",
  database_name: "yourdatabase"

Usage

The elixir-deltek wrapper has three main entry points: clients, projects, and employees.

Use the base module Deltek to execute calls to the Deltek API:

## Projects

# Retrieve a project by its code
Deltek.project(code: "00000.00.E")
# Retrieve a project by its name (uses LIKE %name%)
Deltek.project(name: "My Project")

# Retrieve the first 10 projects
Deltek.projects
# Retrieve 25 projects with no offset
Deltek.projects(25)
# Retrieve 25 projects offset by 50 (useful for pagination)
Deltek.projects(25, 50)

## Employees

# Retrieve an employee by its name (uses LIKE on FirstName or LastName)
Deltek.employee(name: "Gustave")
# Retrieve an employee by its id (usually found in projects details)
Deltek.employee(id: "231")

# Retrieve the first 10 employees
Deltek.employees
# Retrieve 25 employees with no offset
Deltek.employees(25)
# Retrieve 25 employees offset by 50 (useful for pagination)
Deltek.employees(25, 50)

## Clients

# Retrieve a client by name (implemented with %LIKE%)
Deltek.client(name: "Grand Budapest")
# Retrieve a client by its id (usually found in projects details)
Deltek.client(id: "231")

# Retrieve the first 10 clients
Deltek.clients
# Retrieve 25 clients with no offset
Deltek.clients(25)
# Retrieve 25 clients offset by 50 (useful for pagination)
Deltek.clients(25, 50)