Sha256: b5579693249ed8c0020b51dedf1fe26fe9a419c2493b5652e418597a5540f730

Contents?: true

Size: 1.26 KB

Versions: 3

Compression:

Stored size: 1.26 KB

Contents

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

      list_from_quiz_api(params: params, token: token)
    end

    def create(params:, token: nil)
      raise 'Quiz Id Required' unless params && params[:quiz_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 'Item Id Required' unless params && params[:item_id]

      put_to_quiz_api(params: params, token: token)
    end

    private

    def list_from_quiz_api(params:, token:)
      quiz_id = params.delete(:quiz_id)
      client(token: token).get("/api/quizzes/#{quiz_id}/items")
    end

    def post_to_quiz_api(params:, token:)
      quiz_id = params.delete(:quiz_id)
      client(token: token).post(
        "/api/quizzes/#{quiz_id}/items",
        quiz_id: quiz_id,
        item: params
      )
    end

    def put_to_quiz_api(params:, token:)
      quiz_id = params.delete(:quiz_id)
      item_id = params.delete(:item_id)
      client(token: token).put(
        "/api/quizzes/#{quiz_id}/items/#{item_id}",
        quiz_id: quiz_id,
        item: params
      )
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
quiz_api_client-4.8.1 lib/quiz_api_client/services/items_service.rb
quiz_api_client-4.8.0 lib/quiz_api_client/services/items_service.rb
quiz_api_client-4.7.0 lib/quiz_api_client/services/items_service.rb