Module: CRUDJT::Validation
- Defined in:
- lib/validation.rb
Constant Summary collapse
- U64_MAX =
2**64 - 1
- MIN_TTL =
1- MIN_SILENCE_READ =
1- MAX_HASH_SIZE =
256- ERROR_ALREADY_STARTED =
0- ERROR_NOT_STARTED =
1- ERROR_SECRET_KEY_NOT_SET =
2- ERROR_MESSAGES =
{ ERROR_ALREADY_STARTED => 'CRUDJT already started', ERROR_NOT_STARTED => 'CRUDJT has not started', ERROR_SECRET_KEY_NOT_SET => 'Secret key is blank' }
Instance Method Summary collapse
- #error_message(code) ⇒ Object
- #validate_hash_bytesize!(hash_bytesize) ⇒ Object
- #validate_insertion!(hash, ttl, silence_read) ⇒ Object
- #validate_secret_key!(key) ⇒ Object
- #validate_token!(token) ⇒ Object
Instance Method Details
#error_message(code) ⇒ Object
22 23 24 |
# File 'lib/validation.rb', line 22 def (code) ERROR_MESSAGES.fetch(code, "Unknown error (#{code})") end |
#validate_hash_bytesize!(hash_bytesize) ⇒ Object
33 34 35 |
# File 'lib/validation.rb', line 33 def validate_hash_bytesize!(hash_bytesize) raise "Hash can not be bigger than #{MAX_HASH_SIZE} bytesize" if hash_bytesize > MAX_HASH_SIZE end |
#validate_insertion!(hash, ttl, silence_read) ⇒ Object
26 27 28 29 30 31 |
# File 'lib/validation.rb', line 26 def validate_insertion!(hash, ttl, silence_read) raise "Must be Hash" unless hash.is_a?(Hash) raise "Hash can not be empty" if hash.empty? raise "ttl sould be grater then #{MIN_TTL - 1} and less then 2 power 64" if ttl && !ttl.between?(MIN_TTL, U64_MAX) raise "silence_read sould be grater then #{MIN_SILENCE_READ - 1} and less then 2 power 64" if silence_read && !silence_read.between?(MIN_SILENCE_READ, U64_MAX) end |
#validate_secret_key!(key) ⇒ Object
42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/validation.rb', line 42 def validate_secret_key!(key) begin decoded = Base64.strict_decode64(key) rescue ArgumentError raise ArgumentError, "'secret_key' must be a valid Base64 string" end unless [32, 48, 64].include?(decoded.bytesize) raise ArgumentError, "'secret_key' must be exactly 32, 48, or 64 bytes. Got #{decoded.bytesize} bytes" end true end |
#validate_token!(token) ⇒ Object
37 38 39 40 |
# File 'lib/validation.rb', line 37 def validate_token!(token) raise "Token must be String" unless token.is_a?(String) raise "Token cant be blank" if token.size < 1 end |