Skip to content

OpenFn/language-http

main
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
lib
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Language HTTP Build Status

Language Pack for building expressions and operations to make HTTP calls.

Documentation

sample configuration

{
  "username": "taylor@openfn.org",
  "password": "supersecret",
  "baseUrl": "https://instance_name.surveycto.com",
}

Get data

This helper function allows the use of a get method to fetch data. You can specify a query string for filter.

get(
  '/myendpoint',
  {
    query: { foo: 'bar', a: 1 },
    headers: { 'content-type': 'application/json' },
    authentication: { username: 'taylor', password: 'somethingsecret' },
  },
  state => {
    return state;
  }
);

Post existing data

Send some data to an existing endpoint.

post('/endpoint', {
  body: state => {
    return {
      field_1: 'some_data',
      field_2: 'some_more_data',
      field_id: dataValue('Some.Json.Object.Id')(state),
    };
  },
  headers: {
    Authorization: 'AUTH_KEY',
    'Content-Type': 'application/json',
  },
});

Update existing data with PUT or PATCH

put(
  '/myendpoint',
  {
    body: { firstname: 'taylor', lastname: 'downs' },
    headers: { 'content-type': 'application/json' },
    authentication: { username: 'user', password: 'pass' },
  },
  state => {
    return state;
  }
);
patch(
  '/myendpoint',
  {
    body: { firstname: 'taylor', lastname: 'downs' },
    headers: { 'content-type': 'application/json' },
    authentication: { username: 'user', password: 'pass' },
  },
  state => {
    return state;
  }
);

Delete data

del(
  '/myendpoint',
  {
    query: { id: 'someId' },
    headers: { 'content-type': 'application/json' },
    authentication: { username: 'user', password: 'pass' },
  },
  state => {
    return state;
  }
);

Parse XML

This function allows you to parse some xml data. A callback function can be use to store in a table.

parseXML(body, function ($) {
  return $('table[class=your_table]').parsetable(true, true, true);
});

Parse CSV

parseCSV('/home/user/someData.csv', {
  quoteChar: '"',
  header: false,
});

Sample parse local CSV file

parseCSV('/home/taylor/PatientsJan2009.csv', {
  quoteChar: '"',
  header: false,
  columns: true,
  skip_empty_lines: true,
  trim: true,
  bom: true,
});

Docs

Development

Clone the repo, run npm install.

Run tests using npm run test or npm run test:watch

Build the project using make.

To build the docs for this repo, run ./node_modules/.bin/jsdoc --readme ./README.md ./lib -d docs.

About

A very generic language-pack for making GET and POST requests

Topics

Resources

License

GPL-3.0, LGPL-3.0 licenses found

Licenses found

GPL-3.0
LICENSE
LGPL-3.0
LICENSE.LESSER

Stars

Watchers

Forks

Packages

No packages published