knowledge_base.rb 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. # Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
  2. Zammad::Application.routes.draw do
  3. #
  4. # API
  5. #
  6. concern :has_publishing do
  7. member do
  8. post :has_publishing_update, action: :has_publishing_update
  9. CanBePublished::StateMachine.aasm.events.each do |event|
  10. post event.name, action: "has_publishing_#{event.name}"
  11. end
  12. end
  13. end
  14. scope Rails.configuration.api_path do
  15. resources :knowledge_bases, only: %i[show update] do
  16. collection do
  17. post :init
  18. get :visible_ids
  19. post :search, controller: 'knowledge_base/search'
  20. get :recent_answers, controller: 'knowledge_base/answers'
  21. resources :manage, controller: 'knowledge_base/manage' do
  22. collection do
  23. get :init
  24. end
  25. member do
  26. get :server_snippets
  27. patch :activate, :deactivate, :update_menu_items
  28. end
  29. end
  30. end
  31. member do
  32. resource :permissions, controller: 'knowledge_base/permissions', only: %i[update show]
  33. end
  34. resources :categories, controller: 'knowledge_base/categories',
  35. except: %i[new edit] do
  36. member do
  37. patch :reorder_categories, :reorder_answers
  38. resource :permissions, controller: 'knowledge_base/permissions', only: %i[update show]
  39. end
  40. collection do
  41. patch :reorder_root_categories
  42. end
  43. end
  44. resources :answers, controller: 'knowledge_base/answers',
  45. only: %i[create update show destroy],
  46. concerns: :has_publishing do
  47. resources :attachments, controller: 'knowledge_base/answer/attachments', only: %i[create destroy] do
  48. collection do
  49. post :clone_to_form
  50. end
  51. end
  52. end
  53. end
  54. end
  55. #
  56. # Public
  57. #
  58. scope :help do
  59. get '', to: 'knowledge_base/public/categories#forward_root', as: :help_no_locale
  60. get ':locale', to: 'knowledge_base/public/categories#index', as: :help_root
  61. get ':locale/tag/:tag', to: 'knowledge_base/public/tags#show', as: :help_tag
  62. get ':locale/:category', to: 'knowledge_base/public/categories#show', as: :help_category
  63. get ':locale/:category/:answer', to: 'knowledge_base/public/answers#show', as: :help_answer
  64. end
  65. end