auth_manager 0.0.5 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/auth_manager.gemspec +4 -5
 - data/lib/auth_manager/adder/adder.rb +20 -32
 - data/lib/auth_manager/base.rb +47 -21
 - data/lib/auth_manager/constants.rb +4 -0
 - data/lib/auth_manager/deleter/deleter.rb +5 -13
 - data/lib/auth_manager/finder/finder.rb +21 -7
 - data/lib/auth_manager/updater/updater.rb +21 -16
 - data/lib/auth_manager/validation.rb +84 -0
 - data/lib/auth_manager/version.rb +1 -1
 - data/lib/auth_manager.rb +6 -0
 - data/spec/adder_spec.rb +17 -18
 - data/spec/base_spec.rb +96 -0
 - data/spec/deleter_spec.rb +8 -9
 - data/spec/finder_spec.rb +9 -9
 - data/spec/spec_helper.rb +8 -4
 - data/spec/updater_spec.rb +9 -10
 - data/spec/validation_spec.rb +30 -0
 - metadata +20 -20
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 8825b7ce1e7d3ac6011ecc4746e3e2e3df7f68e9
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: e37e2bf6e29e31cdb4d7d4a82c59c07440cdb2fe
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 1e23db54ef732fd37dfb709ead2eb234d9c0d8cab2cbf13adbfec1d5d89e86a5c9fc734e1326fd3aeaafd50a157dd8f0c28cb906e06c1f257b81293fbc486ca5
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: f896e2a4db283411384db63be883734e72e41dc6551bf9548307365fd658d4ef3dc60d4c601022bc6ae2f684f6f1ca87f8ba5a5f35581dc51e8cd9a2f3d357f2
         
     | 
    
        data/auth_manager.gemspec
    CHANGED
    
    | 
         @@ -18,12 +18,11 @@ Gem::Specification.new do |spec| 
     | 
|
| 
       18 
18 
     | 
    
         
             
              spec.test_files    = spec.files.grep(%r{^(test|spec|features)/})
         
     | 
| 
       19 
19 
     | 
    
         
             
              spec.require_paths = ["lib"]
         
     | 
| 
       20 
20 
     | 
    
         | 
| 
       21 
     | 
    
         
            -
              spec.add_development_dependency "bundler" 
     | 
| 
       22 
     | 
    
         
            -
              spec.add_development_dependency "rake" 
     | 
| 
       23 
     | 
    
         
            -
              spec.add_development_dependency "redis" 
     | 
| 
      
 21 
     | 
    
         
            +
              spec.add_development_dependency "bundler"
         
     | 
| 
      
 22 
     | 
    
         
            +
              spec.add_development_dependency "rake"
         
     | 
| 
      
 23 
     | 
    
         
            +
              spec.add_development_dependency "redis"
         
     | 
| 
       24 
24 
     | 
    
         | 
| 
       25 
25 
     | 
    
         
             
              #(we added) development dependencies
         
     | 
| 
       26 
26 
     | 
    
         
             
              spec.required_ruby_version = ">= 2.0"
         
     | 
| 
       27 
     | 
    
         
            -
              spec.add_development_dependency "rspec" 
     | 
| 
       28 
     | 
    
         
            -
             
     | 
| 
      
 27 
     | 
    
         
            +
              spec.add_development_dependency "rspec"
         
     | 
| 
       29 
28 
     | 
    
         
             
            end
         
     | 
| 
         @@ -1,44 +1,32 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # coding: utf-8
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            require_relative '../base.rb'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require_relative '../constants'
         
     | 
| 
       4 
3 
     | 
    
         | 
| 
       5 
     | 
    
         
            -
            class AuthManager::Adder < AuthManager:: 
     | 
| 
      
 4 
     | 
    
         
            +
            class AuthManager::Adder < AuthManager::Constants
         
     | 
| 
       6 
5 
     | 
    
         | 
| 
       7 
     | 
    
         
            -
              def save?(given_user, option={user: true, app: false})
         
     | 
| 
      
 6 
     | 
    
         
            +
              def self.save?(given_user, option={user: true, app: false})
         
     | 
| 
       8 
7 
     | 
    
         
             
                user = option.fetch(:user) || false
         
     | 
| 
       9 
8 
     | 
    
         
             
                app  = option.fetch(:app) || false
         
     | 
| 
       10 
     | 
    
         
            -
                 
     | 
| 
       11 
     | 
    
         
            -
                 
     | 
| 
      
 9 
     | 
    
         
            +
                response = {}
         
     | 
| 
      
 10 
     | 
    
         
            +
                #section to allow new validation class to work with a hash
         
     | 
| 
      
 11 
     | 
    
         
            +
                hash = hash_format_of(given_user, option)
         
     | 
| 
      
 12 
     | 
    
         
            +
                #end of section
         
     | 
| 
      
 13 
     | 
    
         
            +
                #hash for base redis_sadd
         
     | 
| 
      
 14 
     | 
    
         
            +
                validation_mess = AuthManager::Validation.validate_param( hash )
         
     | 
| 
      
 15 
     | 
    
         
            +
                hash_for_base = { object: hash[:object], list: 'users' } if hash[:option][:user]
         
     | 
| 
      
 16 
     | 
    
         
            +
                hash_for_base = { object: hash[:object], list: 'applications' } if hash[:option][:app]
         
     | 
| 
      
 17 
     | 
    
         
            +
                response = AuthManager::Base.redis_sadd(hash_for_base) if (validation_mess[:code] == 200)
         
     | 
| 
      
 18 
     | 
    
         
            +
                response[:code] == 200 ? true : false
         
     | 
| 
       12 
19 
     | 
    
         
             
              end
         
     | 
| 
       13 
20 
     | 
    
         | 
| 
       14 
21 
     | 
    
         
             
              private ###################################
         
     | 
| 
       15 
22 
     | 
    
         | 
| 
       16 
     | 
    
         
            -
              def  
     | 
| 
       17 
     | 
    
         
            -
                 
     | 
| 
       18 
     | 
    
         
            -
                 
     | 
| 
       19 
     | 
    
         
            -
                 
     | 
| 
       20 
     | 
    
         
            -
                 
     | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
       23 
     | 
    
         
            -
                  if param_json['login'] && login_exist?(member_json['login'], param_json['login'])
         
     | 
| 
       24 
     | 
    
         
            -
                    login_ok = false
         
     | 
| 
       25 
     | 
    
         
            -
                    break
         
     | 
| 
       26 
     | 
    
         
            -
                  end
         
     | 
| 
       27 
     | 
    
         
            -
                end
         
     | 
| 
       28 
     | 
    
         
            -
                login_ok
         
     | 
| 
       29 
     | 
    
         
            -
              end
         
     | 
| 
       30 
     | 
    
         
            -
             
     | 
| 
       31 
     | 
    
         
            -
              def login_exist?(wanted_login, login)
         
     | 
| 
       32 
     | 
    
         
            -
                wanted_login == login
         
     | 
| 
       33 
     | 
    
         
            -
              end
         
     | 
| 
       34 
     | 
    
         
            -
             
     | 
| 
       35 
     | 
    
         
            -
              def save_this(liste, params)
         
     | 
| 
       36 
     | 
    
         
            -
                @redis.sadd(liste, params)
         
     | 
| 
       37 
     | 
    
         
            -
              end
         
     | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
       39 
     | 
    
         
            -
              def save(user, params)
         
     | 
| 
       40 
     | 
    
         
            -
                liste = user ? USERS : APPS
         
     | 
| 
       41 
     | 
    
         
            -
                save_this(liste, params)
         
     | 
| 
      
 23 
     | 
    
         
            +
              def self.hash_format_of(given_user, option)
         
     | 
| 
      
 24 
     | 
    
         
            +
                parsed  = JSON.parse(given_user)
         
     | 
| 
      
 25 
     | 
    
         
            +
                object = {}
         
     | 
| 
      
 26 
     | 
    
         
            +
                object = { login: parsed['login'], password: parsed['password'] } if parsed['login']
         
     | 
| 
      
 27 
     | 
    
         
            +
                object = { api_key: parsed['api_key'] } if parsed['api_key']
         
     | 
| 
      
 28 
     | 
    
         
            +
                object[:deleted] = true if parsed['deleted']
         
     | 
| 
      
 29 
     | 
    
         
            +
                { object: object, option: option }
         
     | 
| 
       42 
30 
     | 
    
         
             
              end
         
     | 
| 
       43 
31 
     | 
    
         | 
| 
       44 
32 
     | 
    
         
             
            end
         
     | 
    
        data/lib/auth_manager/base.rb
    CHANGED
    
    | 
         @@ -1,37 +1,63 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'redis'
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
       1 
3 
     | 
    
         
             
            class AuthManager::Base
         
     | 
| 
       2 
     | 
    
         
            -
              attr_accessor :redis
         
     | 
| 
       3 
4 
     | 
    
         | 
| 
       4 
     | 
    
         
            -
               
     | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
      
 5 
     | 
    
         
            +
              def self.redis_sadd(hash)
         
     | 
| 
      
 6 
     | 
    
         
            +
                validation = hash_of_pair(hash)
         
     | 
| 
      
 7 
     | 
    
         
            +
                added = false
         
     | 
| 
      
 8 
     | 
    
         
            +
                validation[:code] == 200 ? added = Redis.current.sadd(hash[:list], hash[:object].to_json) : (return validation)
         
     | 
| 
      
 9 
     | 
    
         
            +
                added ? {code: 200, message: 'Param saved.'} : { code: 403, message: 'Sorry, This object already exists.'  }
         
     | 
| 
      
 10 
     | 
    
         
            +
              end
         
     | 
| 
       6 
11 
     | 
    
         | 
| 
       7 
     | 
    
         
            -
              def  
     | 
