1
0
mirror of https://github.com/cmur2/dyndnsd.git synced 2025-07-21 21:11:17 +02:00

gem: add solargraph support

This commit is contained in:
cn
2020-02-28 15:13:28 +01:00
parent 6d0457d70c
commit 73dbf2a5fa
14 changed files with 145 additions and 2 deletions

View File

@ -2,10 +2,13 @@
module Dyndnsd
module Responder
class DynDNSStyle
# @param app [#call]
def initialize(app)
@app = app
end
# @param env [Hash{String => String}]
# @return [Array{Integer,Hash{String => String},Array{String}}]
def call(env)
@app.call(env).tap do |status_code, headers, body|
if headers.key?('X-DynDNS-Response')
@ -18,6 +21,10 @@ module Dyndnsd
private
# @param status_code [Integer]
# @param headers [Hash{String => String}]
# @param body [Array{String}]
# @return [Array{Integer,Hash{String => String},Array{String}}]
def decorate_dyndnsd_response(status_code, headers, body)
if status_code == 200
[200, {'Content-Type' => 'text/plain'}, [get_success_body(body[0], body[1])]]
@ -26,6 +33,10 @@ module Dyndnsd
end
end
# @param status_code [Integer]
# @param headers [Hash{String => String}]
# @param _body [Array{String}]
# @return [Array{Integer,Hash{String => String},Array{String}}]
def decorate_other_response(status_code, headers, _body)
if status_code == 400
[status_code, headers, ['Bad Request']]
@ -34,10 +45,14 @@ module Dyndnsd
end
end
# @param changes [Array{Symbol}]
# @param myips [Array{String}]
# @return [String]
def get_success_body(changes, myips)
changes.map { |change| "#{change} #{myips.join(' ')}" }.join("\n")
end
# @return [Hash{String => Object}]
def error_response_map
{
# general http errors

View File

@ -2,10 +2,13 @@
module Dyndnsd
module Responder
class RestStyle
# @param app [#call]
def initialize(app)
@app = app
end
# @param env [Hash{String => String}]
# @return [Array{Integer,Hash{String => String},Array{String}}]
def call(env)
@app.call(env).tap do |status_code, headers, body|
if headers.key?('X-DynDNS-Response')
@ -18,6 +21,10 @@ module Dyndnsd
private
# @param status_code [Integer]
# @param headers [Hash{String => String}]
# @param body [Array{String}]
# @return [Array{Integer,Hash{String => String},Array{String}}]
def decorate_dyndnsd_response(status_code, headers, body)
if status_code == 200
[200, {'Content-Type' => 'text/plain'}, [get_success_body(body[0], body[1])]]
@ -26,6 +33,10 @@ module Dyndnsd
end
end
# @param status_code [Integer]
# @param headers [Hash{String => String}]
# @param _body [Array{String}]
# @return [Array{Integer,Hash{String => String},Array{String}}]
def decorate_other_response(status_code, headers, _body)
if status_code == 400
[status_code, headers, ['Bad Request']]
@ -34,10 +45,14 @@ module Dyndnsd
end
end
# @param changes [Array{Symbol}]
# @param myips [Array{String}]
# @return [String]
def get_success_body(changes, myips)
changes.map { |change| change == :good ? "Changed to #{myips.join(' ')}" : "No change needed for #{myips.join(' ')}" }.join("\n")
end
# @return [Hash{String => Object}]
def error_response_map
{
# general http errors