Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    restapipublic

    Rest Api

    The modules we need

    request = require 'request'
    _       = require 'underscore'

    A small module to easily query rest api

    encodeUrlParams = (params) ->
      encoded = "?"
      for keyvalue of params
        encoded += (if encoded != "?" then "&" else "") + "#{key}=#{value}"
      encoded
        
     
    class RestApi 
      constructor: (url, options) -> 
        @url = url
        @options = options || {}
     
      get:     (route) -> @.call("get",   route)
      post:    (route) -> @.call("post",  route)
      put:     (route) -> @.call("put",   route)
      delete:  (route) -> @.call("delete",route)
     
      call: (verb, route) -> 
     
        parameters = route.match /\:([^\:\/]*)/g
        parameters = [if not parameters
     
        (params, done) => 
          
          params = _.extend(params@options.params) if @options.params?
     
          for i in [0...parameters.length]
            param = parameters[i].replace(/\:/'')
            route = route.replace ":#{param}"params[param].toString()
           
          url = @url 
          url += route
          url += @options.suffix if @options.suffix? 
          url += encodeUrlParams(params) if verb == "get"
          
          console.log url
          query = 
            url : url
         
          query.json = params if verb == "post"
     
          request[verbquery(e, r, body) ->
            done eJSON.parse(body)
    module.exports = RestApi
    

    Keywords

    none

    install

    npm i restapi

    Downloadsweekly downloads

    16

    version

    0.0.6

    license

    none

    last publish

    collaborators

    • avatar