Sha256: 8b7f363c7763a2ddb86f080d6b6619af9e699930f8a35c632d3519dd65366f8a

Contents?: true

Size: 1.64 KB

Versions: 13

Compression:

Stored size: 1.64 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

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

      get_media_upload_url_from_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

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

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
quiz_api_client-4.14.1 lib/quiz_api_client/services/items_service.rb
quiz_api_client-4.14.0 lib/quiz_api_client/services/items_service.rb
quiz_api_client-4.13.4 lib/quiz_api_client/services/items_service.rb
quiz_api_client-4.13.3 lib/quiz_api_client/services/items_service.rb
quiz_api_client-4.13.2 lib/quiz_api_client/services/items_service.rb
quiz_api_client-4.13.1 lib/quiz_api_client/services/items_service.rb
quiz_api_client-4.13.0 lib/quiz_api_client/services/items_service.rb
quiz_api_client-4.12.0 lib/quiz_api_client/services/items_service.rb
quiz_api_client-4.11.1 lib/quiz_api_client/services/items_service.rb
quiz_api_client-4.11.0 lib/quiz_api_client/services/items_service.rb
quiz_api_client-4.10.0 lib/quiz_api_client/services/items_service.rb
quiz_api_client-4.9.1 lib/quiz_api_client/services/items_service.rb
quiz_api_client-4.9.0 lib/quiz_api_client/services/items_service.rb