angularjs ngResource CouchDB localhost in progress

angularjs ngResource CouchDB localhost (evolved from Twitter example) in progress

by Warwick Grigg

HTML

<script src="http://code.angularjs.org/1.0.6/angular.min.js"></script>
<script src="http://code.angularjs.org/1.0.6/angular-resource.min.js"></script>
<div ng-controller="CouchDBCtrl">
    <form class="form-horizontal">
        <input type="text" ng-model="viewOrDoc">
        <button class="btn" ng-click="doCreate()"><i class="icon-search"></i>Create</button>
        <button class="btn" ng-click="doRead()"><i class="icon-search"></i>Read</button>
        <button class="btn" ng-click="doUpdate()"><i class="icon-search"></i>Update</button>
        <button class="btn" ng-click="doDelete()"><i class="icon-search"></i>Delete</button>
        </form>
<pre> {{CouchDBResult|json}}  </pre>
<pre> {{idrev|json}}  </pre>
<pre> {{createtestdoc|json}}  </pre>
<pre> {{updatetestdoc|json}}  </pre>
        
        
</div>

JavaScript

angular.module('CouchDB', ['ngResource']);

function CouchDBCtrl($scope, $resource) {
    $scope.createtestdoc = {firstname: 'Warick', lastname: 'Grigg'};
    $scope.updatetestdoc = {firstname: 'Warwick', lastname: 'Grigg'};
    $scope.idrev = {};

    $scope.CouchDB = $resource('http://localhost\\:5984/:db/:q',
                               {db: 'telabase01', q: '@q'},
                               {update: {method:'PUT'}});
    
    $scope.doCreate = function () {
        $scope.CouchDBResult = $scope.CouchDB.save({},$scope.createtestdoc);
    };  
    $scope.doRead = function () {
        console.log('clicked');
        $scope.CouchDBResult = $scope.CouchDB.get({q:$scope.viewOrDoc});
        console.log($scope.CouchDBResult);
    };
    $scope.doUpdate = function () {
        $scope.idrev.id = $scope.CouchDBResult.id;
        $scope.idrev.rev = $scope.CouchDBResult.rev;
        $scope.updatetestdoc._rev = $scope.idrev.rev;
        $scope.CouchDBResult = $scope.CouchDB.update({q:$scope.idrev.id},$scope.updatetestdoc);
    };
    $scope.doDelete = function () {
        $scope.idrev.id = $scope.CouchDBResult.id;
        $scope.idrev.rev = $scope.CouchDBResult.rev;
        $scope.updatetestdoc._rev = $scope.idrev.rev;
        $scope.CouchDBResult = $scope.CouchDB.delete();
    };
}