mirror of
https://github.com/we-promise/sure.git
synced 2026-05-12 23:25:00 +00:00
feat(api): expose rule export endpoints (#1602)
* feat(api): expose rule export endpoints * fix(api): tighten rule export contracts * fix(api): document balance sheet auth errors * test(api): align rule API key fixtures * Update docs/api/openapi.yaml Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Signed-off-by: Juan José Mata <jjmata@jjmata.com> * Quick win Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Signed-off-by: Juan José Mata <jjmata@jjmata.com> --------- Signed-off-by: Juan José Mata <juanjo.mata@gmail.com> Signed-off-by: Juan José Mata <jjmata@jjmata.com> Co-authored-by: Juan José Mata <juanjo.mata@gmail.com> Co-authored-by: Juan José Mata <jjmata@jjmata.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
This commit is contained in:
7
app/views/api/v1/rules/_action.json.jbuilder
Normal file
7
app/views/api/v1/rules/_action.json.jbuilder
Normal file
@@ -0,0 +1,7 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
json.id action.id
|
||||
json.action_type action.action_type
|
||||
json.value action.value
|
||||
json.created_at action.created_at.iso8601
|
||||
json.updated_at action.updated_at.iso8601
|
||||
17
app/views/api/v1/rules/_condition.json.jbuilder
Normal file
17
app/views/api/v1/rules/_condition.json.jbuilder
Normal file
@@ -0,0 +1,17 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
json.id condition.id
|
||||
json.condition_type condition.condition_type
|
||||
json.operator condition.operator
|
||||
json.value condition.value
|
||||
|
||||
if condition.compound?
|
||||
json.sub_conditions condition.sub_conditions do |sub_condition|
|
||||
json.partial! "api/v1/rules/condition", condition: sub_condition
|
||||
end
|
||||
else
|
||||
json.sub_conditions []
|
||||
end
|
||||
|
||||
json.created_at condition.created_at.iso8601
|
||||
json.updated_at condition.updated_at.iso8601
|
||||
15
app/views/api/v1/rules/_rule.json.jbuilder
Normal file
15
app/views/api/v1/rules/_rule.json.jbuilder
Normal file
@@ -0,0 +1,15 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
json.id rule.id
|
||||
json.name rule.name
|
||||
json.resource_type rule.resource_type
|
||||
json.active rule.active
|
||||
json.effective_date rule.effective_date&.iso8601
|
||||
json.conditions rule.conditions.select { |condition| condition.parent_id.nil? } do |condition|
|
||||
json.partial! "api/v1/rules/condition", condition: condition
|
||||
end
|
||||
json.actions rule.actions do |action|
|
||||
json.partial! "api/v1/rules/action", action: action
|
||||
end
|
||||
json.created_at rule.created_at.iso8601
|
||||
json.updated_at rule.updated_at.iso8601
|
||||
14
app/views/api/v1/rules/index.json.jbuilder
Normal file
14
app/views/api/v1/rules/index.json.jbuilder
Normal file
@@ -0,0 +1,14 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
json.data @rules do |rule|
|
||||
json.partial! "api/v1/rules/rule", rule: rule
|
||||
end
|
||||
|
||||
json.meta do
|
||||
json.current_page @pagy.page
|
||||
json.next_page @pagy.next
|
||||
json.prev_page @pagy.prev
|
||||
json.total_pages @pagy.pages
|
||||
json.total_count @pagy.count
|
||||
json.per_page @per_page
|
||||
end
|
||||
5
app/views/api/v1/rules/show.json.jbuilder
Normal file
5
app/views/api/v1/rules/show.json.jbuilder
Normal file
@@ -0,0 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
json.data do
|
||||
json.partial! "api/v1/rules/rule", rule: @rule
|
||||
end
|
||||
Reference in New Issue
Block a user