class HttpStatesController < ApplicationController
  #== 一覧表示
  #-----------------------------------------------------------------#++
  def index
    # 返却
    ars = HttpState.find_state(session[:user_id]);
    respond_to do |format|
      format.ext_json {
        render :json => ars.ext_hashfy.to_ext_json("http_states", ars.length)
      }
    end
  end
  
  #POST /http_states
  def create
    @result = true
    message = ""
    begin
      HttpState.transaction do
        #まずは既存のステートを削除する。
        if session[:user_id]==params[:user_id].to_i 
          if params[:name]
            if params[:value] && !params[:value].blank? #setの時
              ar = HttpState.find_one(params[:user_id].to_i, params[:name])
              if ar.blank? #stateがない場合は新規
                ar = HttpState.new({:user_id => params[:user_id].to_i, :name => params[:name], :value => params[:value]});
              else
                ar.value = params[:value]
              end
              ret = ar.save
            else #clearの時
              ret = HttpState.destroy_all(["user_id = ? AND name = ? ", params[:user_id].to_i, params[:name]])
            end
            unless ret
              raise Exception
            end
          else #状態を全て初期化する
            if params[:destroy_all]==STR_TRUE
              ret = HttpState.destroy_all(["user_id = ? ", params[:user_id].to_i]);
              unless ret
                raise Exception
              end
            end
          end
        end
      end
    rescue Exception => e
      message = EMJ0001 + "<br /><br />" + e.message
      @result =  false
    end
    render :json => Comm::Tool::Json.result_json(@result, message, {})
  end
end
