#!/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