| 
       8 
     | 
    
         
            -
                 
     | 
| 
      
 12 
     | 
    
         
            +
              def self.redis_smembers(hash)
         
     | 
| 
      
 13 
     | 
    
         
            +
                validation = hash_of_single(hash)
         
     | 
| 
      
 14 
     | 
    
         
            +
                found = false
         
     | 
| 
      
 15 
     | 
    
         
            +
                validation[:code] == 200 ? found = Redis.current.smembers(hash[:list]) : (return validation)
         
     | 
| 
      
 16 
     | 
    
         
            +
                found.class == Array ? { code: 200, message: found } : { code: 404, message: 'Param not found!' }
         
     | 
| 
       9 
17 
     | 
    
         
             
              end
         
     | 
| 
       10 
18 
     | 
    
         | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
      
 19 
     | 
    
         
            +
              def self.redis_sismember(hash)
         
     | 
| 
      
 20 
     | 
    
         
            +
                validation = hash_of_pair(hash)
         
     | 
| 
      
 21 
     | 
    
         
            +
                is_member = false
         
     | 
| 
      
 22 
     | 
    
         
            +
                validation[:code] == 200 ? is_member = Redis.current.sismember(hash[:list], hash[:object].to_json) : (return validation)
         
     | 
| 
      
 23 
     | 
    
         
            +
                is_member ? {code: 200, message: 'Param is a member of the given list.'} : { code: 404, message: 'Sorry, param not in the list'  }
         
     | 
| 
      
 24 
     | 
    
         
            +
              end
         
     | 
| 
       12 
25 
     | 
    
         | 
| 
       13 
     | 
    
         
            -
             
     | 
| 
      
 26 
     | 
    
         
            +
              def self.redis_srem(hash)
         
     | 
| 
      
 27 
     | 
    
         
            +
                validation = hash_of_pair(hash)
         
     | 
| 
      
 28 
     | 
    
         
            +
                removed = false
         
     | 
| 
      
 29 
     | 
    
         
            +
                validation[:code] == 200 ? removed = Redis.current.srem(hash[:list], hash[:object].to_json) : (return validation)
         
     | 
| 
      
 30 
     | 
    
         
            +
                removed ? {code: 200, message: 'Param removed.'} : { code: 404, message: 'Sorry, param not in the list, thus not removed'  }
         
     | 
| 
      
 31 
     | 
    
         
            +
              end
         
     | 
| 
       14 
32 
     | 
    
         | 
| 
       15 
     | 
    
         
            -
              def  
     | 
| 
       16 
     | 
    
         
            -
                 
     | 
| 
       17 
     | 
    
         
            -
                 
     | 
| 
       18 
     | 
    
         
            -
                 
     | 
| 
      
 33 
     | 
    
         
            +
              def self.redis_del(hash)
         
     | 
| 
      
 34 
     | 
    
         
            +
                validation = hash_of_single(hash)
         
     | 
| 
      
 35 
     | 
    
         
            +
                deleted = 0
         
     | 
| 
      
 36 
     | 
    
         
            +
                validation[:code] == 200 ? deleted = Redis.current.del(hash[:list]) : (return validation)
         
     | 
| 
      
 37 
     | 
    
         
            +
                deleted != 0 ? {code: 200, message: 'Param deleted.'} : { code: 404, message: 'Sorry, param list not found'  }
         
     | 
| 
       19 
38 
     | 
    
         
             
              end
         
     | 
| 
       20 
39 
     | 
    
         | 
| 
       21 
     | 
    
         
            -
               
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
       23 
     | 
    
         
            -
             
     | 
| 
      
 40 
     | 
    
         
            +
              private #######################################
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
              def self.hash_of_pair(hash)
         
     | 
| 
      
 43 
     | 
    
         
            +
                to_return = {code: 400, message: 'Param is not a hash!'}
         
     | 
| 
      
 44 
     | 
    
         
            +
                if (hash.class == Hash) && (hash.include?(:list) && hash.include?(:object))
         
     | 
| 
      
 45 
     | 
    
         
            +
                  to_return = {code: 200, message: 'Valid hash.'}
         
     | 
| 
      
 46 
     | 
    
         
            +
                elsif (hash.class == Hash)
         
     | 
| 
      
 47 
     | 
    
         
            +
                  to_return = {code: 400, message:'Hash not well formed!'}
         
     | 
| 
       24 
48 
     | 
    
         
             
                end
         
     | 
| 
      
 49 
     | 
    
         
            +
                to_return
         
     | 
| 
       25 
50 
     | 
    
         
             
              end
         
     | 
| 
       26 
51 
     | 
    
         | 
| 
       27 
     | 
    
         
            -
              def  
     | 
| 
       28 
     | 
    
         
            -
                 
     | 
| 
       29 
     | 
    
         
            -
             
     | 
| 
      
 52 
     | 
    
         
            +
              def self.hash_of_single(hash)
         
     | 
| 
      
 53 
     | 
    
         
            +
                to_return = {code: 400, message: 'Param is not a hash!'}
         
     | 
| 
      
 54 
     | 
    
         
            +
                if ((hash.class == Hash) && (hash.include?(:list)))
         
     | 
| 
      
 55 
     | 
    
         
            +
                  to_return = {code: 200, message: 'Valid hash.'}
         
     | 
| 
      
 56 
     | 
    
         
            +
                elsif (hash.class == Hash)
         
     | 
| 
      
 57 
     | 
    
         
            +
                  to_return = {code: 400, message:'Hash not well formed!'}
         
     | 
| 
       30 
58 
     | 
    
         
             
                end
         
     | 
| 
      
 59 
     | 
    
         
            +
                to_return
         
     | 
| 
       31 
60 
     | 
    
         
             
              end
         
     | 
| 
       32 
61 
     | 
    
         | 
| 
       33 
     | 
    
         
            -
              def validate_option(option, user, app)
         
     | 
| 
       34 
     | 
    
         
            -
                false unless option.instance_of?(Hash)
         
     | 
| 
       35 
     | 
    
         
            -
                false if (user && app)
         
     | 
| 
       36 
     | 
    
         
            -
              end
         
     | 
| 
       37 
62 
     | 
    
         
             
            end
         
     | 
| 
      
 63 
     | 
    
         
            +
             
     | 
| 
         @@ -1,22 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # coding: utf-8
         
     | 
| 
       2 
     | 
    
         
            -
            require 'redis'
         
     | 
| 
       3 
     | 
    
         
            -
            require_relative '../base'
         
     | 
| 
       4 
2 
     | 
    
         | 
| 
       5 
     | 
    
         
            -
            class AuthManager::Deleter 
     | 
| 
      
 3 
     | 
    
         
            +
            class AuthManager::Deleter
         
     | 
| 
       6 
4 
     | 
    
         | 
| 
       7 
     | 
    
         
            -
              def delete?(obj_to_del, option)
         
     | 
| 
       8 
     | 
    
         
            -
                 
     | 
| 
       9 
     | 
    
         
            -
                fake_delete?(obj_to_del, new_obj, option)
         
     | 
| 
      
 5 
     | 
    
         
            +
              def self.delete?(obj_to_del, option)
         
     | 
| 
      
 6 
     | 
    
         
            +
                AuthManager::Updater.update(obj_to_del, format_new_obj(obj_to_del), option)
         
     | 
| 
       10 
7 
     | 
    
         
             
              end
         
     | 
| 
       11 
8 
     | 
    
         | 
| 
       12 
     | 
    
         
            -
              private
         
     | 
| 
      
 9 
     | 
    
         
            +
              private ######################
         
     | 
| 
       13 
10 
     | 
    
         | 
| 
       14 
     | 
    
         
            -
              def  
     | 
| 
       15 
     | 
    
         
            -
                updater = AuthManager::Updater.new
         
     | 
| 
       16 
     | 
    
         
            -
                updater.update(obj_to_del, new_obj, option)
         
     | 
| 
       17 
     | 
    
         
            -
              end
         
     | 
| 
       18 
     | 
    
         
            -
             
     | 
| 
       19 
     | 
    
         
            -
              def format_new_obj(obj_to_del)
         
     | 
| 
      
 11 
     | 
    
         
            +
              def self.format_new_obj(obj_to_del)
         
     | 
| 
       20 
12 
     | 
    
         
             
                json_obj = JSON.parse(obj_to_del)
         
     | 
| 
       21 
13 
     | 
    
         
             
                if json_obj['api_key']
         
     | 
| 
       22 
14 
     | 
    
         
             
                  {api_key: json_obj['api_key'], deleted: true  }.to_json
         
     | 
| 
         @@ -1,14 +1,28 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
             
     | 
| 
       2 
     | 
    
         
            -
            require_relative '../base.rb'
         
     | 
| 
      
 1 
     | 
    
         
            +
            class AuthManager::Finder < AuthManager::Constants
         
     | 
| 
       3 
2 
     | 
    
         | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
       6 
     | 
    
         
            -
              def find_object?( param, option )
         
     | 
| 
      
 3 
     | 
    
         
            +
              def self.find_object?( param, option )
         
     | 
| 
       7 
4 
     | 
    
         
             
                user = option.fetch(:user) || false
         
     | 
| 
       8 
5 
     | 
    
         
             
                app = option.fetch(:app) || false
         
     | 
| 
       9 
     | 
    
         
            -
                 
     | 
| 
      
 6 
     | 
    
         
            +
                hash = hash_format_of(param, option)
         
     | 
| 
      
 7 
     | 
    
         
            +
                AuthManager::Validation.validate_param( hash )
         
     | 
| 
       10 
8 
     | 
    
         
             
                liste = user ? USERS : APPS
         
     | 
| 
       11 
     | 
    
         
            -
                 
     | 
| 
      
 9 
     | 
    
         
            +
                hash_for_base = { object: hash[:object], list: 'users' } if hash[:option][:user]
         
     | 
