Skip to content
Snippets Groups Projects
Select Git revision
  • 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
  • dev default protected
  • 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
40 results

pksserver.js

Blame
  • pksserver.js 1.77 KiB
    var async   = require('async');
    var util    = require('util');
    var parsers = require('./app/lib/streams/parsers/doc');
    var Server  = require('./server');
    
    function PKSServer (dbConf, overrideConf, interceptors, onInit) {
    
      var logger  = require('./app/lib/logger')(dbConf.name);
    
      var selfInterceptors = [
        {
          // Pubkey
          matches: function (obj) {
            return typeof obj.email != "undefined";
          },
          treatment: function (server, obj, next) {
            logger.debug('⬇ PUBKEY %s', obj.fingerprint);
            async.waterfall([
              function (next){
                server.PublicKeyService.submitPubkey(obj, next);
              },
              function (pubkey, next){
                logger.debug('✔ PUBKEY %s', pubkey.fingerprint);
                server.emit('pubkey', pubkey);
                next(null, pubkey);
              },
            ], next);
          }
        }
      ];
    
      Server.call(this, dbConf, overrideConf, selfInterceptors.concat(interceptors || []), onInit || []);
    
      var that = this;
    
      this._read = function (size) {
      };
    
      this.writeRawPubkey = function (raw) {
        var source = parsers.parsePubkey();
        var dest = that.singleWriteStream();
        source.pipe(dest);
        source.end(raw);
      };
    
      this._initServices = function(conn, done) {
        this.KeyService         = require('./app/service/KeyService').get(conn);
        this.PublicKeyService   = require('./app/service/PublicKeyService').get(conn, that.conf, that.KeyService);
        done();
      };
    
      this._listenBMA = function (app) {
        this.listenPKS(app);
      };
    
      this.listenPKS = function (app) {
        var pks = require('./app/controllers/pks')(this);
        app.get(  '/pks/all',    pks.getAll);
        app.get(  '/pks/lookup', pks.lookup);
        app.post( '/pks/add',    pks.add);
      };
    }
    
    util.inherits(PKSServer, Server);
    
    module.exports = PKSServer;