node package manager

fellowshipone

Fellowship One (F1) API wrapper for Node.js

node-fellowshipone

A Fellowship One API wrapper for Node.js

In very early stages.

Allows you to:

  • use a username/password to easily get OAuth tokens for dealing with Fellowship One (i.e. 2nd-party credentials-based authentication)
  • interface with the F1 API in a slightly-simplified way

See passport-fellowshipone for 3rd-party OAuth authentication.

$ npm install fellowshipone
var f1 = new F1({
  apiURL: 'http://mychurch.staging.fellowshiponeapi.com/v1',
  username: 'joe',
  password: 'joespassword',
  oauth_credentials: {
    consumer_key: '123',
    consumer_secret: '456789'
  }
})
f1.get_token(function (err, oauth_credentials, userURL) {
  request.get(userURL, { oauth: oauth_credentials, json: true }, function (err, res, body) {
    console.log('hi there, %s %s', body.firstName, body.lastName)
  })
})
var config = {
  apiURL: 'http://mychurch.staging.fellowshiponeapi.com/v1',
  username: 'joe',
  password: 'joespassword',
  oauth_credentials: {
    consumer_key: '123',
    consumer_secret: '456789'
  }
}
var f1 = new F1(config)
// this method is useful for integrating with other APIs 
f1.authenticate(function (err) {
  console.log('got tokens: %s/%s', config.oauth_credentials.token,
    config.oauth_credentials.token_secret)
  console.log('user URL is %s', config.userURL)
})
var f1 = new F1(config)
f1.authenticate(function (err) {
  var households = new F1.Households(f1)
  households.search({
    searchFor: 'Joe Smith'
  }, function (err, found) {
    var count = found.results['@count']
    console.log('Found %d households', count)
    if (count > 0) {
      console.log('Households: %j', found.results.household)
    }
  })
})

We're aiming to support all of the F1 API by v1.0.0. The (more-or-less) current support state is:

  • Accounts
  • People API Realm
    • Households
      • HouseholdMemberTypes
    • People
      • People Attributes
      • People Images
    • Addresses
      • AddressTypes
    • Attributes
      • AttributeGroups
    • Communications
      • CommunicationTypes
    • Denominations
    • Occupations
    • Schools
    • Statuses
      • SubStatuses
    • Requirements
    • Requirement Statuses
    • Background Check Statuses
    • People Requirements
    • Requirement Documents
  • Giving API Realm
    • not yet
  • Groups API Realm
    • not yet
  • Events API Realm
    • not yet
$ npm install --dev
$ make test

The MIT License

Copyright (c) 2014-2015 Dave Henderson