| 
      
 10 
     | 
    
         
            +
                hash_for_base = { object: hash[:object], list: 'applications' } if hash[:option][:app]
         
     | 
| 
      
 11 
     | 
    
         
            +
                response = {}
         
     | 
| 
      
 12 
     | 
    
         
            +
                response = exist?(hash_for_base)
         
     | 
| 
      
 13 
     | 
    
         
            +
                response[:code] == 200 ? true : false
         
     | 
| 
       12 
14 
     | 
    
         
             
              end
         
     | 
| 
       13 
15 
     | 
    
         | 
| 
      
 16 
     | 
    
         
            +
              private #############################
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
              def self.hash_format_of(given_user, option)
         
     | 
| 
      
 19 
     | 
    
         
            +
                object = JSON.parse(given_user)
         
     | 
| 
      
 20 
     | 
    
         
            +
                object = { login: object['login'], password: object['password'] } if object['login']
         
     | 
| 
      
 21 
     | 
    
         
            +
                object = { api_key: object['api_key'] } if object['api_key']
         
     | 
| 
      
 22 
     | 
    
         
            +
                { object: object, option: option }
         
     | 
| 
      
 23 
     | 
    
         
            +
              end
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
              def self.exist?( hash_for_base )
         
     | 
| 
      
 26 
     | 
    
         
            +
                AuthManager::Base.redis_sismember( hash_for_base )
         
     | 
| 
      
 27 
     | 
    
         
            +
              end
         
     | 
| 
       14 
28 
     | 
    
         
             
            end
         
     | 
| 
         @@ -1,31 +1,36 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # coding: utf-8
         
     | 
| 
       2 
     | 
    
         
            -
            require 'redis'
         
     | 
| 
       3 
2 
     | 
    
         
             
            require_relative '../base'
         
     | 
| 
      
 3 
     | 
    
         
            +
            require_relative '../constants'
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
       5 
     | 
    
         
            -
            class AuthManager::Updater < AuthManager:: 
     | 
| 
      
 5 
     | 
    
         
            +
            class AuthManager::Updater < AuthManager::Constants
         
     | 
| 
       6 
6 
     | 
    
         | 
| 
       7 
     | 
    
         
            -
              def update(old_obj, new_obj, option)
         
     | 
| 
       8 
     | 
    
         
            -
                 
     | 
| 
       9 
     | 
    
         
            -
                 
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
      
 7 
     | 
    
         
            +
              def self.update(old_obj, new_obj, option)
         
     | 
| 
      
 8 
     | 
    
         
            +
                updated = false
         
     | 
| 
      
 9 
     | 
    
         
            +
                if AuthManager::Finder.find_object?(old_obj, option)
         
     | 
| 
      
 10 
     | 
    
         
            +
                  if p AuthManager::Adder.save?(new_obj, option)
         
     | 
| 
      
 11 
     | 
    
         
            +
                    updated = delete_obj?(old_obj, option)
         
     | 
| 
      
 12 
     | 
    
         
            +
                  end
         
     | 
| 
      
 13 
     | 
    
         
            +
                end
         
     | 
| 
      
 14 
     | 
    
         
            +
                updated
         
     | 
| 
       11 
15 
     | 
    
         
             
              end
         
     | 
| 
       12 
16 
     | 
    
         | 
| 
       13 
17 
     | 
    
         
             
              private ###########################
         
     | 
| 
       14 
18 
     | 
    
         | 
| 
       15 
     | 
    
         
            -
              def  
     | 
| 
       16 
     | 
    
         
            -
                 
     | 
| 
       17 
     | 
    
         
            -
                 
     | 
| 
      
 19 
     | 
    
         
            +
              def self.hash_format_of(given_user, option)
         
     | 
| 
      
 20 
     | 
    
         
            +
                object = JSON.parse(given_user)
         
     | 
| 
      
 21 
     | 
    
         
            +
                object = { login: object['login'], password: object['password'] } if object['login']
         
     | 
| 
      
 22 
     | 
    
         
            +
                object = { api_key: object['api_key'] } if object['api_key']
         
     | 
| 
      
 23 
     | 
    
         
            +
                { object: object, option: option }
         
     | 
| 
       18 
24 
     | 
    
         
             
              end
         
     | 
| 
       19 
25 
     | 
    
         | 
| 
       20 
     | 
    
         
            -
              def delete_obj?(old_obj, option)
         
     | 
| 
      
 26 
     | 
    
         
            +
              def self.delete_obj?(old_obj, option)
         
     | 
| 
       21 
27 
     | 
    
         
             
                user = option.fetch(:user) || false
         
     | 
| 
       22 
28 
     | 
    
         
             
                liste = user ? USERS : APPS
         
     | 
| 
       23 
     | 
    
         
            -
                 
     | 
| 
       24 
     | 
    
         
            -
             
     | 
| 
       25 
     | 
    
         
            -
             
     | 
| 
       26 
     | 
    
         
            -
             
     | 
| 
       27 
     | 
    
         
            -
                 
     | 
| 
       28 
     | 
    
         
            -
                adder.save?(new_obj, option)
         
     | 
| 
      
 29 
     | 
    
         
            +
                hash = hash_format_of(old_obj, option)
         
     | 
| 
      
 30 
     | 
    
         
            +
                hash_for_base = { object: hash[:object], list: 'users' } if hash[:option][:user]
         
     | 
| 
      
 31 
     | 
    
         
            +
                hash_for_base = { object: hash[:object], list: 'applications' } if hash[:option][:app]
         
     | 
| 
      
 32 
     | 
    
         
            +
                done = AuthManager::Base.redis_srem(hash_for_base)
         
     | 
| 
      
 33 
     | 
    
         
            +
                done[:code] == 200 ? true : false
         
     | 
| 
       29 
34 
     | 
    
         
             
              end
         
     | 
| 
       30 
35 
     | 
    
         | 
| 
       31 
36 
     | 
    
         
             
            end
         
     | 
| 
         @@ -0,0 +1,84 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            class AuthManager::Validation
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
              def self.validate_param(hash)
         
     | 
| 
      
 4 
     | 
    
         
            +
                result = validate_format_of(hash)
         
     | 
| 
      
 5 
     | 
    
         
            +
                result = validate_option(hash[:option]) if result[:code] == 200
         
     | 
| 
      
 6 
     | 
    
         
            +
                return result if (result[:code] == 400)
         
     | 
| 
      
 7 
     | 
    
         
            +
                return result = {code: 400, message: 'Bad object and option association'} unless validate_param_association(hash)
         
     | 
| 
      
 8 
     | 
    
         
            +
                result = user_as_param(hash[:object]) if result[:code] && hash[:option][:user]
         
     | 
| 
      
 9 
     | 
    
         
            +
                result = app_as_param(hash[:object]) if result[:code] && hash[:option][:app]
         
     | 
| 
      
 10 
     | 
    
         
            +
                result
         
     | 
| 
      
 11 
     | 
    
         
            +
              end
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
              private ################################
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
              def self.validate_param_association(hash)
         
     | 
| 
      
 16 
     | 
    
         
            +
                good_association = true
         
     | 
| 
      
 17 
     | 
    
         
            +
                good_association = false if (user_as_param(hash[:object])[:code] == 200) && (hash[:option][:app])
         
     | 
| 
      
 18 
     | 
    
         
            +
                good_association = false if (app_as_param(hash[:object])[:code] == 200) && (hash[:option][:user])
         
     | 
| 
      
 19 
     | 
    
         
            +
                good_association
         
     | 
| 
      
 20 
     | 
    
         
            +
              end
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
              def self.user_as_param(object)
         
     | 
| 
      
 23 
     | 
    
         
            +
                answer = {code: 400, message: 'Object not well formed'}
         
     | 
| 
      
 24 
     | 
    
         
            +
                answer = {code: 400, message: 'Object is not a hash'} unless
         
     | 
| 
      
 25 
     | 
    
         
            +
                          object.is_a?(Hash)
         
     | 
| 
      
 26 
     | 
    
         
            +
                answer = {code: 200, message: 'Object is valid'} if (object_has2keys(object) || object_has3keys(object)) && object_contains_string(object)
         
     | 
| 
      
 27 
     | 
    
         
            +
                answer
         
     | 
| 
      
 28 
     | 
    
         
            +
              end
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
              def self.app_as_param(object)
         
     | 
| 
      
 31 
     | 
    
         
            +
                answer = {code: 400, message: 'Object not well formed'}
         
     | 
| 
      
 32 
     | 
    
         
            +
                answer = {code: 400, message: 'Object is not a hash'} unless
         
     | 
| 
      
 33 
     | 
    
         
            +
                          object.is_a?(Hash)
         
     | 
| 
      
 34 
     | 
    
         
            +
                answer = {code: 200, message: 'Object is valid'} if (object_has1key(object) || object_has2keys(object)) && object_is_string(object)
         
     | 
| 
      
 35 
     | 
    
         
            +
                answer
         
     | 
| 
      
 36 
     | 
    
         
            +
              end
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
              def self.object_has1key(object)
         
     | 
| 
      
 39 
     | 
    
         
            +
                object.include?(:api_key) && (object.length == 1)
         
     | 
| 
      
 40 
     | 
    
         
            +
              end
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
              def self.object_is_string(object)
         
     | 
| 
      
 43 
     | 
    
         
            +
                object[:api_key].is_a?(String) && !object[:api_key].empty?
         
     | 
| 
      
 44 
     | 
    
         
            +
              end
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
              def self.object_has2keys(object)
         
     | 
| 
      
 47 
     | 
    
         
            +
                ((object.include?(:login) && (object.include?(:password)))|| (object.include?(:api_key) && object.include?(:deleted))) && (object.length == 2)
         
     | 
