1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
#!/usr/bin/ruby
require 'debci/key'
require 'debci/user'
require 'thor'
module Debci
class APICLI < Thor
desc 'setkey USERNAME [KEYNAME]', 'Sets a API key for the given user'
def setkey(username, _keyname = 'default')
user = Debci::User.find_or_create_by!(username: username)
key = Debci::Key.create!(user: user)
puts key.key
end
desc 'auth KEY', 'Checks authentication for the given KEY'
def auth(key)
user = Debci::Key.authenticate(key)
if user
puts "I: Valid key for user `#{user.username}`"
else
warn 'E: invalid key'
exit(1)
end
end
end
end
Debci::APICLI.start
|