rest_framework 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/app/assets/stylesheets/rest_framework.css +1 -3
- data/app/views/layouts/rest_framework.html.erb +3 -12
- data/app/views/rest_framework/_head.html.erb +20 -0
- data/lib/rest_framework/VERSION_STAMP +1 -1
- data/lib/rest_framework/controllers/base.rb +12 -4
- data/lib/rest_framework/controllers/models.rb +4 -5
- metadata +3 -3
- data/app/assets/javascripts/rest_framework.js +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 573511c8fd193f39ad79529ae7af61b890536bc1ba8d033a1b7e1d9ee8825ed7
|
4
|
+
data.tar.gz: a46c43aaf66552a5fe5ff4f50d214dda32ce7777e1994fbe5d0fdcf8018b279f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 626f03645ce25dbd70fd51c19750edd846e864ac16037ba07f9e93d9525c672f14a1c5b2b8a49db24242117e538d87ce33363a7e0649a9dc3e49eedd4dfd1f69
|
7
|
+
data.tar.gz: ed442d6cf44fff1e36e211c69279372efd5eebf4a74d1ab4721ef0bc6f10bb5a81a7252b857de92224c547848e9236aa9b56e28b33d6589748ce938f4b143e47
|
@@ -2,17 +2,7 @@
|
|
2
2
|
<html>
|
3
3
|
<head>
|
4
4
|
<title><%= @title %></title>
|
5
|
-
|
6
|
-
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
7
|
-
<%= csrf_meta_tags %>
|
8
|
-
<%= csp_meta_tag %>
|
9
|
-
|
10
|
-
<%= favicon_link_tag 'rest_framework_favicon.ico' %>
|
11
|
-
|
12
|
-
<%= stylesheet_link_tag 'application', media: 'all' %>
|
13
|
-
<%= javascript_include_tag 'application' %>
|
14
|
-
<%= stylesheet_link_tag 'rest_framework', media: 'all' %>
|
15
|
-
<%= javascript_include_tag 'rest_framework' %>
|
5
|
+
<%= render partial: 'rest_framework/head' %>
|
16
6
|
</head>
|
17
7
|
|
18
8
|
<body>
|
@@ -31,9 +21,10 @@
|
|
31
21
|
<div class="row">
|
32
22
|
<h1><%= @title %></h1>
|
33
23
|
</div>
|
24
|
+
<hr/>
|
34
25
|
<div class="row">
|
35
26
|
<h2>Payload</h2><br>
|
36
|
-
<div><pre><%= JSON.pretty_generate(JSON.parse(@
|
27
|
+
<div><pre><%= JSON.pretty_generate(JSON.parse(@serialized_payload)) %></pre></div>
|
37
28
|
</div>
|
38
29
|
<% unless @routes.blank? %>
|
39
30
|
<div class="row">
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<meta charset="utf-8">
|
2
|
+
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
3
|
+
<%= csrf_meta_tags %>
|
4
|
+
<%= csp_meta_tag rescue nil %>
|
5
|
+
<%= favicon_link_tag 'rest_framework_favicon.ico' rescue nil %>
|
6
|
+
|
7
|
+
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
|
8
|
+
<style>
|
9
|
+
h1,h2,h3,h4,h5,h6 { width: 100%; }
|
10
|
+
h1 { font-size: 2rem; }
|
11
|
+
h2 { font-size: 1.7rem; }
|
12
|
+
h3 { font-size: 1.5rem; }
|
13
|
+
h4 { font-size: 1.3rem; }
|
14
|
+
h5 { font-size: 1.1rem; }
|
15
|
+
h6 { font-size: 1rem; }
|
16
|
+
</style>
|
17
|
+
|
18
|
+
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
|
19
|
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
|
20
|
+
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
|
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.3
|
@@ -22,9 +22,8 @@ module RESTFramework
|
|
22
22
|
# is defined.
|
23
23
|
module BaseControllerMixin
|
24
24
|
# Default action for API root.
|
25
|
-
# TODO: use api_response and show sub-routes.
|
26
25
|
def root
|
27
|
-
|
26
|
+
api_response({message: "This is the root of your awesome API!"})
|
28
27
|
end
|
29
28
|
|
30
29
|
protected
|
@@ -52,6 +51,7 @@ module RESTFramework
|
|
52
51
|
# rescue_from
|
53
52
|
# end
|
54
53
|
|
54
|
+
_restframework_attr_reader(:singleton_controller)
|
55
55
|
_restframework_attr_reader(:extra_actions, default: {})
|
56
56
|
_restframework_attr_reader(:template_logo_text, default: 'Rails REST Framework')
|
57
57
|
|
@@ -92,13 +92,21 @@ module RESTFramework
|
|
92
92
|
html_kwargs ||= {}
|
93
93
|
json_kwargs ||= {}
|
94
94
|
|
95
|
+
# serialize
|
96
|
+
if self.respond_to?(:get_model_serializer_config, true)
|
97
|
+
serialized_payload = payload.to_json(**self.get_model_serializer_config)
|
98
|
+
else
|
99
|
+
serialized_payload = payload.to_json
|
100
|
+
end
|
101
|
+
|
95
102
|
respond_to do |format|
|
96
103
|
format.html {
|
97
104
|
kwargs = kwargs.merge(html_kwargs)
|
98
|
-
@template_logo_text ||=
|
105
|
+
@template_logo_text ||= self.class.template_logo_text
|
99
106
|
@title ||= self.controller_name.camelize
|
100
107
|
@routes ||= self._get_routes
|
101
108
|
@payload = payload
|
109
|
+
@serialized_payload = serialized_payload
|
102
110
|
begin
|
103
111
|
render(**kwargs)
|
104
112
|
rescue ActionView::MissingTemplate # fallback to rest_framework default view
|
@@ -108,7 +116,7 @@ module RESTFramework
|
|
108
116
|
}
|
109
117
|
format.json {
|
110
118
|
kwargs = kwargs.merge(json_kwargs)
|
111
|
-
render(json:
|
119
|
+
render(json: serialized_payload || '', **kwargs)
|
112
120
|
}
|
113
121
|
end
|
114
122
|
end
|
@@ -21,7 +21,6 @@ module RESTFramework
|
|
21
21
|
|
22
22
|
_restframework_attr_reader(:model)
|
23
23
|
_restframework_attr_reader(:recordset)
|
24
|
-
_restframework_attr_reader(:singleton_controller)
|
25
24
|
|
26
25
|
_restframework_attr_reader(:fields)
|
27
26
|
_restframework_attr_reader(:list_fields)
|
@@ -152,14 +151,14 @@ module RESTFramework
|
|
152
151
|
# TODO: pagination classes like Django
|
153
152
|
def index
|
154
153
|
@records = self.get_filtered_recordset
|
155
|
-
api_response(@records
|
154
|
+
api_response(@records)
|
156
155
|
end
|
157
156
|
end
|
158
157
|
|
159
158
|
module ShowModelMixin
|
160
159
|
def show
|
161
160
|
@record = self.get_record
|
162
|
-
api_response(@record
|
161
|
+
api_response(@record)
|
163
162
|
end
|
164
163
|
end
|
165
164
|
|
@@ -170,7 +169,7 @@ module RESTFramework
|
|
170
169
|
rescue ActiveRecord::RecordInvalid => e
|
171
170
|
api_response(e.record.messages, status: 400)
|
172
171
|
end
|
173
|
-
api_response(@record
|
172
|
+
api_response(@record)
|
174
173
|
end
|
175
174
|
end
|
176
175
|
|
@@ -180,7 +179,7 @@ module RESTFramework
|
|
180
179
|
if @record
|
181
180
|
@record.attributes(self.get_update_params)
|
182
181
|
@record.save!
|
183
|
-
api_response(@record
|
182
|
+
api_response(@record)
|
184
183
|
else
|
185
184
|
api_response({detail: "Record not found."}, status: 404)
|
186
185
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rest_framework
|
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
|
- Gregory N. Schmit
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-09-
|
11
|
+
date: 2020-09-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -34,9 +34,9 @@ files:
|
|
34
34
|
- LICENSE
|
35
35
|
- README.md
|
36
36
|
- app/assets/images/rest_framework_favicon.ico
|
37
|
-
- app/assets/javascripts/rest_framework.js
|
38
37
|
- app/assets/stylesheets/rest_framework.css
|
39
38
|
- app/views/layouts/rest_framework.html.erb
|
39
|
+
- app/views/rest_framework/_head.html.erb
|
40
40
|
- app/views/rest_framework/_routes.html.erb
|
41
41
|
- app/views/rest_framework/default.html.erb
|
42
42
|
- lib/rest_framework.rb
|
File without changes
|