@doubledutch/admin-client

A client library for interacting with the DoubleDutch CMS

Stats

StarsIssuesVersionUpdatedCreatedSize
@doubledutch/admin-client
062.2.32 years ago4 years agoMinified + gzip package size for @doubledutch/admin-client in KB

Readme

@doubledutch/admin-client

DoubleDutch client library for building admin pages for extensions within the CMS.

Automated setup

The easiest way to get started is to install the DoubleDutch command line tool and run doubledutch init.

See also @doubledutch/firebase-connector for an easy backend for your DoubleDutch extension.

Usage

import client from '@doubledutch/admin-client'

client.getToken().then(token => console.log(`${token} is a valid DoubleDutch CMS access token, usually used indirectly by other client libraries.`))

class App extends React.Component {
  constructor(props) {
    super(props)
    this.state = {}
    client.getCurrentUser()
      .then(currentUser => this.setState({currentUser}))
  }

  render() {
    const {currentUser} = this.state
    return (
      <div>
        {currentUser && <div>Hello {currentUser.firstName}</div>}
      </div>
    )
  }
}

Documentation

client.getToken()

Returns a Promise which resolves to a valid CMS access token. Normally used indirectly by other client libraries to access the DoubleDutch platform.

client.getToken().then(token => /* Use the token. */)

client.getAttendee(id)

Returns a Promise which resolves to the attendee in the current event.

client.getAttendee(42).then(attendee => console.log(attendee))

client.getAttendees(query)

Returns a Promise which resolves to all the attendees in the current event, or the top 200 filtered by a query string.

client.getAttendees().then(attendees => console.log(attendees))
client.getAttendees('John').then(attendees => console.log(attendees))

client.getAttendeeGroups()

Returns a Promise which resolves to all the attendee groups in the current event

client.getAttendeeGroups().then(groups => console.log(groups))

client.getCurrentEventInfo()

Returns a Promise which resolves to information about the current event

client.getCurrentEventInfo().then(evt => console.log(evt))
{
  "name": "SKO",
  "id": "sample-event-id",
  "timeZone": "America/Los_Angeles",
  "startDate": "2018-04-26T00:00:00",
  "endDate": "2018-04-27T00:00:00",
  "canRegister": false,
}

client.getTiers()

Returns a Promise which resolves to all the attendee groups in the current event, for events with Content Visibility enabled.

client.getTiers().then(tiers => console.log(tiers))

client.cmsRequest(method, relativeURL, bodyJSON)

Returns a Promise which resolves to the parsed response body for a successful CMS request for the current event.

client.cmsRequest('GET', '/api/users').then(users => console.log(users))

client.navigateCms(relativeURL)

Instructs the parent CMS window to navigate to a relative URL.

client.navigateCms('/some/other/page')

client.getCmsBaseUrl()

Returns the base url of the parent CMS window.

client.getCmsBaseUrl()

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.