Ignore:
Timestamp:
06/26/13 14:43:57 (12 years ago)
Author:
hendrikvanantwerpen
Message:

Added authentication (fixed user now).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • Dev/trunk/src/server/config/config-couchdb.js

    r464 r466  
    11var q = require('q');
    2 var HTTP = require('q-io/http');
    3 var URL = require('url');
     2var request = require('../util/request');
    43var _ = require('underscore');
    54var util = require('util');
     
    2726    }
    2827
    29     function request(method,path,content) {
     28    function dbRequest(method,path,content) {
    3029        var url = couchDbURL+path;
    31         var parsedURL = URL.parse(url);
    3230        var options = {
    33             url: url,
    3431            method: method,
    3532            headers: {
     
    3734                'accept': 'application/json'
    3835            },
    39             body: {
    40                 forEach: function(callback) {
    41                     callback(JSON.stringify(content || {}));
    42                 }
    43             }
     36            body: content
    4437        };
    45         // because q-io doesn't support auth properly, we have to
    46         // build the f*ing wheel again.
    47         if ( parsedURL.auth ) {
    48             var auth = new Buffer(parsedURL.auth).toString("base64");
    49             options.headers.authorization = 'Basic '+auth;
    50         }
    51         return HTTP.request(options)
    52         .then(function(res){
    53             return res.body.read().then(function(content){
    54                 return JSON.parse(content.toString() || "{}");
    55             });
    56         },function(res){
    57             return res.body.read().then(function(error){
    58                 console.warn(error); // q.all doesn't do errors, so let's show them here
    59                 return JSON.parse(error.toString() || "{}");
    60             });
    61         });
     38        return request(url,options);
    6239    }
    6340
    6441    console.log("Configuring CouchDB for QED");
    6542    console.log("Checking CouchDB version");
    66     return request('GET','')
     43    return dbRequest('GET','')
    6744    .then(function(res){
    6845        if (res.version !== "1.2.0" ) {
     
    7350    }).then(function(res){
    7451        console.log("Checking database 'qed'");
    75         return request('GET','qed')
     52        return dbRequest('GET','qed')
    7653        .then(function(res){
    7754            console.log("Database 'qed' found.");
    7855        },function(err){
    7956            console.log("Creating database 'qed'");
    80             return request('PUT','qed');
     57            return dbRequest('PUT','qed');
    8158        });
    8259    }).then(function(){
     
    9269                case "update":
    9370                    console.log(docUrl+" updating.");
    94                     return request('GET',docUrl)
     71                    return dbRequest('GET',docUrl)
    9572                    .then(function(oldDoc){
    9673                        _.extend(oldDoc,doc);
    97                         return request('PUT',docUrl,oldDoc);
     74                        return dbRequest('PUT',docUrl,oldDoc);
    9875                    },function(){
    99                         return request('PUT',docUrl,doc);
     76                        return dbRequest('PUT',docUrl,doc);
    10077                    });
    10178                break;
     
    10380                default:
    10481                    console.log(docUrl+" replacing.");
    105                     return request('GET',docUrl)
     82                    return dbRequest('GET',docUrl)
    10683                    .then(function(oldDoc){
    10784                        _.extend(doc,_.pick(oldDoc,'_id','_rev'));
    108                         return request('PUT',docUrl,doc);
     85                        return dbRequest('PUT',docUrl,doc);
    10986                    },function(){
    110                         return request('PUT',docUrl,doc);
     87                        return dbRequest('PUT',docUrl,doc);
    11188                    });
    11289                break;
Note: See TracChangeset for help on using the changeset viewer.