module ThinkificRuby
  class CourseReview

    extend ThinkificRuby::Connection
    extend ThinkificRuby::ResourceHelper

    class << self
      def index(course_id, options = {})
        raise_input_error_if_not_natural_number(course_id)

        response = connection.get('/api/public/v1/course_reviews') do |req|
                     req.params['course_id'] = course_id
                     
                     options.each {|key, value| req.params[key.to_s] = value }
                   end

        parsed_response = JSON.parse(response.body)

        raise_error_if_response_status_not_200_or_return_parsed_response(response.status, parsed_response)
      end

      def show(id)
        raise_input_error_if_not_natural_number(id)

        response = connection.get("/api/public/v1/course_reviews/#{ id }")

        JSON.parse(response.body)
      end

      def create(options = {})
        
        response = connection.post('/api/public/v1/course_reviews') do |req|
                     options.each {|key, value| req.params[key.to_s] = value }
                   end

        JSON.parse(response.body)
      end
    end
  end
end