vianney 0.0.2 → 0.0.3
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/lib/vianney/configuration.rb +11 -0
- data/lib/vianney/controllers/application_controller.rb +65 -0
- data/lib/vianney/utils/debbug.rb +11 -0
- data/lib/vianney/utils/query.rb +48 -0
- data/lib/vianney/utils/render.rb +47 -0
- metadata +6 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e8ecfa6dffce2e39013bfec4c991f4275408e7d894aaed819d377163066b7812
|
4
|
+
data.tar.gz: 59659f92eb70b43f1b9529be060cb7c54e250b73c6274575646842f61bee6021
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3c1cdeef95cb2ef29b29f202803a38111ac00dff9b9b86bd4bfd0b9a47dd9a8239bdb7b3d939c0a9706c1ce411a051645c2ce5d8a1f7b6180ec31209106d77a0
|
7
|
+
data.tar.gz: 014f98fb15f3b64a3ba5095540a612470605d9a7fbc60a77c298585178e408aaa86e28456f950ca62a9ccab6e7808e6f4e395b4844afb54bd508fb40b232fdf6
|
@@ -0,0 +1,11 @@
|
|
1
|
+
module Vianney
|
2
|
+
module Configuration
|
3
|
+
overrides = "#{Rails.root}/lib/vianney/controllers"
|
4
|
+
Rails.autoloaders.main.ignore(overrides)
|
5
|
+
ActiveSupport::Reloader.to_prepare do
|
6
|
+
Dir.glob("#{overrides}/**/*_controller.rb").each do |override|
|
7
|
+
load override
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
class ApplicationController < ActionController::Base
|
2
|
+
include Vianney::Utils::Debbug
|
3
|
+
include Vianney::Utils::Render
|
4
|
+
include Vianney::Utils::Query
|
5
|
+
|
6
|
+
before_action :before_index_action, only: [:index]
|
7
|
+
before_action :before_crud_action, only: [:edit, :update, :show, :destroy]
|
8
|
+
after_action :after_index_action, only: [:index]
|
9
|
+
after_action :after_crud_action, only: [:edit, :update, :show, :destroy]
|
10
|
+
|
11
|
+
# BEFORE AND AFTER ACTION
|
12
|
+
private def before_index_action(*args)
|
13
|
+
pagination?()
|
14
|
+
model_name = controller_name.classify.constantize
|
15
|
+
@resource = model_name.all.pagination(pagination?, get_page, get_per_page).order ordering_params params[:sorts], model_name
|
16
|
+
|
17
|
+
params.each do |key, value|
|
18
|
+
|
19
|
+
if model_name.has_attribute?(key) && !value.blank?
|
20
|
+
@resource = @resource.send(:filter_by, key, value)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
private def after_index_action
|
26
|
+
end
|
27
|
+
|
28
|
+
private def before_crud_action
|
29
|
+
@resource = controller_name.classify.constantize.find(params[:id])
|
30
|
+
end
|
31
|
+
|
32
|
+
private def after_crud_action
|
33
|
+
end
|
34
|
+
|
35
|
+
# METHODS ACTION
|
36
|
+
|
37
|
+
def index
|
38
|
+
render_response @resource, true if !html_request?
|
39
|
+
end
|
40
|
+
|
41
|
+
def show
|
42
|
+
render_response @resource if !html_request?
|
43
|
+
end
|
44
|
+
|
45
|
+
def add
|
46
|
+
end
|
47
|
+
|
48
|
+
def create
|
49
|
+
@resource.save
|
50
|
+
render_response @resource if !html_request?
|
51
|
+
end
|
52
|
+
|
53
|
+
def edit
|
54
|
+
end
|
55
|
+
|
56
|
+
def update
|
57
|
+
@resource.update
|
58
|
+
render_response @resource if !html_request?
|
59
|
+
end
|
60
|
+
|
61
|
+
def destroy
|
62
|
+
@resource.destroy
|
63
|
+
render_response @resource if !html_request?
|
64
|
+
end
|
65
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
module Vianney
|
2
|
+
module Utils
|
3
|
+
module Debbug
|
4
|
+
def print param
|
5
|
+
puts "##################################################################################"
|
6
|
+
puts param.inspect
|
7
|
+
puts "##################################################################################"
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
module Vianney
|
2
|
+
module Utils
|
3
|
+
module Render
|
4
|
+
def html_request?
|
5
|
+
if request.headers['Authorization'].present? && request.headers['Authorization'].include?("Bearer")
|
6
|
+
return false
|
7
|
+
elsif (request.headers['Content-Type'].present? && request.headers['Content-Type'].include?("application/json"))
|
8
|
+
return false
|
9
|
+
else
|
10
|
+
return true
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def render_response(resource, is_tree = false)
|
15
|
+
is_tree ? render_tree_resource(resource) : render_resource(resource)
|
16
|
+
end
|
17
|
+
|
18
|
+
private def render_resource(resource)
|
19
|
+
if resource.errors.empty?
|
20
|
+
return render json: resource, status: :ok
|
21
|
+
else
|
22
|
+
render_error(resource)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
private def render_tree_resource(resources)
|
27
|
+
if pagination?
|
28
|
+
return render json: { resources: resources, pagination: pagination_meta(resources) }, status: :ok
|
29
|
+
else
|
30
|
+
return render json: resources, status: :ok
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
private def render_error(resource)
|
35
|
+
return render json: {
|
36
|
+
errors: [
|
37
|
+
{
|
38
|
+
status: :bad_request,
|
39
|
+
title: "Bad request",
|
40
|
+
detail: resource.errors,
|
41
|
+
code: "100"
|
42
|
+
}
|
43
|
+
]
|
44
|
+
}, status: :bad_request
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
module Vianney
|
2
|
+
module Render
|
3
|
+
|
4
|
+
def html_request?
|
5
|
+
if request.headers['Authorization'].present? && request.headers['Authorization'].include?("Bearer")
|
6
|
+
return false
|
7
|
+
elsif (request.headers['Content-Type'].present? && request.headers['Content-Type'].include?("application/json"))
|
8
|
+
return false
|
9
|
+
else
|
10
|
+
return true
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def render_response(resource, is_tree = false)
|
15
|
+
is_tree ? render_tree_resource(resource) : render_resource(resource)
|
16
|
+
end
|
17
|
+
|
18
|
+
private def render_resource(resource)
|
19
|
+
if resource.errors.empty?
|
20
|
+
return render json: resource, status: :ok
|
21
|
+
else
|
22
|
+
render_error(resource)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
private def render_tree_resource(resources)
|
27
|
+
if pagination?
|
28
|
+
return render json: { resources: resources, pagination: pagination_meta(resources) }, status: :ok
|
29
|
+
else
|
30
|
+
return render json: resources, status: :ok
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
private def render_error(resource)
|
35
|
+
return render json: {
|
36
|
+
errors: [
|
37
|
+
{
|
38
|
+
status: :bad_request,
|
39
|
+
title: "Bad request",
|
40
|
+
detail: resource.errors,
|
41
|
+
code: "100"
|
42
|
+
}
|
43
|
+
]
|
44
|
+
}, status: :bad_request
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vianney
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Unova
|
@@ -17,6 +17,11 @@ extensions: []
|
|
17
17
|
extra_rdoc_files: []
|
18
18
|
files:
|
19
19
|
- lib/vianney.rb
|
20
|
+
- lib/vianney/configuration.rb
|
21
|
+
- lib/vianney/controllers/application_controller.rb
|
22
|
+
- lib/vianney/utils/debbug.rb
|
23
|
+
- lib/vianney/utils/query.rb
|
24
|
+
- lib/vianney/utils/render.rb
|
20
25
|
homepage:
|
21
26
|
licenses: []
|
22
27
|
metadata: {}
|