model_driven_api 3.2.0 → 3.2.2
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4282b6de5aa1f0692ad907c6e711b69c5c300ca41562311f49c33113b0c2c002
|
4
|
+
data.tar.gz: 5b103be64cfedc3dca3688aedcfe4d3e0d53d5476821debc6e3a6cae96ec7d65
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 50fbc04a16be3c132b3b1afbb95a5730f766c6b51310d49cc49b76a139138cd42eeb45a1359ac855d69d8bab8df7eddff8c8093610c961c42376bcc1a5e52832
|
7
|
+
data.tar.gz: a77ade2a13edb03093a425c0e01c3d6c1ffb526557463a1b02f2b8d63a8e99776b7d2ce21b94481520fc832a2e7b899103f687cb659323f1506fa04fb6e7860a
|
@@ -163,6 +163,7 @@ class Api::V2::ApplicationController < ActionController::API
|
|
163
163
|
# 2. As a module instance method in the model, like Track::Endpoints.inventory
|
164
164
|
# Example:
|
165
165
|
# Endpoints::TestApi.new(:test, {request_verb: "POST", is_connected: "Uhhhh"}).result
|
166
|
+
Rails.logger.debug("Checking for custom action #{custom_action} in #{@model}")
|
166
167
|
if @model.respond_to?("custom_action_#{custom_action}")
|
167
168
|
body, status = @model.send("custom_action_#{custom_action}", params)
|
168
169
|
elsif ("Endpoints::#{@model}".constantize rescue false) && "Endpoints::#{@model}".constantize.instance_methods.include?(custom_action.to_sym)
|
@@ -516,9 +516,9 @@ class Api::V2::InfoController < Api::V2::ApplicationController
|
|
516
516
|
}
|
517
517
|
# Non CRUD or Search, but custom, usually bulk operations endpoints
|
518
518
|
new_custom_actions = ("Endpoints::#{d.model_name.name}".constantize.instance_methods(false) rescue [])
|
519
|
-
|
519
|
+
Rails.logger.debug "New Custom Actions (#{d.model_name.name}): #{new_custom_actions}"
|
520
520
|
new_custom_actions.each do |action|
|
521
|
-
openapi_definition = "Endpoints::#{d.model_name.name}".constantize.definitions[action.to_sym] rescue
|
521
|
+
openapi_definition = "Endpoints::#{d.model_name.name}".constantize.definitions[d.model_name.name][action.to_sym] rescue []
|
522
522
|
|
523
523
|
# Add the tag to the openapi definition
|
524
524
|
openapi_definition.each do |k, v|
|
data/lib/non_crud_endpoints.rb
CHANGED
@@ -4,9 +4,16 @@ class NonCrudEndpoints
|
|
4
4
|
self.definitions = {}
|
5
5
|
# Add a validation method which will be inherited by all the instances, and automatically run before any method call
|
6
6
|
def initialize(m, params)
|
7
|
-
#
|
7
|
+
# Rails.logger.debug "Initializing NonCrudEndpoints"
|
8
|
+
# Showing the class name of the instance, and also, if there's a class inheriting from this one, the name of the child class
|
9
|
+
# Rails.logger.debug "Class: #{self.class.name} - Child Class: #{self.class.superclass.name if self.class.superclass != Object}"
|
10
|
+
# Check if self has the m method, if not, raise a NoMethodError
|
8
11
|
raise NoMethodError, "The method #{m} does not exist in #{self.class.name}" unless self.respond_to? m
|
9
|
-
|
12
|
+
# To avoid having conflicting keys from different classes, we will use a two levels object to store the definitions
|
13
|
+
# the first level is the class name, and the second level is the method name
|
14
|
+
self.definitions[self.class.name] ||= {}
|
15
|
+
self.definitions[self.class.name][m.to_sym] ||= {}
|
16
|
+
@definition = self.definitions[self.class.name][m.to_sym].with_indifferent_access
|
10
17
|
|
11
18
|
# self.send(m, { explain: true }) rescue []
|
12
19
|
validate_request(params)
|
@@ -25,8 +32,9 @@ class NonCrudEndpoints
|
|
25
32
|
|
26
33
|
private
|
27
34
|
|
28
|
-
def self.desc(key, definition)
|
29
|
-
self.definitions[
|
35
|
+
def self.desc(endpoint, key, definition)
|
36
|
+
self.definitions[endpoint] ||= {}
|
37
|
+
self.definitions[endpoint][key] = definition
|
30
38
|
end
|
31
39
|
|
32
40
|
def get_type(type)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: model_driven_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.2.
|
4
|
+
version: 3.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gabriele Tassoni
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-05-
|
11
|
+
date: 2024-05-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thecore_backend_commons
|