Sha256: 9a3fec6cdb97a7de475010b9ae89102d67093e24acac307f03908dc590282eea

Contents?: true

Size: 1.04 KB

Versions: 27

Compression:

Stored size: 1.04 KB

Contents

# frozen_string_literal: true

module Quby
  module Answers
    class API
      def initialize(answer_repo:)
        @repo = answer_repo
      end

      def find(questionnaire_key, answer_id, options = {})
        @repo.find questionnaire_key, answer_id, options
      end

      def find_completed_after(time, answer_ids)
        @repo.find_completed_after time, answer_ids
      end

      def reload(answer)
        @repo.reload answer
      end

      def all(questionnaire_key)
        @repo.all questionnaire_key
      end

      def create!(questionnaire_key, attributes = {})
        questionnaire = Quby.questionnaires.find(questionnaire_key)
        answer = Services::BuildAnswer.new(questionnaire, attributes).build
        @repo.create! answer
      end

      def update!(answer)
        @repo.update! answer
      end

      def generate_outcome(answer)
        Services::OutcomeCalculation.new(answer).calculate
      end

      def regenerate_outcome!(answer)
        Services::OutcomeCalculation.new(answer).update_scores
      end
    end
  end
end

Version data entries

27 entries across 27 versions & 1 rubygems

Version Path
quby-5.4.0 lib/quby/answers/api.rb
quby-5.3.1 lib/quby/answers/api.rb
quby-5.3.0 lib/quby/answers/api.rb
quby-5.2.0 lib/quby/answers/api.rb
quby-5.1.3 lib/quby/answers/api.rb
quby-5.1.2 lib/quby/answers/api.rb
quby-5.1.1 lib/quby/answers/api.rb
quby-5.1.0 lib/quby/answers/api.rb
quby-5.0.5 lib/quby/answers/api.rb
quby-5.0.4 lib/quby/answers/api.rb
quby-5.0.3 lib/quby/answers/api.rb
quby-5.0.2 lib/quby/answers/api.rb
quby-5.0.1 lib/quby/answers/api.rb
quby-5.0.0 lib/quby/answers/api.rb
quby-4.0.4 lib/quby/answers/api.rb
quby-5.0.0.pre4 lib/quby/answers/api.rb
quby-5.0.0.pre3 lib/quby/answers/api.rb
quby-5.0.0.pre2 lib/quby/answers/api.rb
quby-5.0.0.pre1 lib/quby/answers/api.rb
quby-4.0.3 lib/quby/answers/api.rb