#
#= JSONデータ処理機能群
# Authors:: Sumiyo Yamamoto
# Copyright:: Copyright (C) OrbusNeich Medical K.K.  2010.
#--
# date        name                   note
# 2010.2.19   Sumiyo Yamamoto        新規作成
#-------------------------------------------------------------------------------
#++
module Comm
  module Tool
    #= JSONデータ処理機能クラス
    # JSONデータ処理に使えるメソッド群を備える。
    #------------------------------------------------------------------------#++
    class Json
    end

    class << Json
      #== JSON形式の結果生成
      #_success_ :: 処理結果(true:成功、false:失敗)
      #_message_ :: メッセージデータ
      #
      # 戻り値:: JSONデータ
      #-----------------------------------------------------------------#++
      def result_json(success, message, data = {})
        result = get_result(success, message).merge(data)
        return result.to_json
      end

      #== JSON形式の結果生成(データ追加)
      #_success_ :: 処理結果(true:成功、false:失敗)
      #_message_ :: メッセージデータ
      #_data_ :: 追加データ
      #
      # 戻り値:: JSONデータ
      #-----------------------------------------------------------------#++
      def result_with_data_json(success, message, data)
        result = get_result(success, message)
        unless data.blank?
          result.merge!(data)
        end
        return result.to_json
      end

      #== 結果データ編集
      #_success_ :: 処理結果(true:成功、false:失敗)
      #_message_ :: メッセージデータ
      #
      # 戻り値:: JSONデータ
      #-----------------------------------------------------------------#++
      def get_result(success, message)
        if message.empty?
          unless success
            message = EMJ0001 + EMD0002
          end
        else
          success = false
        end
        result = {
          :success => success,
          :message  => message
        }
        return result
      end
    end
  end
end
