mentorenwahl/docker/backend/src/mw/env_requester.cr
2022-01-08 13:29:22 +01:00

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