Module: ServiceHelpers

Defined in:
lib/helpers/services.rb

Instance Method Summary collapse

Instance Method Details

#svcapi_deletekey(service, key) ⇒ Object



37
38
39
40
41
42
43
# File 'lib/helpers/services.rb', line 37

def svcapi_deletekey(service, key)
  begin
    $redis.lrem("apikey:inuse:#{service}", 1, key)
    $redis.lrem("apikey:available:#{service}", 1, key)
  rescue
  end
end

#svcapi_getkey(service) ⇒ Object



3
4
5
# File 'lib/helpers/services.rb', line 3

def svcapi_getkey(service)
  $redis.brpoplpush("apikey:available:#{service}", "apikey:inuse:#{service}", 120)
end

#svcapi_putkey(service, key) ⇒ Object



44
45
46
# File 'lib/helpers/services.rb', line 44

def svcapi_putkey(service, key)
  $redis.lpush("apikey:available:#{service}", key)
end

#svcapi_releasekey(service, key) ⇒ Object



6
7
8
9
# File 'lib/helpers/services.rb', line 6

def svcapi_releasekey(service, key)
  $redis.lrem("apikey:inuse:#{service}", 1, key)
  $redis.rpush("apikey:available:#{service}", key)
end

#svcapi_showkeys(service) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/helpers/services.rb', line 10

def svcapi_showkeys(service)
  unless service == :all
    @inuse = $redis.lrange("apikey:inuse:#{service}", 0, -1)
    @available = $redis.lrange("apikey:available:#{service}", 0, -1)
    return { :inuse => @inuse, :available => @available }
  else
    @all = Hash.new
    $redis.keys('apikey:*').each do |service|
      if service =~ /:available:/
        begin
          @all[service.gsub('apikey:available:', '')][:available] = $redis.lrange(service, 0, -1)
        rescue
          @all[service.gsub('apikey:available:', '')] = Hash.new
          @all[service.gsub('apikey:available:', '')][:available] = $redis.lrange(service, 0, -1)
        end
      elsif service =~ /:inuse:/
        begin
          @all[service.gsub('apikey:inuse:', '')][:inuse] = $redis.lrange(service, 0, -1)
        rescue
          @all[service.gsub('apikey:inuse:', '')] = Hash.new
          @all[service.gsub('apikey:inuse:', '')][:inuse] = $redis.lrange(service, 0, -1)
        end
      end
    end
    return @all
  end
end