44 lines
804 B
Crystal
44 lines
804 B
Crystal
module MW
|
|
class EnvRequester
|
|
private property keys
|
|
|
|
def initialize(@keys = {} of String => String?)
|
|
end
|
|
|
|
def initialize(keys : Array(String))
|
|
@keys = {} of String => String?
|
|
keys.each { |k| self.<< k }
|
|
end
|
|
|
|
def <<(key : String) : self
|
|
@keys[key] = ENV[key]?
|
|
|
|
self
|
|
end
|
|
|
|
def []?(key : String) : String?
|
|
if @keys.has_key?(key)
|
|
@keys[key]?
|
|
end
|
|
end
|
|
|
|
def [](key : String) : String
|
|
if @keys.has_key?(key)
|
|
val = @keys[key]?
|
|
raise "ENV[#{key}] is nil" unless val
|
|
|
|
val
|
|
else
|
|
raise "No such key: #{key}"
|
|
end
|
|
end
|
|
end
|
|
|
|
ENV_REQUESTER = EnvRequester.new([
|
|
"BACKEND_DATABASE_URL",
|
|
"BACKEND_ADMIN_EMAIL",
|
|
"BACKEND_ADMIN_PASSWORD",
|
|
"BACKEND_JWT_SECRET",
|
|
])
|
|
end
|