| 
      
 48 
     | 
    
         
            +
              end
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
              def self.object_has3keys(object)
         
     | 
| 
      
 51 
     | 
    
         
            +
                (object.include?(:login) && object.include?(:password) && object.include?(:deleted) && (object.length == 3))
         
     | 
| 
      
 52 
     | 
    
         
            +
              end
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
      
 54 
     | 
    
         
            +
              def self.object_contains_string(object)
         
     | 
| 
      
 55 
     | 
    
         
            +
                object[:login].is_a?(String) && object[:password].is_a?(String) && !object[:login].empty? && !object[:password].empty?
         
     | 
| 
      
 56 
     | 
    
         
            +
              end
         
     | 
| 
      
 57 
     | 
    
         
            +
             
     | 
| 
      
 58 
     | 
    
         
            +
              def self.validate_option(option)
         
     | 
| 
      
 59 
     | 
    
         
            +
                answer = {code: 400, message: 'Option not well formed'}
         
     | 
| 
      
 60 
     | 
    
         
            +
                answer = {code: 400, message: 'Option is not a hash'} unless
         
     | 
| 
      
 61 
     | 
    
         
            +
                          option.is_a?(Hash)
         
     | 
| 
      
 62 
     | 
    
         
            +
                answer = {code: 200, message: 'Option is valid'} if option_has2keys(option) && option_keys_are_bools(option) && only_one_option(option)
         
     | 
| 
      
 63 
     | 
    
         
            +
                answer
         
     | 
| 
      
 64 
     | 
    
         
            +
              end
         
     | 
| 
      
 65 
     | 
    
         
            +
             
     | 
| 
      
 66 
     | 
    
         
            +
              def self.option_has2keys(option)
         
     | 
| 
      
 67 
     | 
    
         
            +
                (option && option.include?(:user) && option.include?(:app) && (option.length == 2))
         
     | 
| 
      
 68 
     | 
    
         
            +
              end
         
     | 
| 
      
 69 
     | 
    
         
            +
             
     | 
| 
      
 70 
     | 
    
         
            +
              def self.option_keys_are_bools(option)
         
     | 
| 
      
 71 
     | 
    
         
            +
                option && (option[:user].is_a?(TrueClass) || option[:user].is_a?(FalseClass)) && (option[:app].is_a?(TrueClass) || option[:app].is_a?(FalseClass))
         
     | 
| 
      
 72 
     | 
    
         
            +
              end
         
     | 
| 
      
 73 
     | 
    
         
            +
             
     | 
| 
      
 74 
     | 
    
         
            +
              def self.only_one_option(option)
         
     | 
| 
      
 75 
     | 
    
         
            +
                (option && option[:user] && ! option[:app]) || (option && !option[:user] && option[:app])
         
     | 
| 
      
 76 
     | 
    
         
            +
              end
         
     | 
| 
      
 77 
     | 
    
         
            +
             
     | 
| 
      
 78 
     | 
    
         
            +
              def self.validate_format_of(hash)
         
     | 
| 
      
 79 
     | 
    
         
            +
                answer = {code: 400, message: 'Param not well formed!'}
         
     | 
| 
      
 80 
     | 
    
         
            +
                answer = {code: 400, message: 'Param not a hash!'} unless hash.is_a?(Hash)
         
     | 
| 
      
 81 
     | 
    
         
            +
                (answer = {code: 200, message: 'Param is valid.'}) if (hash.is_a?(Hash) && hash.include?(:object) && hash.include?(:option))
         
     | 
| 
      
 82 
     | 
    
         
            +
                answer
         
     | 
| 
      
 83 
     | 
    
         
            +
              end
         
     | 
| 
      
 84 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/auth_manager/version.rb
    CHANGED
    
    
    
        data/lib/auth_manager.rb
    CHANGED
    
    | 
         @@ -3,9 +3,15 @@ require 'auth_manager/adder/adder' 
     | 
|
| 
       3 
3 
     | 
    
         
             
            require 'auth_manager/finder/finder'
         
     | 
| 
       4 
4 
     | 
    
         
             
            require 'auth_manager/updater/updater'
         
     | 
| 
       5 
5 
     | 
    
         
             
            require 'auth_manager/deleter/deleter'
         
     | 
| 
      
 6 
     | 
    
         
            +
            require 'auth_manager/base'
         
     | 
| 
      
 7 
     | 
    
         
            +
            require 'auth_manager/validation'
         
     | 
| 
      
 8 
     | 
    
         
            +
            require 'auth_manager/constants'
         
     | 
| 
       6 
9 
     | 
    
         | 
| 
       7 
10 
     | 
    
         
             
            module AuthManager
         
     | 
| 
       8 
11 
     | 
    
         
             
              # Your code goes here...
         
     | 
| 
      
 12 
     | 
    
         
            +
              class Constants
         
     | 
| 
      
 13 
     | 
    
         
            +
              end
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
       9 
15 
     | 
    
         
             
              class Base
         
     | 
| 
       10 
16 
     | 
    
         
             
              end
         
     | 
| 
       11 
17 
     | 
    
         | 
    
        data/spec/adder_spec.rb
    CHANGED
    
    | 
         @@ -1,43 +1,42 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require_relative 'spec_helper'
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            describe  AuthManager::Adder do
         
     | 
| 
       4 
     | 
    
         
            -
              let(:adder) {  AuthManager::Adder.new }
         
     | 
| 
       5 
4 
     | 
    
         
             
              let(:user) { { login: 'nano', password: 'password' } }
         
     | 
| 
       6 
5 
     | 
    
         
             
              let(:app) { { api_key: 'api_key' } }
         
     | 
| 
       7 
6 
     | 
    
         
             
              let(:opt) { {user: false, app: false} }
         
     | 
| 
       8 
7 
     | 
    
         | 
| 
       9 
     | 
    
         
            -
              describe '. 
     | 
| 
       10 
     | 
    
         
            -
                context 'When created' do
         
     | 
| 
       11 
     | 
    
         
            -
                  it { expect( adder.redis).to_not be_nil  }
         
     | 
| 
       12 
     | 
    
         
            -
                end
         
     | 
| 
       13 
     | 
    
         
            -
              end
         
     | 
| 
       14 
     | 
    
         
            -
             
     | 
| 
       15 
     | 
    
         
            -
              describe '#save?' do
         
     | 
| 
      
 8 
     | 
    
         
            +
              describe '.save?' do
         
     | 
| 
       16 
9 
     | 
    
         
             
                #cleaning valid_user and or valid app before new save
         
     | 
| 
       17 
10 
     | 
    
         
             
                before(:each) do
         
     | 
| 
       18 
     | 
    
         
            -
                    
     | 
| 
       19 
     | 
    
         
            -
                    
     | 
| 
      
 11 
     | 
    
         
            +
                   AuthManager::Base.redis_del({ list: 'users' })
         
     | 
| 
      
 12 
     | 
    
         
            +
                   AuthManager::Base.redis_del({ list: 'applications' })
         
     | 
| 
       20 
13 
     | 
    
         
             
                end
         
     | 
| 
       21 
14 
     | 
    
         
             
                #normal cases
         
     | 
| 
       22 
15 
     | 
    
         
             
                context 'When saved a valid user' do
         
     | 
| 
       23 
