Skip to content
Snippets Groups Projects
Select Git revision
  • 276b7c5875e80ba7e22feb284cfb2794ea939cd4
  • dev default protected
  • release/1.9.1 protected
  • pini-1.8-docker
  • pini-sync-onlypeers
  • duniter-v2s-issue-123-industrialize-releases
  • feature/build-aarch64-nodejs16
  • release/1.8 protected
  • pini-docker
  • ci_tags
  • fix/1448/1.8/txs_not_stored
  • feature/node-20
  • fix/1441/node_summary_with_storage
  • fix/1442/improve_bma_tx_history
  • feature/wotwizard-1.8
  • release/1.9 protected
  • 1.7 protected
  • feature/docker-set-latest protected
  • feature/fast-docker-build-1.8.4
  • fast-docker-build protected
  • feature/dump-distance
  • v1.8.7 protected
  • v1.8.7-rc4 protected
  • v1.8.7-rc3 protected
  • v1.8.7-rc2 protected
  • v1.8.7-rc1 protected
  • v1.8.6 protected
  • v1.7.23 protected
  • v1.8.5 protected
  • v1.8.4 protected
  • v1.8.3 protected
  • v1.8.2 protected
  • v1.8.1 protected
  • v1.8.0 protected
  • v1.8.0-rc1 protected
  • v1.8.0-beta5 protected
  • v1.8.0-beta4 protected
  • v1.8.0-beta3 protected
  • v1.8.0-beta2 protected
  • v1.8.0-beta protected
  • v1.7.21 protected
41 results

nodecoin.js

Blame
  • nodecoin.js 3.93 KiB
    var pks    = require('./pks'),
    amend      = require('./amendments'),
    express    = require('express'),
    orm        = require('orm'),
    async      = require('async'),
    config     = require('../config'),
    path       = require('path'),
    _          = require('underscore'),
    nodecoin   = require('../lib/nodecoin');
    configurer = require('../lib/configurer');
    
    module.exports.pks = pks;
    module.exports.amendments = amend;
    module.exports.express = {
    
      route: function(app){
    
        function notImplemented (req, res) {
          res.writeHead(501);
          res.end();
        }
    
        app.get(    '/pks/lookup',                                  pks.lookup);
        app.get(    '/pks/add',                                     pks.add.get);
        app.post(   '/pks/add',                                     pks.add.post);
        app.get(    '/udc/amendments/init',                         _(amend.init).partial(app.get('config').initKeys));
        app.post(   '/udc/amendments/submit',                       notImplemented);
        app.post(   '/udc/amendments/vote',                         notImplemented);
        app.get(    '/udc/amendments/view/:amendment_id/members',   notImplemented);
        app.get(    '/udc/amendments/view/:amendment_id/self',      notImplemented);
        app.get(    '/udc/amendments/view/:amendment_id/voters',    notImplemented);
        app.get(    '/udc/coins/:pgp_fpr/list',                     notImplemented);
        app.get(    '/udc/coins/:pgp_fpr/view/:coin_number',        notImplemented);
        app.post(   '/udc/community/declare',                       notImplemented);
        app.post(   '/udc/community/join',                          notImplemented);
        app.get(    '/udc/transactions/sender/:fingerprint',        notImplemented);
        app.post(   '/udc/transactions/process/issuance',           notImplemented);
        app.post(   '/udc/transactions/process/transfert',          notImplemented);
        app.get(    '/udc/transactions/view/:transaction_id',       notImplemented);
      },
    
      app: function (someConfig) {
        var app = express();
        var config = someConfig || {
          server: { port: 8001 },
          db: {
            database : "nodecoin_test",
            protocol : "sqlite",
            dropAll: false
          }
        };
    
        configurer(config).parseFiles(function (err) {
          if(!err){
            console.log("Initkeys loaded.");
          }
          else{
            console.log(err);
          }
        });
    
        // all environments
        app.set('config', config);
        app.set('port', process.env.PORT || config.server.port);
        app.use(express.favicon(__dirname + '/../public/favicon.ico'));
        app.use(express.static(__dirname + '/../public'));
        app.use(express.logger('dev'));
        app.use(express.bodyParser());
        app.use(express.methodOverride());
        app.use(express.cookieParser('your secret here'));
        app.use(express.session());
        app.use(orm.express(config.db, {
          define: function (db, models) {
    
            db.load(__dirname + '/entities/load', function (err) {
              // loaded !
              var PublicKey = db.models.pubkey;
              var PrivateKey = db.models.privkey;
    
              function createTables(callback){
                PublicKey.sync(function (err2) {
                  if(!err)
                    console.log("Table 'PublicKey' created.");
                  callback(err);
                });
              }
    
              function dropTables(callback){
                PublicKey.drop(function (err2) {
                  if(!err)
                    console.log("Table 'PublicKey' dropped.");
                  callback(err);
                });
              }
    
              if(config.db.dropAll){
                dropTables(function (err2) {
                  createTables(function (err3) {});
                });
              }
              else{
                createTables(function (err2) {});
              }
    
              models.PublicKey = PublicKey;
              models.PrivateKey = PrivateKey;
            });
          }
        }));
        app.use(app.router);
    
        // development only
        if ('development' == app.get('env')) {
          app.use(express.errorHandler());
        }
    
        this.route(app);
        return app;
      }
    };