Sha256: 9bf5d32257f8aa171e955aca03ad4495c9f958de41ef51b6e4043b1ea3801656

Contents?: true

Size: 1.86 KB

Versions: 11

Compression:

Stored size: 1.86 KB

Contents

# frozen_string_literal: true

module Mihari
  module Controllers
    class AlertsController < BaseController
      get "/api/alerts" do
        param :page, Integer
        param :artifact, String
        param :description, String
        param :source, String
        param :tag, String

        param :from_at, DateTime
        param :fromAt, DateTime
        param :to_at, DateTime
        param :toAt, DateTime

        page = params["page"] || 1
        page = page.to_i
        limit = 10

        artifact_data = params["artifact"]
        description = params["description"]
        source = params["source"]
        tag_name = params["tag"]
        title = params["title"]

        from_at = params["from_at"] || params["fromAt"]
        from_at = DateTime.parse(from_at) if from_at
        to_at = params["to_at"] || params["toAt"]
        to_at = DateTime.parse(to_at) if to_at

        alerts = Mihari::Alert.search(
          artifact_data: artifact_data,
          description: description,
          from_at: from_at,
          limit: limit,
          page: page,
          source: source,
          tag_name: tag_name,
          title: title,
          to_at: to_at
        )
        total = Mihari::Alert.count(
          artifact_data: artifact_data,
          description: description,
          from_at: from_at,
          source: source,
          tag_name: tag_name,
          title: title,
          to_at: to_at
        )

        json({ alerts: alerts, total: total, current_page: page, page_size: limit })
      end

      delete "/api/alerts/:id" do
        id = params["id"]
        id = id.to_i

        begin
          alert = Mihari::Alert.find(id)
          alert.destroy

          status 204
          body ""
        rescue ActiveRecord::RecordNotFound
          status 404

          json({ message: "ID:#{id} is not found" })
        end
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
mihari-3.4.1 lib/mihari/web/controllers/alerts_controller.rb
mihari-3.4.0 lib/mihari/web/controllers/alerts_controller.rb
mihari-3.3.0 lib/mihari/web/controllers/alerts_controller.rb
mihari-3.2.0 lib/mihari/web/controllers/alerts_controller.rb
mihari-3.1.0 lib/mihari/web/controllers/alerts_controller.rb
mihari-3.0.1 lib/mihari/web/controllers/alerts_controller.rb
mihari-3.0.0 lib/mihari/web/controllers/alerts_controller.rb
mihari-2.4.0 lib/mihari/web/controllers/alerts_controller.rb
mihari-2.3.1 lib/mihari/web/controllers/alerts_controller.rb
mihari-2.3.0 lib/mihari/web/controllers/alerts_controller.rb
mihari-2.2.1 lib/mihari/web/controllers/alerts_controller.rb