Skip to content
Dj edited this page Jun 16, 2014 · 3 revisions

Creating your own remote source

Starting out with a sample module:

KineticModule = require '../kinetic-module'

module.exports =
class MySource extends KineticModule
  constructor: ->
    # your constructor will contain all your service information..
    # call super, with 3 arguments.  the HOST, the PATH, and the OPTIONS to use.
    super('http://somesite.com/api/put', 
      some_var: 'foo',
      some_other_var: 'bar'
    )

The Kinetic Module will then read your module, and put a respective menu item into the Packages Menu, that will look like Packages->Kinetic->Upload to MySource

Clicking that Upload to MySource, will call the @upload() method, which will simply use your data, and post it there.

Intercepting data

There are times where maybe your service returns an error. In this case, you can override the @check() method like so:

KineticModule = require '../kinetic-module'

module.exports =
class MySource extends KineticModule
  constructor: ->
    ...
  
  # the method needs an argument, for what the response from your service will be
  # Returns:
  #   true if intercepted message needs to be edited and sent again
  #   false if it's all good
  check: (resp) ->
    if resp.indexOf 'error'
      @opts['some_var'] = 'something else'
      return true

It will then try @MAX_ATTEMPTS times (which defaults to 5, and of course can be overriden by the module.) to send the data back after sanitizing and validating.

Clone this wiki locally
You can’t perform that action at this time.