summaryrefslogtreecommitdiff
path: root/app/controllers/api/v3/duplicates_controller.rb
blob: e32d07ff48c68e73afbfd2fdff81d41fcef7f526 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# frozen_string_literal: true
class Api::V3::DuplicatesController < Api::V3::ApiController
  include BetterRateLimitable

  before_action -> { rate_limit 10, 1.minute, 'You are submitting too many search requests!' }

  skip_authorization_check

  def index
    intensities = params.require(:intensities).require([:nw, :ne, :sw, :se]).map(&:to_f)
    dist = params.require(:fuzziness).to_f rescue 0.25
    dist = dist.clamp(0.01, 5.0)

    duplicates = PostQuery.dupes(*intensities, dist)

    render json: { duplicates: PostSerializer.serialize_collection(duplicates) }
  end
end