1.0.0-beta1 • Published 9 years ago

fastango v1.0.0-beta1

Weekly downloads
1
License
-
Repository
github
Last release
9 years ago

fastango

supercharged arangodb poc client

impelentation status

drawbacks

  • not the full http api is implemented
  • all request go into the same queue. on socket error this queue will resubmited to the db -> split queue to pipelined an non pipelined requests
  • no cursor iteration (possbile when async functions land in in ES7)

initialize client

parser = new (require 'fastango/parser') 'IP', PORT
require('fastango/fastango') parser, '_system', (status, fastango) ->
  if status >= 400
    'some error'
    return
  'now you can use fastango'

database

_use

fastango._use 'myDb', (status, fastango) ->
  if status >= 400
    'some error'

Change the database. Note: the old fastango object points to the old db. You have to use the newly returned fastango object.

collections

truncate

fastango.testCollection.truncate (status, heads, body) ->
  if status >= 400
    'some error'

drop

fastango.testCollection.drop (status, heads, body) ->
  if status >= 400
    'some error'

_createDocumentCollection

fastango._createDocumentCollection 'NAME', {options}, (status, heads, body) ->
  if status >= 400
    'some error'

for options see https://docs.arangodb.com/HttpCollection/Creating.html

documents

save

fastango.testCollection.save JSON.strinigfy({key:'value'}), (status, heads, body) ->
  if status >= 400
    'some error'

update

fastango.testCollection.update '_key', JSON.strinigfy({key:'value'}), {options}, (status, heads, body) ->
  if status >= 400
    'some error'

for options (optional) see https://docs.arangodb.com/HttpDocument/WorkingWithDocuments.html (Patch document)

document

fastango.testCollection.document '_key', (status, heads, body) ->
  if status >= 400
    'some error'

count

fastango.testCollection.count (status, heads, body) ->
  if status >= 400
    'some error'

misc

_query

fastango._query 'FOR doc IN docs RETURN doc._key', {bindVars}, {options}, (status, cursor) ->
  if status >= 400
    'some error'
    return
  cursor.all (status, results) ->
    if status >= 400
      'some error'

for options see https://docs.arangodb.com/HttpAqlQueryCursor/AccessingCursors.html example:

fastango._query 'FOR doc IN docs RETURN doc._key', {}, {fullCount:true, maxPlans:1}, (status, cursor) ->

for the moment only cursor.all is supported.

_transaction

fastango._transaction {
  params:
    a: 4
  collections: ['col1', 'col2'] | # optional
    read: ['col1', 'col2']
    write: ['col1', 'col2']
  waitForSync: true|false # optional
  lockTimeout: UNUMBER # optional
}, (params) -> # the action function
  return params.a
, (status, headers, body) ->
  if status >= 400
    'some error'