avski-common-utils 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3bbc327da369286e1182dc9db2754eda319e5a2f
4
- data.tar.gz: e1504df4af264dd37eb05cc025499e5c29bc3fb8
3
+ metadata.gz: 3de3a70af38aa6ba4e6288f1ca8513fca116f26f
4
+ data.tar.gz: '005393524b1478e5655dc6dcfd06b148cd44436a'
5
5
  SHA512:
6
- metadata.gz: 5738ddec889dbb203304507c3016cd1cece283323143a498882d14325e41035b2869c9eee59ec40b9ac9eb3db6277806a24717c729541a886f911e7c75320896
7
- data.tar.gz: 54f2d31339039f3fb81e2fcfffa620de80d3c862d984c2833601f6f78aba9ed9b2b112ad8147641ca315a993bf4b9fb1208b09238d3ff8ff57c075b11d27a970
6
+ metadata.gz: a5c7dda7be367a078bc893fb20083a8e086c4c02cb331578b257e7f1dd9ac2e3447c86e1b7eacba7393cd72eebff9adb8ee6c6bf80566610be6820fd380582a6
7
+ data.tar.gz: 2687c3f49c6f5ed996ec1c7efe0d46df1f847bc9911e16d02bd372db45ccb0463aac4df8d6554107b7f87ce4e4a076d0d18d8898e39ecb812e9ee49130a9b8bd
data/Gemfile CHANGED
@@ -1,5 +1,7 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
+ gem 'json'
4
+
3
5
  # Specify your gem's dependencies in avski-common-utils.gemspec
4
6
  gemspec
5
7
 
@@ -0,0 +1,41 @@
1
+ require 'json'
2
+
3
+ module Avski
4
+ module Common
5
+ module Exceptions
6
+
7
+ # @class [UnknownFieldException]
8
+ class UnknownFieldException < StandardError
9
+ attr_reader :status, :message, :data, :code
10
+
11
+ def initialize(message, status = 400, code = 0, data = {})
12
+ @status = status
13
+ @message = message
14
+ @data = data
15
+ @code = code
16
+ end
17
+
18
+ #
19
+ # Convert Exception contents to a Json string. All attributes must
20
+ # be Json serializable.
21
+ def to_json
22
+ JSON.generate(to_hash)
23
+ end
24
+
25
+ def to_hash
26
+ {status: @status, message: @message, code: @code, data: @data}
27
+ end
28
+
29
+ def to_response
30
+ [@status, to_json]
31
+ end
32
+ end
33
+
34
+ # @class [EmptyFieldException]
35
+ class EmptyFieldException < UnknownFieldException; end
36
+
37
+ # @class [NullFieldException]
38
+ class NullFieldException < UnknownFieldException; end
39
+ end
40
+ end
41
+ end
@@ -1,10 +1,15 @@
1
1
  require 'avski/common/utils/version'
2
+ require 'avski/common/exceptions'
3
+
4
+ include Avski::Common::Exceptions
2
5
 
3
6
  module Avski
4
7
  module Common
5
8
  module Utils
9
+
6
10
  # Utility methods for Hash manipulation
7
11
  module Hash
12
+
8
13
  # Convert Hash string keys to symbol keys
9
14
  #
10
15
  # @param [Hash] hash
@@ -12,7 +17,7 @@ module Avski
12
17
  def self.symbolize_keys(hash)
13
18
  hash.inject({}){ |memo, (k, v)|
14
19
  memo[k.to_sym] = v
15
- memo[k.to_sym] = symbolize_keys v if v.class.to_s.eql? 'Hash'
20
+ memo[k.to_sym] = symbolize_keys v if v.class.eql? ::Hash
16
21
  memo
17
22
  }
18
23
  end
@@ -24,7 +29,7 @@ module Avski
24
29
  def self.symbolize_keys!(hash)
25
30
  new_hash = hash.inject({}){ |memo, (k, v)|
26
31
  memo[k.to_sym] = v
27
- memo[k.to_sym] = symbolize_keys v if v.class.to_s.eql? 'Hash'
32
+ memo[k.to_sym] = symbolize_keys v if v.class.eql? ::Hash
28
33
  memo
29
34
  }
30
35
  hash.replace new_hash
@@ -48,6 +53,29 @@ module Avski
48
53
  hash.select { |k, v| keys.include?(k) }
49
54
  end
50
55
  end
56
+
57
+ # Utility methods for Validation
58
+ module Validation
59
+
60
+ # Check if fields used in method params have their values
61
+ # empty or keys are missing
62
+ # @param [Array[Symbol]] required_fields array of symbols
63
+ # @param [Object] params
64
+ def self.check_fields(required_fields, params)
65
+ required_fields, missing, empty, null = required_fields, [], [], []
66
+ required_fields.each { |key|
67
+ missing.push(key) unless params.keys.include?(key)
68
+ empty.push(key) if params[key.to_sym].eql?('')
69
+ null.push(key) if params[key.to_sym].nil?
70
+ }
71
+
72
+ raise UnknownFieldException.new("Missing field(s) -> #{missing.join(', ')}.", 400) if missing.length > 0
73
+
74
+ raise EmptyFieldException.new("Empty field(s) -> #{empty.join(', ')}.", 400) if empty.length > 0
75
+
76
+ raise NullFieldException.new("Null field(s) -> #{null.join(', ')}.", 400) if null.length > 0
77
+ end
78
+ end
51
79
  end
52
80
  end
53
81
  end
@@ -1,7 +1,7 @@
1
1
  module Avski
2
2
  module Common
3
3
  module Utils
4
- VERSION = '0.1.3'
4
+ VERSION = '0.1.4'
5
5
  end
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: avski-common-utils
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Felipe Rodrigues Michetti
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-07-08 00:00:00.000000000 Z
11
+ date: 2017-07-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -70,6 +70,7 @@ files:
70
70
  - avski-common-utils.gemspec
71
71
  - bin/console
72
72
  - bin/setup
73
+ - lib/avski/common/exceptions.rb
73
74
  - lib/avski/common/utils.rb
74
75
  - lib/avski/common/utils/version.rb
75
76
  homepage: http://www.avski.com.br