vianney 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- 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: {}
|