16 
     | 
    
         
             
                  it {
         
     | 
| 
       24 
17 
     | 
    
         
             
                    swap_option_to('user')
         
     | 
| 
       25 
     | 
    
         
            -
                    expect(  
     | 
| 
      
 18 
     | 
    
         
            +
                    expect( AuthManager::Adder.save?(user.to_json, opt)).to be_true
         
     | 
| 
       26 
19 
     | 
    
         
             
                  }
         
     | 
| 
       27 
20 
     | 
    
         
             
                end
         
     | 
| 
       28 
21 
     | 
    
         
             
                context 'When saved a valid app' do
         
     | 
| 
       29 
22 
     | 
    
         
             
                  it {
         
     | 
| 
       30 
23 
     | 
    
         
             
                    swap_option_to('app')
         
     | 
| 
       31 
     | 
    
         
            -
                    expect(  
     | 
| 
      
 24 
     | 
    
         
            +
                    expect( AuthManager::Adder.save?(app.to_json, opt)).to be_true
         
     | 
| 
       32 
25 
     | 
    
         
             
                  }
         
     | 
| 
       33 
26 
     | 
    
         
             
                end
         
     | 
| 
       34 
27 
     | 
    
         
             
                context 'When saved with an existing login' do
         
     | 
| 
       35 
     | 
    
         
            -
                  it  
     | 
| 
       36 
     | 
    
         
            -
                     
     | 
| 
       37 
     | 
    
         
            -
                    expect(  
     | 
| 
       38 
     | 
    
         
            -
                    user 
     | 
| 
       39 
     | 
    
         
            -
             
     | 
| 
       40 
     | 
    
         
            -
             
     | 
| 
      
 28 
     | 
    
         
            +
                  it do
         
     | 
| 
      
 29 
     | 
    
         
            +
                    swap_option_to('user')
         
     | 
| 
      
 30 
     | 
    
         
            +
                    expect( AuthManager::Adder.save?(user.to_json, opt) ).to be_true
         
     | 
| 
      
 31 
     | 
    
         
            +
                    expect( AuthManager::Adder.save?(user.to_json, opt)).to be_false
         
     | 
| 
      
 32 
     | 
    
         
            +
                  end
         
     | 
| 
      
 33 
     | 
    
         
            +
                end
         
     | 
| 
      
 34 
     | 
    
         
            +
                context 'When saving an existing api_key' do
         
     | 
| 
      
 35 
     | 
    
         
            +
                  it do
         
     | 
| 
      
 36 
     | 
    
         
            +
                    swap_option_to('app')
         
     | 
| 
      
 37 
     | 
    
         
            +
                    expect( AuthManager::Adder.save?(app.to_json, opt) ).to be_true
         
     | 
| 
      
 38 
     | 
    
         
            +
                    expect( AuthManager::Adder.save?(app.to_json, opt) ).to be_false
         
     | 
| 
      
 39 
     | 
    
         
            +
                  end
         
     | 
| 
       41 
40 
     | 
    
         
             
                end
         
     | 
| 
       42 
41 
     | 
    
         
             
              end
         
     | 
| 
       43 
42 
     | 
    
         | 
    
        data/spec/base_spec.rb
    ADDED
    
    | 
         @@ -0,0 +1,96 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # coding: utf-8
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            require_relative 'spec_helper'
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            describe AuthManager::Base do
         
     | 
| 
      
 6 
     | 
    
         
            +
              before(:each)do
         
     | 
| 
      
 7 
     | 
    
         
            +
                AuthManager::Base.redis_del({list: 'my_list'})
         
     | 
| 
      
 8 
     | 
    
         
            +
                AuthManager::Base.redis_del({list: ''})
         
     | 
| 
      
 9 
     | 
    
         
            +
              end
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
              describe '.redis_sadd' do
         
     | 
| 
      
 12 
     | 
    
         
            +
                context 'When given an object different from a hash' do
         
     | 
| 
      
 13 
     | 
    
         
            +
                  it { expect(AuthManager::Base.redis_sadd(nil)[:code]).to eq(400) }
         
     | 
| 
      
 14 
     | 
    
         
            +
                  it { expect(AuthManager::Base.redis_sadd([])[:code]).to eq(400) }
         
     | 
| 
      
 15 
     | 
    
         
            +
                  it { expect(AuthManager::Base.redis_sadd('')[:code]).to eq(400) }
         
     | 
| 
      
 16 
     | 
    
         
            +
                  it { expect(AuthManager::Base.redis_sadd(1524)[:code]).to eq(400) }
         
     | 
| 
      
 17 
     | 
    
         
            +
                  it { expect(AuthManager::Base.redis_sadd(true)[:code]).to eq(400) }
         
     | 
| 
      
 18 
     | 
    
         
            +
                end
         
     | 
| 
      
 19 
     | 
    
         
            +
                context 'when given a bad hash' do
         
     | 
| 
      
 20 
     | 
    
         
            +
                  it { expect(AuthManager::Base.redis_sadd({})[:code]).to eq(400) }
         
     | 
| 
      
 21 
     | 
    
         
            +
                  it { expect(AuthManager::Base.redis_sadd({nest: ''})[:code]).to eq(400) }
         
     | 
| 
      
 22 
     | 
    
         
            +
                  it { expect(AuthManager::Base.redis_sadd({t: 12, a: 'fe', aa: true})[:code]).to eq(400) }
         
     | 
| 
      
 23 
     | 
    
         
            +
                end
         
     | 
| 
      
 24 
     | 
    
         
            +
                context 'When given a correct hash' do
         
     | 
| 
      
 25 
     | 
    
         
            +
                  it { expect(AuthManager::Base.redis_sadd({list: 'my_list', object: 'my_object'})[:code]).to eq(200) }
         
     | 
| 
      
 26 
     | 
    
         
            +
                end
         
     | 
| 
      
 27 
     | 
    
         
            +
                context 'When given another correct hash' do
         
     | 
| 
      
 28 
     | 
    
         
            +
                  it { expect(AuthManager::Base.redis_sadd({list: 'my_list', object: 'my_object'})[:code]).to eq(200) }
         
     | 
| 
      
 29 
     | 
    
         
            +
                end
         
     | 
| 
      
 30 
     | 
    
         
            +
                context 'When saving an existing object' do
         
     | 
| 
      
 31 
     | 
    
         
            +
                  it do
         
     | 
| 
      
 32 
     | 
    
         
            +
                    expect(AuthManager::Base.redis_sadd({list: 'my_list', object: 'my_object'})[:code]).to eq(200)
         
     | 
| 
      
 33 
     | 
    
         
            +
                    expect(AuthManager::Base.redis_sadd({list: 'my_list', object: 'my_object'})[:code]).to eq(403)
         
     | 
| 
      
 34 
     | 
    
         
            +
                  end
         
     | 
| 
      
 35 
     | 
    
         
            +
                end
         
     | 
| 
      
 36 
     | 
    
         
            +
                context 'When given a random list and object in the hash' do
         
     | 
| 
      
 37 
     | 
    
         
            +
                  it { expect(AuthManager::Base.redis_sadd({list: g_rand_string, object: g_rand_string})[:code]).to eq(200) }
         
     | 
| 
      
 38 
     | 
    
         
            +
                end
         
     | 
| 
      
 39 
     | 
    
         
            +
              end
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
              describe '.redis_smembers' do
         
     | 
| 
      
 42 
     | 
    
         
            +
                context 'When given an invalid hash' do
         
     | 
| 
      
 43 
     | 
    
         
            +
                  it { expect(AuthManager::Base.redis_smembers({})[:code]).to eq(400) }
         
     | 
| 
      
 44 
     | 
    
         
            +
                  it { expect(AuthManager::Base.redis_smembers({nest: ''})[:code]).to eq(400) }
         
     | 
| 
      
 45 
     | 
    
         
            +
                  it { expect(AuthManager::Base.redis_smembers({t: 12, a: 'fe', aa: true})[:code]).to eq(400) }
         
     | 
| 
      
 46 
     | 
    
         
            +
                end
         
     | 
| 
      
 47 
     | 
    
         
            +
                context 'when given list name in a hash' do
         
     | 
| 
      
 48 
     | 
    
         
            +
                  it { expect(AuthManager::Base.redis_smembers({list: 'my_list'})[:message].class).to eq(Array) }
         
     | 
| 
      
 49 
     | 
    
         
            +
                end
         
     | 
| 
      
 50 
     | 
    
         
            +
                context 'When the list is not in the DB, length is 0' do
         
     | 
| 
      
 51 
     | 
    
         
            +
                  it { expect(AuthManager::Base.redis_smembers({list: 'my_list'})[:message].length).to eq(0) }
         
     | 
| 
      
 52 
     | 
    
         
            +
                end
         
     | 
| 
      
 53 
     | 
    
         
            +
                context 'When the list has at least one element, lenght > 0' do
         
     | 
| 
      
 54 
     | 
    
         
            +
                  it do
         
     | 
| 
      
 55 
     | 
    
         
            +
                    expect(AuthManager::Base.redis_sadd({ list: 'my_list', object: 'my_object' })).to be_true
         
     | 
| 
      
 56 
     | 
    
         
            +
                    expect(AuthManager::Base.redis_smembers({ list: 'my_list' })[:message].length).to be > 0
         
     | 
| 
      
 57 
     | 
    
         
            +
                  end
         
     | 
| 
      
 58 
     | 
    
         
            +
                end
         
     | 
| 
      
 59 
     | 
    
         
            +
              end
         
     | 
| 
      
 60 
     | 
    
         
            +
             
     | 
| 
      
 61 
     | 
    
         
            +
              describe '.redis_sismember' do
         
     | 
| 
      
 62 
     | 
    
         
            +
                context 'When the object is in the list' do
         
     | 
| 
      
 63 
     | 
    
         
            +
                  it 'expect sismember to return 200' do
         
     | 
| 
      
 64 
     | 
    
         
            +
                    expect( AuthManager::Base.redis_sadd({list: nil, object: nil})[:code] ).to eq(200)
         
     | 
| 
      
 65 
     | 
    
         
            +
                    expect( AuthManager::Base.redis_sismember({list: nil, object: nil})[:code]).to eq(200)
         
     | 
| 
      
 66 
     | 
    
         
            +
                  end
         
     | 
| 
      
 67 
     | 
    
         
            +
                end
         
     | 
| 
      
 68 
     | 
    
         
            +
                context 'When object is not in the list' do
         
     | 
| 
      
 69 
     | 
    
         
            +
                  it { expect( AuthManager::Base.redis_sismember({list: '', object: ''})[:code] ).to eq(404) }
         
     | 
| 
      
 70 
     | 
    
         
            +
                end
         
     | 
| 
      
 71 
     | 
    
         
            +
              end
         
     | 
| 
      
 72 
     | 
    
         
            +
             
     | 
| 
      
 73 
     | 
    
         
            +
              describe '.redis_srem' do
         
     | 
| 
      
 74 
     | 
    
         
            +
                context 'When the object is removed' do
         
     | 
| 
      
 75 
     | 
    
         
            +
                  it do
         
     | 
| 
      
 76 
     | 
    
         
            +
                    expect(AuthManager::Base.redis_sadd({list: 'my_list', object: 'my_object'})[:code]).to eq(200)
         
     | 
| 
      
 77 
     | 
    
         
            +
                    expect( AuthManager::Base.redis_srem({list: 'my_list', object: 'my_object'})[:code] ).to eq(200)
         
     | 
| 
      
 78 
     | 
    
         
            +
                  end
         
     | 
| 
      
 79 
     | 
    
         
            +
                end
         
     | 
| 
      
 80 
     | 
    
         
            +
                context 'When the object is not in the list' do
         
     | 
| 
      
 81 
     | 
    
         
            +
                  it { expect( AuthManager::Base.redis_srem({list: 'my_list', object: 'my_object'})[:code] ).to eq(404) }
         
     | 
| 
      
 82 
     | 
    
         
            +
                end
         
     | 
| 
      
 83 
     | 
    
         
            +
              end
         
     | 
| 
      
 84 
     | 
    
         
            +
             
     | 
| 
      
 85 
     | 
    
         
            +
              describe '.redis_del' do
         
     | 
| 
      
 86 
     | 
    
         
            +
                context 'When the list is deleted' do
         
     | 
| 
      
 87 
     | 
    
         
            +
                  it do
         
     | 
| 
      
 88 
     | 
    
         
            +
                    expect(AuthManager::Base.redis_sadd({list: 'my_list', object: 'my_object'})[:code]).to eq(200)
         
     | 
| 
      
 89 
     | 
    
         
            +
                    expect( AuthManager::Base.redis_del({list: 'my_list'})[:code] ).to eq(200)
         
     | 
| 
      
 90 
     | 
    
         
            +
                  end
         
     | 
| 
      
 91 
     | 
    
         
            +
                end
         
     | 
| 
      
 92 
     | 
    
         
            +
                context 'When the list is not deleted' do
         
     | 
| 
      
 93 
     | 
    
         
            +
                  it { expect( AuthManager::Base.redis_del({list: 'my_list'})[:code] ).to eq(404) }
         
     | 
| 
      
 94 
     | 
    
         
            +
                end
         
     | 
| 
      
 95 
     | 
    
         
            +
              end
         
     | 
| 
      
 96 
     | 
    
         
            +
            end
         
     | 
    
        data/spec/deleter_spec.rb
    CHANGED
    
    | 
         @@ -1,23 +1,22 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require_relative 'spec_helper'
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            describe  AuthManager::Deleter do
         
     | 
| 
       4 
     | 
    
         
            -
              let(:deleter) {  AuthManager::Deleter.new  }
         
     | 
| 
       5 
4 
     | 
    
         
             
              let(:user) { {login: 'login', password: 'password'} }
         
     | 
| 
       6 
5 
     | 
    
         
             
              let(:app) { {api_key: 'api_key'} }
         
     | 
| 
       7 
6 
     | 
    
         
             
              let(:opt) { { user: false, app: true }  }
         
     | 
| 
       8 
7 
     | 
    
         
             
              describe '#delete' do
         
     | 
| 
       9 
8 
     | 
    
         
             
                before(:each) do
         
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
     | 
    
         
            -
             
     | 
| 
       13 
     | 
    
         
            -
             
     | 
| 
      
 9 
     | 
    
         
            +
                  AuthManager::Base.redis_del({ list: 'users' })
         
     | 
| 
      
 10 
     | 
    
         
            +
                  AuthManager::Base.redis_del({ list: 'applications' })
         
     | 
| 
      
 11 
     | 
    
         
            +
                  AuthManager::Base.redis_sadd( { object: user, list: 'users'} )
         
     | 
| 
      
 12 
     | 
    
         
            +
                  AuthManager::Base.redis_sadd({ object: app, list: 'applications' })
         
     | 
| 
       14 
13 
     | 
    
         
             
                end
         
     | 
| 
       15 
14 
     | 
    
         | 
| 
       16 
15 
     | 
    
         
             
                context 'When  deleted a user' do
         
     | 
| 
       17 
16 
     | 
    
         
             
                  it {
         
     | 
| 
       18 
17 
     | 
    
         
             
                    swap_option_to('user')
         
     | 
| 
       19 
18 
     | 
    
         
             
                    user[:login] = 'login'
         
     | 
| 
       20 
     | 
    
         
            -
                    expect(  
     | 
| 
      
 19 
     | 
    
         
            +
                    expect( AuthManager::Deleter.delete?(user.to_json, opt)).to be_true
         
     | 
| 
       21 
20 
     | 
    
         
             
                  }
         
     | 
| 
       22 
21 
     | 
    
         
             
                end
         
     | 
| 
       23 
22 
     | 
    
         | 
| 
         @@ -25,14 +24,14 @@ describe  AuthManager::Deleter do 
     | 
|
| 
       25 
24 
     | 
    
         
             
                  it {
         
     | 
| 
       26 
25 
     | 
    
         
             
                    swap_option_to('user')
         
     | 
| 
       27 
26 
     | 
    
         
             
                    user[:login] = 'not a login'
         
     | 
| 
       28 
     | 
    
         
            -
                    expect(  
     | 
| 
      
 27 
     | 
    
         
            +
                    expect( AuthManager::Deleter.delete?(user.to_json, opt)).to be_false
         
     | 
| 
       29 
28 
     | 
    
         
             
                  }
         
     | 
| 
       30 
29 
     | 
    
         
             
                end
         
     | 
| 
       31 
30 
     | 
    
         
             
                context 'When  deleted an app' do
         
     | 
| 
       32 
31 
     | 
    
         
             
                  it {
         
     | 
| 
       33 
32 
     | 
    
         
             
                    swap_option_to('app')
         
     | 
| 
       34 
33 
     | 
    
         
             
                    app[:api_key] = 'api_key'
         
     | 
| 
       35 
     | 
    
         
            -
                    expect(  
     | 
| 
      
 34 
     | 
    
         
            +
                    expect( AuthManager::Deleter.delete?(app.to_json, opt)).to be_true
         
     | 
| 
       36 
35 
     | 
    
         
             
                  }
         
     | 
| 
       37 
36 
     | 
    
         
             
                end
         
     | 
| 
       38 
37 
     | 
    
         | 
| 
         @@ -40,7 +39,7 @@ describe  AuthManager::Deleter do 
     | 
|
| 
       40 
39 
     | 
    
         
             
                  it {
         
     | 
| 
       41 
40 
     | 
    
         
             
                    swap_option_to('app')
         
     | 
| 
       42 
41 
     | 
    
         
             
                    app[:api_key] = 'not an api_key'
         
     | 
| 
       43 
     | 
    
         
            -
                    expect(  
     | 
| 
      
 42 
     | 
    
         
            +
                    expect( AuthManager::Deleter.delete?(app.to_json, opt)).to be_false
         
     | 
| 
       44 
43 
     | 
    
         
             
                  }
         
     | 
| 
       45 
44 
     | 
    
         
             
                end
         
     | 
| 
       46 
45 
     | 
    
         
             
              end
         
     | 
    
        data/spec/finder_spec.rb
    CHANGED
    
    | 
         @@ -1,42 +1,42 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # coding: utf-8
         
     | 
| 
       1 
2 
     | 
    
         
             
            require_relative 'spec_helper'
         
     | 
| 
       2 
3 
     | 
    
         | 
| 
       3 
4 
     | 
    
         
             
            describe AuthManager::Finder do
         
     | 
| 
       4 
     | 
    
         
            -
              let(:finder) { AuthManager::Finder.new }
         
     | 
| 
       5 
5 
     | 
    
         
             
              let(:user) { { login: 'login', password: 'password' }}
         
     | 
| 
       6 
6 
     | 
    
         
             
              let(:app) { { api_key: 'api_key'  } }
         
     | 
| 
       7 
7 
     | 
    
         
             
              let(:opt) { { user: true, app: false }  }
         
     | 
| 
       8 
8 
     | 
    
         
             
              describe '#find_object?' do
         
     | 
| 
       9 
9 
     | 
    
         
             
                before(:each) do
         
     | 
| 
       10 
     | 
    
         
            -
                   
     | 
| 
       11 
     | 
    
         
            -
                   
     | 
| 
       12 
     | 
    
         
            -
                   
     | 
| 
       13 
     | 
    
         
            -
                   
     | 
| 
      
 10 
     | 
    
         
            +
                  AuthManager::Base.redis_del({ list: 'users' })
         
     | 
| 
      
 11 
     | 
    
         
            +
                  AuthManager::Base.redis_del({ list: 'applications' })
         
     | 
| 
      
 12 
     | 
    
         
            +
                  AuthManager::Base.redis_sadd( { object: user, list: 'users'} )
         
     | 
| 
      
 13 
     | 
    
         
            +
                  AuthManager::Base.redis_sadd({ object: app, list: 'applications' })
         
     | 
| 
       14 
14 
     | 
    
         
             
                end
         
     | 
| 
       15 
15 
     | 
    
         
             
                context 'When user is found' do
         
     | 
| 
       16 
16 
     | 
    
         
             
                  it {
         
     | 
| 
       17 
17 
     | 
    
         
             
                    swap_option_to('user')
         
     | 
| 
       18 
     | 
    
         
            -
                    expect(  
     | 
| 
      
 18 
     | 
    
         
            +
                    expect( AuthManager::Finder.find_object?(user.to_json, opt ) ).to be_true
         
     | 
| 
       19 
19 
     | 
    
         
             
                  }
         
     | 
| 
       20 
20 
     | 
    
         
             
                end
         
     | 
| 
       21 
21 
     | 
    
         
             
                context 'When user is not found' do
         
     | 
| 
       22 
22 
     | 
    
         
             
                  it {
         
     | 
| 
       23 
23 
     | 
    
         
             
                    swap_option_to('user')
         
     | 
| 
       24 
24 
     | 
    
         
             
                    user[:login] = 'not a login'
         
     | 
| 
       25 
     | 
    
         
            -
                    expect(  
     | 
| 
      
 25 
     | 
    
         
            +
                    expect( AuthManager::Finder.find_object?( user.to_json, opt )  ).to be_false
         
     | 
| 
       26 
26 
     | 
    
         
             
                  }
         
     | 
| 
       27 
27 
     | 
    
         
             
                end
         
     | 
| 
       28 
28 
     | 
    
         | 
| 
       29 
29 
     | 
    
         
             
                context 'When app is found' do
         
     | 
| 
       30 
30 
     | 
    
         
             
                  it {
         
     | 
| 
       31 
31 
     | 
    
         
             
                    swap_option_to('app')
         
     | 
| 
       32 
     | 
    
         
            -
                    expect(  
     | 
| 
      
 32 
     | 
    
         
            +
                    expect( AuthManager::Finder.find_object?(app.to_json, opt ) ).to be_true
         
     | 
| 
       33 
33 
     | 
    
         
             
                  }
         
     | 
| 
       34 
34 
     | 
    
         
             
                end
         
     | 
| 
       35 
35 
     | 
    
         
             
                context 'When app is not found' do
         
     | 
| 
       36 
36 
     | 
    
         
             
                  it {
         
     | 
| 
       37 
37 
     | 
    
         
             
                    swap_option_to('app')
         
     | 
| 
       38 
38 
     | 
    
         
             
                    app[:api_key] = 'not an api_key'
         
     | 
| 
       39 
     | 
    
         
            -
                    expect(  
     | 
| 
      
 39 
     | 
    
         
            +
                    expect( AuthManager::Finder.find_object?( app.to_json, opt )  ).to be_false
         
     | 
| 
       40 
40 
     | 
    
         
             
                  }
         
     | 
| 
       41 
41 
     | 
    
         
             
                end
         
     | 
| 
       42 
42 
     | 
    
         
             
              end
         
     | 
    
        data/spec/spec_helper.rb
    CHANGED
    
    | 
         @@ -1,9 +1,13 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require_relative './fixtures/environment'
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
      
 3 
     | 
    
         
            +
            def g_rand_string
         
     | 
| 
      
 4 
     | 
    
         
            +
              a = []
         
     | 
| 
      
 5 
     | 
    
         
            +
              ('32'..'127').to_a.each { |e| a << e.to_i.chr }
         
     | 
| 
      
 6 
     | 
    
         
            +
              (0..10).map{ [rand(a.length)] }.join
         
     | 
| 
      
 7 
     | 
    
         
            +
            end
         
     | 
| 
       3 
8 
     | 
    
         | 
| 
       4 
9 
     | 
    
         
             
            def swap_option_to(list)
         
     | 
| 
       5 
     | 
    
         
            -
               
     | 
| 
       6 
     | 
    
         
            -
              when 'user'
         
     | 
| 
      
 10 
     | 
    
         
            +
              if list == 'user'
         
     | 
| 
       7 
11 
     | 
    
         
             
                opt[:user] = true
         
     | 
| 
       8 
12 
     | 
    
         
             
                opt[:app] = false
         
     | 
| 
       9 
13 
     | 
    
         
             
              else
         
     | 
| 
         @@ -13,8 +17,8 @@ def swap_option_to(list) 
     | 
|
| 
       13 
17 
     | 
    
         
             
            end
         
     | 
| 
       14 
18 
     | 
    
         | 
| 
       15 
19 
     | 
    
         
             
            def new_object_from(object)
         
     | 
| 
       16 
     | 
    
         
            -
               
     | 
| 
       17 
     | 
    
         
            -
             
     | 
| 
      
 20 
     | 
    
         
            +
              if object.include?(:login)
         
     | 
| 
      
 21 
     | 
    
         
            +
                object[:login] = 'new login'
         
     | 
| 
       18 
22 
     | 
    
         
             
                object[:password] = 'new password'
         
     | 
| 
       19 
23 
     | 
    
         
             
              else
         
     | 
| 
       20 
24 
     | 
    
         
             
                object[:api_key] = 'new api_key'
         
     | 
    
        data/spec/updater_spec.rb
    CHANGED
    
    | 
         @@ -2,41 +2,40 @@ 
     | 
|
| 
       2 
2 
     | 
    
         
             
            require_relative  'spec_helper'
         
     | 
| 
       3 
3 
     | 
    
         | 
| 
       4 
4 
     | 
    
         
             
            describe AuthManager::Updater do
         
     | 
| 
       5 
     | 
    
         
            -
              let(:updater) { AuthManager::Updater.new }
         
     | 
| 
       6 
5 
     | 
    
         
             
              let(:app) { { api_key: 'api_key' } }
         
     | 
| 
       7 
6 
     | 
    
         
             
              let(:user) { { login: 'login', password: 'password' }}
         
     | 
| 
       8 
7 
     | 
    
         
             
              let(:opt) { { user: true, app: false } }
         
     | 
| 
       9 
8 
     | 
    
         
             
              describe '#update' do
         
     | 
| 
       10 
9 
     | 
    
         
             
                before(:each) do
         
     | 
| 
       11 
     | 
    
         
            -
                   
     | 
| 
       12 
     | 
    
         
            -
                   
     | 
| 
       13 
     | 
    
         
            -
                   
     | 
| 
       14 
     | 
    
         
            -
                   
     | 
| 
      
 10 
     | 
    
         
            +
                  AuthManager::Base.redis_del({ list: 'users' })
         
     | 
| 
      
 11 
     | 
    
         
            +
                  AuthManager::Base.redis_del({ list: 'applications' })
         
     | 
| 
      
 12 
     | 
    
         
            +
                  AuthManager::Base.redis_sadd( { object: user, list: 'users'} )
         
     | 
| 
      
 13 
     | 
    
         
            +
                  AuthManager::Base.redis_sadd({ object: app, list: 'applications' })
         
     | 
| 
       15 
14 
     | 
    
         
             
                end
         
     | 
| 
       16 
15 
     | 
    
         
             
                context 'When user object is updated' do
         
     | 
| 
       17 
16 
     | 
    
         
             
                  it {
         
     | 
| 
       18 
17 
     | 
    
         
             
                    swap_option_to('user')
         
     | 
| 
       19 
     | 
    
         
            -
                    expect( 
     | 
| 
      
 18 
     | 
    
         
            +
                    expect(AuthManager::Updater.update(user.to_json, new_object_from(user).to_json, opt)).to be_true
         
     | 
| 
       20 
19 
     | 
    
         
             
                  }
         
     | 
| 
       21 
20 
     | 
    
         
             
                end
         
     | 
| 
       22 
21 
     | 
    
         
             
                context 'When app object is updated' do
         
     | 
| 
       23 
22 
     | 
    
         
             
                  it {
         
     | 
| 
       24 
23 
     | 
    
         
             
                    swap_option_to('app')
         
     | 
| 
       25 
     | 
    
         
            -
                    expect( 
     | 
| 
      
 24 
     | 
    
         
            +
                    expect(AuthManager::Updater.update(app.to_json, new_object_from(app).to_json, opt)).to be_true
         
     | 
| 
       26 
25 
     | 
    
         
             
                  }
         
     | 
| 
       27 
26 
     | 
    
         
             
                end
         
     | 
| 
       28 
27 
     | 
    
         
             
                context 'When user object is not updated' do
         
     | 
| 
       29 
28 
     | 
    
         
             
                  it {
         
     | 
| 
       30 
29 
     | 
    
         
             
                    swap_option_to('user')
         
     | 
| 
       31 
     | 
    
         
            -
                    user[:login] = 'not a login'
         
     | 
| 
       32 
     | 
    
         
            -
                    expect( 
     | 
| 
      
 30 
     | 
    
         
            +
                    user[:login] = 'this is not a login'
         
     | 
| 
      
 31 
     | 
    
         
            +
                    expect(AuthManager::Updater.update(user.to_json, new_object_from(user).to_json, opt)).to be_false
         
     | 
| 
       33 
32 
     | 
    
         
             
                  }
         
     | 
| 
       34 
33 
     | 
    
         
             
                end
         
     | 
| 
       35 
34 
     | 
    
         
             
                context 'When app object is not updated' do
         
     | 
| 
       36 
35 
     | 
    
         
             
                  it {
         
     | 
| 
       37 
36 
     | 
    
         
             
                    swap_option_to('app')
         
     | 
| 
       38 
37 
     | 
    
         
             
                    app[:api_key] = 'not an api_key'
         
     | 
| 
       39 
     | 
    
         
            -
                    expect( 
     | 
| 
      
 38 
     | 
    
         
            +
                    expect(AuthManager::Updater.update(app.to_json, new_object_from(app).to_json, opt)).to be_false
         
     | 
| 
       40 
39 
     | 
    
         
             
                  }
         
     | 
| 
       41 
40 
     | 
    
         
             
                end
         
     | 
| 
       42 
41 
     | 
    
         
             
              end
         
     | 
| 
         @@ -0,0 +1,30 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require_relative 'spec_helper'
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            describe AuthManager::Validation do
         
     | 
| 
      
 4 
     | 
    
         
            +
              describe '.validate_param' do
         
     | 
| 
      
 5 
     | 
    
         
            +
                context 'When given something different from a hash' do
         
     | 
| 
      
 6 
     | 
    
         
            +
                 it { expect(AuthManager::Validation.validate_param(nil)[:code]).to eq(400) }
         
     | 
| 
      
 7 
     | 
    
         
            +
                 it { expect(AuthManager::Validation.validate_param('')[:code]).to eq(400) }
         
     | 
| 
      
 8 
     | 
    
         
            +
                 it { expect(AuthManager::Validation.validate_param([])[:code]).to eq(400) }
         
     | 
| 
      
 9 
     | 
    
         
            +
                 it { expect(AuthManager::Validation.validate_param(152)[:code]).to eq(400) }
         
     | 
| 
      
 10 
     | 
    
         
            +
                end
         
     | 
| 
      
 11 
     | 
    
         
            +
                context 'When given a bad formed hash' do
         
     | 
| 
      
 12 
     | 
    
         
            +
                  it { expect(AuthManager::Validation.validate_param({})[:code]).to eq(400) }
         
     | 
| 
      
 13 
     | 
    
         
            +
                  it { expect(AuthManager::Validation.validate_param({ob: ''})[:code]).to eq(400) }
         
     | 
| 
      
 14 
     | 
    
         
            +
                  it { expect(AuthManager::Validation.validate_param({ob: '', op: ''})[:code]).to eq(400) }
         
     | 
| 
      
 15 
     | 
    
         
            +
                  it { expect(AuthManager::Validation.validate_param({object: '', op: ''})[:code]).to eq(400) }
         
     | 
| 
      
 16 
     | 
    
         
            +
                  it { expect(AuthManager::Validation.validate_param({object: nil, option: nil})[:code]).to eq(400) }
         
     | 
| 
      
 17 
     | 
    
         
            +
                  it { expect(AuthManager::Validation.validate_param({object: {name: nil}, option: {user: nil}})[:code]).to eq(400) }
         
     | 
| 
      
 18 
     | 
    
         
            +
                  it { expect(AuthManager::Validation.validate_param({object: {login: '', password: ''}, option: {user: true, app: true}})[:code]).to eq(400) }
         
     | 
| 
      
 19 
     | 
    
         
            +
                  it { expect(AuthManager::Validation.validate_param({object: {login: '', password: ''}, option: {user: true, app: false}})[:code]).to eq(400) }
         
     | 
| 
      
 20 
     | 
    
         
            +
                  it { expect(AuthManager::Validation.validate_param({object: {api_key: ''}, option: {user: true, app: false}})[:code]).to eq(400) }
         
     | 
| 
      
 21 
     | 
    
         
            +
                  it { expect(AuthManager::Validation.validate_param({object: {api_key: ''}, option: {user: false, app: true}})[:code]).to eq(400) }
         
     | 
| 
      
 22 
     | 
    
         
            +
                  it { expect(AuthManager::Validation.validate_param({object: {login: 'my_login', password: 'my_password'}, option: { user: false, app: true }})[:code]).to eq(400) }
         
     | 
| 
      
 23 
     | 
    
         
            +
                  it { expect(AuthManager::Validation.validate_param({object: {api_key: 'api_key'}, option: { user: true, app: false }})[:code]).to eq(400) }
         
     | 
| 
      
 24 
     | 
    
         
            +
                end
         
     | 
| 
      
 25 
     | 
    
         
            +
                context 'When given a well formed hash' do
         
     | 
| 
      
 26 
     | 
    
         
            +
                  it { expect(AuthManager::Validation.validate_param({object: {api_key: 'api_key'}, option: { user: false, app: true }})[:code]).to eq(200) }
         
     | 
| 
      
 27 
     | 
    
         
            +
                  it { expect(AuthManager::Validation.validate_param({object: {login: 'my_login', password: 'my_password'}, option: { user: true, app: false }})[:code]).to eq(200) }
         
     | 
| 
      
 28 
     | 
    
         
            +
                end
         
     | 
| 
      
 29 
     | 
    
         
            +
              end
         
     | 
| 
      
 30 
     | 
    
         
            +
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,77 +1,71 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: auth_manager
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.0.6
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - atacraft && fabira
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2014-05- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2014-05-26 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: bundler
         
     | 
| 
       15 
15 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       16 
16 
     | 
    
         
             
                requirements:
         
     | 
| 
       17 
     | 
    
         
            -
                - - " 
     | 
| 
      
 17 
     | 
    
         
            +
                - - ">="
         
     | 
| 
       18 
18 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       19 
     | 
    
         
            -
                    version: ' 
     | 
| 
      
 19 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
       20 
20 
     | 
    
         
             
              type: :development
         
     | 
| 
       21 
21 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       22 
22 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       23 
23 
     | 
    
         
             
                requirements:
         
     | 
| 
       24 
     | 
    
         
            -
                - - " 
     | 
| 
      
 24 
     | 
    
         
            +
                - - ">="
         
     | 
| 
       25 
25 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       26 
     | 
    
         
            -
                    version: ' 
     | 
| 
      
 26 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
       27 
27 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       28 
28 
     | 
    
         
             
              name: rake
         
     | 
| 
       29 
29 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       30 
30 
     | 
    
         
             
                requirements:
         
     | 
| 
       31 
     | 
    
         
            -
                - - " 
     | 
| 
      
 31 
     | 
    
         
            +
                - - ">="
         
     | 
| 
       32 
32 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       33 
33 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       34 
34 
     | 
    
         
             
              type: :development
         
     | 
| 
       35 
35 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       36 
36 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       37 
37 
     | 
    
         
             
                requirements:
         
     | 
| 
       38 
     | 
    
         
            -
                - - " 
     | 
| 
      
 38 
     | 
    
         
            +
                - - ">="
         
     | 
| 
       39 
39 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       40 
40 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       41 
41 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       42 
42 
     | 
    
         
             
              name: redis
         
     | 
| 
       43 
43 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       44 
44 
     | 
    
         
             
                requirements:
         
     | 
| 
       45 
     | 
    
         
            -
                - - "~>"
         
     | 
| 
       46 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       47 
     | 
    
         
            -
                    version: '3.0'
         
     | 
| 
       48 
45 
     | 
    
         
             
                - - ">="
         
     | 
| 
       49 
46 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       50 
     | 
    
         
            -
                    version:  
     | 
| 
      
 47 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
       51 
48 
     | 
    
         
             
              type: :development
         
     | 
| 
       52 
49 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       53 
50 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       54 
51 
     | 
    
         
             
                requirements:
         
     | 
| 
       55 
     | 
    
         
            -
                - - "~>"
         
     | 
| 
       56 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       57 
     | 
    
         
            -
                    version: '3.0'
         
     | 
| 
       58 
52 
     | 
    
         
             
                - - ">="
         
     | 
| 
       59 
53 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       60 
     | 
    
         
            -
                    version:  
     | 
| 
      
 54 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
       61 
55 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       62 
56 
     | 
    
         
             
              name: rspec
         
     | 
| 
       63 
57 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       64 
58 
     | 
    
         
             
                requirements:
         
     | 
| 
       65 
     | 
    
         
            -
                - - " 
     | 
| 
      
 59 
     | 
    
         
            +
                - - ">="
         
     | 
| 
       66 
60 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       67 
     | 
    
         
            -
                    version: ' 
     | 
| 
      
 61 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
       68 
62 
     | 
    
         
             
              type: :development
         
     | 
| 
       69 
63 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       70 
64 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       71 
65 
     | 
    
         
             
                requirements:
         
     | 
| 
       72 
     | 
    
         
            -
                - - " 
     | 
| 
      
 66 
     | 
    
         
            +
                - - ">="
         
     | 
| 
       73 
67 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       74 
     | 
    
         
            -
                    version: ' 
     | 
| 
      
 68 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
       75 
69 
     | 
    
         
             
            description: '"Authenticate developpers and applications."'
         
     | 
| 
       76 
70 
     | 
    
         
             
            email:
         
     | 
| 
       77 
71 
     | 
    
         
             
            - atacraft@gmail.com, fabira90@gmail.com
         
     | 
| 
         @@ -91,17 +85,21 @@ files: 
     | 
|
| 
       91 
85 
     | 
    
         
             
            - lib/auth_manager.rb
         
     | 
| 
       92 
86 
     | 
    
         
             
            - lib/auth_manager/adder/adder.rb
         
     | 
| 
       93 
87 
     | 
    
         
             
            - lib/auth_manager/base.rb
         
     | 
| 
      
 88 
     | 
    
         
            +
            - lib/auth_manager/constants.rb
         
     | 
| 
       94 
89 
     | 
    
         
             
            - lib/auth_manager/deleter/deleter.rb
         
     | 
| 
       95 
90 
     | 
    
         
             
            - lib/auth_manager/finder/finder.rb
         
     | 
| 
       96 
91 
     | 
    
         
             
            - lib/auth_manager/updater/updater.rb
         
     | 
| 
      
 92 
     | 
    
         
            +
            - lib/auth_manager/validation.rb
         
     | 
| 
       97 
93 
     | 
    
         
             
            - lib/auth_manager/version.rb
         
     | 
| 
       98 
94 
     | 
    
         
             
            - spec/adder_spec.rb
         
     | 
| 
      
 95 
     | 
    
         
            +
            - spec/base_spec.rb
         
     | 
| 
       99 
96 
     | 
    
         
             
            - spec/deleter_spec.rb
         
     | 
| 
       100 
97 
     | 
    
         
             
            - spec/feed/populate.rb
         
     | 
| 
       101 
98 
     | 
    
         
             
            - spec/finder_spec.rb
         
     | 
| 
       102 
99 
     | 
    
         
             
            - spec/fixtures/environment.rb
         
     | 
| 
       103 
100 
     | 
    
         
             
            - spec/spec_helper.rb
         
     | 
| 
       104 
101 
     | 
    
         
             
            - spec/updater_spec.rb
         
     | 
| 
      
 102 
     | 
    
         
            +
            - spec/validation_spec.rb
         
     | 
| 
       105 
103 
     | 
    
         
             
            homepage: ''
         
     | 
| 
       106 
104 
     | 
    
         
             
            licenses:
         
     | 
| 
       107 
105 
     | 
    
         
             
            - MIT
         
     | 
| 
         @@ -128,9 +126,11 @@ specification_version: 4 
     | 
|
| 
       128 
126 
     | 
    
         
             
            summary: '"Module auth_manager"'
         
     | 
| 
       129 
127 
     | 
    
         
             
            test_files:
         
     | 
| 
       130 
128 
     | 
    
         
             
            - spec/adder_spec.rb
         
     | 
| 
      
 129 
     | 
    
         
            +
            - spec/base_spec.rb
         
     | 
| 
       131 
130 
     | 
    
         
             
            - spec/deleter_spec.rb
         
     | 
| 
       132 
131 
     | 
    
         
             
            - spec/feed/populate.rb
         
     | 
| 
       133 
132 
     | 
    
         
             
            - spec/finder_spec.rb
         
     | 
| 
       134 
133 
     | 
    
         
             
            - spec/fixtures/environment.rb
         
     | 
| 
       135 
134 
     | 
    
         
             
            - spec/spec_helper.rb
         
     | 
| 
       136 
135 
     | 
    
         
             
            - spec/updater_spec.rb
         
     | 
| 
      
 136 
     | 
    
         
            +
            - spec/validation_spec.rb
         
     |