Skip to content

Latest commit

 

History

History
168 lines (114 loc) · 5.2 KB

README.md

File metadata and controls

168 lines (114 loc) · 5.2 KB

API

AvApiResource is a lightweight class that wraps Angular's $http service and provides some sensible defaults when connecting to Availity's REST API.

  • Automatic polling of restful endpoints with timeouts
  • Simple URI builder for API resources
  • Life-cycle hooks into HTTP calls for GET, PUT, POST and DELETE

Configuration

AvApiResource can be configured by passing options into it's constructor or globally by overriding the defaults using AvApiResourceProvider.

angular.module('app', ['availity'])
    .config( AvApiResourceProvider => {
        AvApiResourceProvider.setOptions({version: 'v2'})
    });

The configuration object is simply Angular $http configuration

Options

api

Default true. When true, the requests to the server incorporate Availity api behavior for url construction and polling.

url

When api is true, the url attribute is ignored. When api is false, the url value is used to request to the server. This allows AvApiFactory to be used for endpoints that are not part of the Availity rest api platform.

path

Default /api. When api is true, the url building logic is path/version/name.

version

Default v1. When api is true, the url building logic is path/version/name.

name

The name of the resource. When api is true, the url building logic is path/version/name.

cacheBust

To force every call to get latest results. Accepts a boolean, function, or value:

  • if true, a timestamp is generated and used
  • if a function, parameter is set to its results
  • if a value is passed in, use this as parameter
pageBust

Bust the service cache on page load, but keep the cache valid afterwards. Same behavior as cacheBust, except if true, the timestamp value is generated once and kept. Setting the pageBust variable is done with the function setPageBust(value), if no value is passed in, a timestamp is generated. This can be used to customize the parameter or to manually break the cache.

sessionBust

Default true. Attempts to read a sessionBust value from local storage, generated at login. Forces the cache to bust when a new user logs in. If the value is not set, uses the pageBust value.

Resources

A service can be created by invoking the constructor. The example below creates a service called healthplanProvidersResource that can be injected into other services and factories in Angular.

angular.module('app', ['availity'])
    .factory('healthplanProvidersResource', AvApiResource => {
        return new AvApiResource({name: 'providers'});
    });

A service can also be created by extending the AvApiResource class. Using classes allows developers to easily add helper methods for resource types.

function factory = function(AvApiResource) {

    class HealthplanProvidersResource extends AvApiResource {
        constructor() {
          super({
            path: '/proxy/healthplan',
            name: '/providers'
          });
        }
        getProviders(config) {
          return this.query(config).then(response => {
            return response.data.providers ? response.data.providers : response.data;
          });
        }
      }

    };

    return new HealthPlanProvidersResource();

}
const module = module.service('app', ['availity'])
    .service('healthplanProvidersResource', HealthplanProvidersResource);

Every resource created has the methods get, query, create, postGet, update and remove.

Methods

Each method has an after function, ( ex. get has afterGet). These are used to modify the response before it is resolved in the promise. Each method that takes in data has a before function in order to modify the data before making the call.

get

Retrieves and entity by ID with optional configuration.

get(id, config);

query

The query function is designed to fetch collections and search the API.

query(config)

create

Create an entity with optional configuration.

create(data, config)

postGet

Post call with X-HTTP-Method-Override = 'GET'

postGet(data, config)

update

Update and entity with optional configuration.

This first method signature supports three parameters: id, data and configuration. The id parameter must be the identifier for the entity in the rest API.

update(id, data, config)

If only two parameters are passed into the update function, then the first parameter is assumed to be of type data and the second parameter is assumed to be a configuration object. Using this signature, the data object must contain an id field so that the API can properly update the entity in the back-end.

update(data, config)

remove

Remove an entity with optional configuration. A string or data object can be passed in as the first parameter.

remove(id, config)

or

remove(data, config)

API

The SDK includes some configured Angular services for the Availity REST API.