class DraftsController < ApplicationController
  requires_login

  skip_before_action :check_xhr, :preload_json

  def index
    params.require(:username)
    params.permit(:offset)
    params.permit(:limit)

    user = fetch_user_from_params

    unless user == current_user
      raise Discourse::InvalidAccess
    end

    opts = {
      user: user,
      offset: params[:offset],
      limit: params[:limit]
    }

    stream = Draft.stream(opts)
    stream.each do |d|
      parsed_data = JSON.parse(d.data)
      if parsed_data
        if parsed_data['reply']
          d.raw = parsed_data['reply']
        end
        if parsed_data['categoryId'].present? && !d.category_id.present?
          d.category_id = parsed_data['categoryId']
        end
      end
    end

    render json: {
      drafts: stream ? serialize_data(stream, DraftSerializer) : [],
      no_results_help: I18n.t("user_activity.no_drafts.self")
    }

  end

end