mirror of
https://github.com/discourse/discourse.git
synced 2025-05-29 01:31:35 +08:00
DEV: Remove Category.findById from admin web hooks (#26605)
Include categories when fetching admin/web_hooks and make 'extras' more useful. 'extras' is the mechanism we use to provide context for rest objects. However, previously: * When you fetched many objects, extras was only set on the ResultSet, not on each object, * If you need derived data from extras, there wasn't a sensible place to put this code. Now, you can create an 'ExtrasClass' static field on your rest model and this class will be used for your extras data,
This commit is contained in:

committed by
GitHub

parent
463eff2bbf
commit
cead0cf684
@ -15,15 +15,18 @@ class Admin::WebHooksController < Admin::AdminController
|
||||
.includes(:categories)
|
||||
.includes(:groups)
|
||||
|
||||
data = serialize_data(web_hooks, AdminWebHookSerializer, root: "web_hooks")
|
||||
|
||||
json = {
|
||||
web_hooks: serialize_data(web_hooks, AdminWebHookSerializer),
|
||||
extras: {
|
||||
grouped_event_types: WebHookEventType.active_grouped,
|
||||
default_event_types: WebHook.default_event_types,
|
||||
content_types: WebHook.content_types.map { |name, id| { id: id, name: name } },
|
||||
delivery_statuses:
|
||||
WebHook.last_delivery_statuses.map { |name, id| { id: id, name: name.to_s } },
|
||||
},
|
||||
web_hooks: data.delete("web_hooks"),
|
||||
extras:
|
||||
data.merge(
|
||||
grouped_event_types: WebHookEventType.active_grouped,
|
||||
default_event_types: WebHook.default_event_types,
|
||||
content_types: WebHook.content_types.map { |name, id| { id: id, name: name } },
|
||||
delivery_statuses:
|
||||
WebHook.last_delivery_statuses.map { |name, id| { id: id, name: name.to_s } },
|
||||
),
|
||||
total_rows_web_hooks: WebHook.count,
|
||||
load_more_web_hooks:
|
||||
admin_web_hooks_path(limit: limit, offset: offset + limit, format: :json),
|
||||
@ -33,11 +36,16 @@ class Admin::WebHooksController < Admin::AdminController
|
||||
end
|
||||
|
||||
def show
|
||||
render_serialized(@web_hook, AdminWebHookSerializer, root: "web_hook")
|
||||
data = serialize_data(@web_hook, AdminWebHookSerializer, root: "web_hook")
|
||||
web_hook = data.delete("web_hook")
|
||||
data = { "extras" => data, "web_hook" => web_hook }
|
||||
render json: MultiJson.dump(data), status: 200
|
||||
end
|
||||
|
||||
def edit
|
||||
render_serialized(@web_hook, AdminWebHookSerializer, root: "web_hook")
|
||||
data = serialize_data(@web_hook, AdminWebHookSerializer, root: "web_hook")
|
||||
data["extras"] = { "categories" => data.delete(:categories) }
|
||||
render json: MultiJson.dump(data), status: 200
|
||||
end
|
||||
|
||||
def create
|
||||
|
Reference in New Issue
Block a user