Add temporary http endpoint

pull/998/head
Connor Rigby 2018-09-20 13:28:29 -07:00
parent f2b7054a16
commit dff27ad8f2
No known key found for this signature in database
GPG Key ID: E751D4A8613A1550
3 changed files with 25 additions and 8 deletions

View File

@ -1,11 +1,16 @@
module Api
class DeviceCertsController < Api::AbstractController
def show
render json: {finish: :this}
end
def create
mutate DeviceCerts::Create.run(raw_json, device: current_device)
# TODO(Connor) - This is just a stub.
serial = params["serial_number"] || raise("no serial supplied")
tags = params["tags"] || raise("no tags supplied")
NervesHub.new_device(serial, tags)
certs = NervesHub.sign_device(serial)
data = certs
data[:nerves_hub_host] = NervesHub.hostname()
data[:nerves_hub_port] = NervesHub.port()
data[:nerves_hub_ca] = NervesHub.ca()
render json: data
end
private

View File

@ -93,7 +93,7 @@ class NervesHub
csr_safe = Base64.strict_encode64(csr_bin)
data = {
identifier: serial_number
identifier: serial_number,
csr: csr_safe,
}
resp = conn.post(device_sign_path(serial_number), data.to_json(), headers())
@ -102,7 +102,7 @@ class NervesHub
FileUtils.rm(key_file)
FileUtils.rm(csr_file)
ret = {
cert: Base64.strict_encode64(cert)
cert: Base64.strict_encode64(cert),
csr: csr_safe,
key: key_safe,
}
@ -112,6 +112,18 @@ class NervesHub
!(current_cert.nil? && current_key.nil?)
end
def self.hostname
NERVES_HUB_HOST
end
def self.port
NERVES_HUB_PORT
end
def self.ca
Base64.strict_encode64(File.read(@current_ca_file))
end
private
def self.devices_path

View File

@ -27,7 +27,7 @@ FarmBot::Application.routes.draw do
# Singular API Resources:
{
device: [:create, :destroy, :show, :update],
device_cert: [:create, :show],
device_cert: [:create],
fbos_config: [:destroy, :show, :update,],
firmware_config: [:destroy, :show, :update,],
public_key: [:show],