Sha256: 4d10ca0e8fd9c14fc87e9902e5d5aa6de68ed71cad1b4a7452c43358b4a0dfbf

Contents?: true

Size: 1.94 KB

Versions: 2

Compression:

Stored size: 1.94 KB

Contents

module QuizApiClient::Services
  class QuizEntriesService < BaseApiService
    def show(params:, token: nil)
      raise 'Quiz Id Required' unless params && params[:quiz_id]
      raise 'Entry Id Required' unless params[:entry_id]

      get_single_entry_from_quiz_api(params: params, token: token)
    end

    def create(params:, token: nil)
      raise 'Quiz Id Required' unless params && params[:id]

      post_to_quiz_api(params: params, token: token)
    end

    def update(params:, token: nil)
      raise 'Quiz Id Required' unless params && params[:quiz_id]
      raise 'Entry Id Required' unless params[:entry_id]

      put_to_quiz_api(params: params, token: token)
    end

    def list(params:, token: nil, all: false)
      raise 'Quiz Id Required' unless params && params[:id]

      get_from_quiz_api(params: params, token: token, all: all)
    end

    def destroy(params:, token: nil)
      raise 'Quiz Id Required' unless params && params[:quiz_id]
      raise 'Item Id Required' unless params && params[:id]

      delete_from_quiz_api(params, token)
    end

    private

    def get_single_entry_from_quiz_api(params:, token:)
      client(token: token).get(
        "/api/quizzes/#{params[:quiz_id]}/quiz_entries/#{params[:entry_id]}"
      )
    end

    def post_to_quiz_api(params:, token:)
      client(token: token).post(
        "/api/quizzes/#{params[:id]}/quiz_entries",
        quiz_entry: params
      )
    end

    def put_to_quiz_api(params:, token:)
      client(token: token).put(
        "/api/quizzes/#{params[:quiz_id]}/quiz_entries/#{params[:entry_id]}",
        quiz_entry: params
      )
    end

    def get_from_quiz_api(params:, token:, all:)
      client(token: token).get(
        "/api/quizzes/#{params[:id]}/quiz_entries",
        all: all
      )
    end

    def delete_from_quiz_api(params, token)
      client(token: token).delete(
        "/api/quizzes/#{params[:quiz_id]}/quiz_entries/#{params[:id]}"
      )
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
quiz_api_client-4.8.0 lib/quiz_api_client/services/quiz_entries_service.rb
quiz_api_client-4.7.0 lib/quiz_api_client/services/quiz_entries_service.rb