0.0.2 • Published 9 years ago

mailman-cli v0.0.2

Weekly downloads
5
License
ISC
Repository
github
Last release
9 years ago

Description

This is a proof of concept thing for the idea of having mailman client written in javascript for GSOC'15.

Quick start

    $ git clone https://github.com/black-perl/mailman-cli.git
    $ cd mailman-cli
    $ npm install
    $ node
    > var MC = require('./cli.js')
    // make the client object
    > var cli = new MC({'endpoint':'http://localhost:8001/3.0/'})
    // getting the lists 
    > cli.lists().auth().get() 
    

Testing

    $ npm test
    

Find me@NPM

$ npm install mailman-cli

    

Main Dependencies

  • Bluebird - Promise library for js.
  • Superagent - Super easy request making js library.

Syntax styling

It offers chaining, promises and of course the callbacks style syntax.

Methods supported

.lists() - Makes request to the endpoint /lists/
.auth() - Does auth with the REST Server
.listId() - Makes request to the endpoint /lists/<list-id>
.owner() - Lists owners of the list
.members() - Lists members of the list
.moderators() - List moderators of the list

####Chaining calls

  • Get moderators for a particular list
    cli.lists().auth().listId(<list-id>).moderators()

####Listing lists

  • Callbacks

      > cli.lists().auth().get(function(err,data){
           if (err) {
              // handle error
           }
           else{
              console.log(data);
           }
          });
          
  • Promises

      > cli.lists().auth().get().then(function(data){
          console.log(data);
          });

####Listing owners of a list

  • Callbacks

      > cli.lists().auth().listId(<list-id>).owner().get(function(err,data){
           if (err) {
              // handle error
           }
           else{
              console.log(data);
           }
          });
          
  • Promises

      > cli.lists().auth().listId(<list-id>).owner().get().then(function(data){
          console.log(data);
          });

Core Classes

MC - The base constructor for the Mailman API service.
MCRequest - MCRequest is the base API request object constructor.
CollectionRequest - CollectionRequest extends MCRequest with properties & methods for filtering collections. NOTE : MCRequest is RequestA and CollectionRequest is RequestB as per the proposal.
ListsRequest - ListsRequest extends CollectionRequest to handle the /lists API endpoint.

PS

If you try to read the code, you may find some unnecessary things as this is aimed towards something big :smiley: And, sorry for not implementing a testing framework, I had spent most of my time while figuring out different things for the styling and structure of the API.