Sha256: f226db84fd5f5a492e562634f54aa29a8c91fa8271d715232900300b0ed82a53
Contents?: true
Size: 873 Bytes
Versions: 8
Compression:
Stored size: 873 Bytes
Contents
# frozen_string_literal: true require "safe_shell" module Mihari module Endpoints class Command < Grape::API namespace :command do desc "Run a command", { success: Entities::CommandResult, failure: [{ code: 400, message: "Bad request", model: Entities::Message }], summary: "Run a command" } params do requires :command, type: String, documentation: { param_type: "body" } end post "/" do command = params[:command] if command.nil? error!({ message: "command is required" }, 400) end command = command.split output = SafeShell.execute("mihari", *command) success = $?.success? present({ output: output, success: success }, with: Entities::CommandResult) end end end end end
Version data entries
8 entries across 8 versions & 1 rubygems