Sha256: 9ce2c85973ef1974a79a5b230a0c01ba057db9545dd8a706410b92052ef7a2b5

Contents?: true

Size: 1.1 KB

Versions: 8

Compression:

Stored size: 1.1 KB

Contents

# frozen_string_literal: true

module Decidim
  module Elections
    class BulletinBoardClient
      def initialize(params)
        @server = params[:server].presence
        @api_key = params[:api_key].presence
        @identification_private_key = params[:identification_private_key]&.strip.presence

        @private_key = OpenSSL::PKey::RSA.new(identification_private_key_content) if identification_private_key
      end

      def public_key
        private_key&.public_key
      end

      def configured?
        private_key && server && api_key
      end

      private

      attr_reader :identification_private_key, :server, :api_key, :private_key

      def identification_private_key_content
        @identification_private_key_content ||= if identification_private_key.starts_with?("-----")
                                                  identification_private_key
                                                else
                                                  File.read(Rails.application.root.join(identification_private_key))
                                                end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
decidim-elections-0.23.6 lib/decidim/elections/bulletin_board_client.rb
decidim-elections-0.23.5 lib/decidim/elections/bulletin_board_client.rb
decidim-elections-0.23.4 lib/decidim/elections/bulletin_board_client.rb
decidim-elections-0.23.3 lib/decidim/elections/bulletin_board_client.rb
decidim-elections-0.23.2 lib/decidim/elections/bulletin_board_client.rb
decidim-elections-0.23.1 lib/decidim/elections/bulletin_board_client.rb
decidim-elections-0.23.1.rc1 lib/decidim/elections/bulletin_board_client.rb
decidim-elections-0.23.0 lib/decidim/elections/bulletin_board_client.rb