File: debci-api

package info (click to toggle)
debci 3.13
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,656 kB
  • sloc: ruby: 6,516; sh: 2,437; javascript: 100; makefile: 92; perl: 11
file content (29 lines) | stat: -rwxr-xr-x 665 bytes parent folder | download | duplicates (2)
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