lib/duse/api/v1/actions/user/confirm.rb

Summary

Maintainability
A
0 mins
Test Coverage
require "duse/api/v1/json_schemas/token"

module Duse
  module API
    module V1
      module Actions
        module User
          class Confirm < Actions::Base
            status 204
            validate_with JSONSchemas::Token

            def call
              token = Models::ConfirmationToken.find_by_raw_token json[:token]
              fail NotFound if token.nil?
              fail AlreadyConfirmed if token.user.confirmed?
              token.user.confirm!
              token.destroy
            end
          end
        end
      end
    end
  end
end