packages_controller.rb 863 B

12345678910111213141516171819202122232425262728293031323334
  1. # Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
  2. class PackagesController < ApplicationController
  3. prepend_before_action { authentication_check && authorize! }
  4. # GET /api/v1/packages
  5. def index
  6. packages = Package.all.order('name')
  7. commands = ['rails zammad:package:migrate', 'rails assets:precompile']
  8. if File.exist?('/usr/bin/zammad')
  9. commands.map! { |s| "zammad run #{s}" }
  10. end
  11. render json: {
  12. packages: packages,
  13. commands: commands
  14. }
  15. end
  16. # POST /api/v1/packages
  17. def install
  18. Package.install(string: params[:file_upload].read)
  19. redirect_to '/#system/package'
  20. end
  21. # DELETE /api/v1/packages
  22. def uninstall
  23. package = Package.find(params[:id])
  24. Package.uninstall(name: package.name, version: package.version)
  25. render json: {
  26. success: true
  27. }
  28. end
  29. end