REST API using Node.js and Express.js framework with node-couchdb.js for working with CouchDB.
You need to have installed Node.js and CouchDB 2.0
To install dependencies enter project folder and run following command:
npm install
Install CouchDB 2.0 and config : CoudhDB 2.0
Config view document on CouchDB
"members" , "accounts" , "transactions"
-
Deisgn Documents > New View
Design Documents :
_design/members
Index name :
members-view
Map funcion :
function (doc) { if(doc.user){ emit(doc.user,doc); } }
-
Deisgn Documents > New View
Design Documents :
_design/accounts
Index name :
accounts-view
Map funcion :
function (doc) { if(doc.user_ac){ emit(doc.user_ac,doc); } }
-
Deisgn Documents > New View
Design Documents :
_design/transactions
Index name :
transactions-view
Map funcion :
function (doc) { if(doc.tran_name){ emit(doc.tran_name,doc); } }
To run server execute:
npm start
Run server change port :
PORT=7777 npm start
Run server with Auth CouchDB :
PORT=7777 DB_HOST=localhost DB_PROTOCAL=http DB_PORT=5984 DB_USER=root DB_PASSWORD=password npm start
-
Retrieves All members :
GET:{{host}}/members
-
Retrieves member by primary user :
GET:{{host}}/members/:user
-
Create member :
POST:{{host}}/members
Permission >> can use "rw" or "ro"
{
"user": "user",
"permission":"rw",
"info":{
"name":"name",
"lastname":"lastname",
"address":"222/222",
"phone":["090-1234567","090-7654321"],
"email":"test@gmail.com"
}
}
- Update member :
PUT:{{host}}/members
{
"id":"id_number",
"rev":"rev_number",
"user": "user",
"permission":"rw",
"info":{
"name":"name",
"lastname":"lastname",
"address":"222/222",
"phone":["090-1234567","090-7654321"],
"email":"test@gmail.com"
}
}
- Delete member :
DELETE:{{host}}/members
{
"id":"id",
"rev":"rev"
}
-
Retrieves All accounts :
GET:{{host}}/accounts
-
Retrieves account by primary user :
GET:{{host}}/accounts/:user
-
Create account :
POST:{{host}}/accounts
{
"user_ac":"stevemild",
"account":{
"ac_id":"ac-01",
"name":"steve",
"lastname":"mild",
"cash":"30,000",
"petty_cash":"45,000",
"deposit":"1,000",
"amount":"76,000",
"acl":[
{
"user":"stevemild",
"permission" : "rw"
},
{
"user":"necross",
"permission" :"ro"
}
]
}
}
- Update account :
PUT:{{host}}/accounts
{
"id":"id_number",
"rev":"rev_number",
"user_ac":"stevemild",
"account":{
"ac_id":"ac-01",
"name":"steve",
"lastname":"mild",
"cash":"30,000",
"petty_cash":"45,000",
"deposit":"1,000",
"amount":"76,000",
"acl":[
{
"user":"stevemild",
"permission" : "rw"
},
{
"user":"necross",
"permission" :"ro"
}
]
}
}
- Delete account :
DELETE:{{host}}/accounts
{
"id":"id_number",
"rev":"rev_number"
}
-
Retrieves All transactions :
GET:{{host}}/transactions
-
Retrieves transaction by primary name :
GET:{{host}}/members/:name
-
Create transaction:
POST:{{host}}/transactions
{
"tran_name" : "Transactions 2017",
"updatetime": "07/06/2560 15:33:12",
"transactions": [
{
"fis_year" : "60",
"date":"01/04/2560",
"type":"salary",
"detail":"salary for Aug",
"account":[
{
"ac_id":"ac-02",
"amount":"(50,000.00)"
}
],
"remark":"xxxx"
}
]
}
- Update transaction:
PUT:{{host}}/transactions
{
"id":"id_number",
"rev":"rev_member",
"tran_name" : "Transactions 2017",
"updatetime": "07/06/2560 15:33:12",
"transactions": [
{
"fis_year" : "60",
"date":"01/04/2560",
"type":"salary",
"detail":"salary for Aug",
"account":[
{
"ac_id":"ac-02",
"amount":"(50,000.00)"
}
],
"remark":"xxxx"
}
]
}
- Delete transaction:
DELETE:{{host}}/transactions
{
"id":"id_number",
"rev":"rev_number"
}
- path:
manage_account_api/libs/routes/
var rw_members = ["ed05d1affde3a921002af7efcf184d0a","bypass"] // check on firebase
var rw_accounts = ["bypass"]
var rw_transactions = ["bypass"]
module.exports = {
rw_members : rw_members,
rw_accounts : rw_accounts,
rw_transactions : rw_transactions,
}
headers : key="token" , value ="ed05d1affde3a921002af7efcf16f61e"