﻿namespace Yodo1.FanCraft
{
    using System.Collections.Generic;

    public enum ErrorCode
    {
        /// <summary>
        /// This error code indicates that failed due to invalid app key. See the message field in the error object for more details.
        /// </summary>
        InvalidAppKey = 1000,

        /// <summary>
        /// This error code indicates that failed due to invalid game user information. See the message field in the error object for more details.
        /// </summary>
        InvalidGameUser = 1001,

        /// <summary>
        /// This error code indicates that failed due to invalid device token. See the message field in the error object for more details.
        /// </summary>
        InvalidDeviceToken = 1002,

        /// <summary>
        /// This error code indicates that failed due to a generic network error. See the message field in the error object for more details.
        /// </summary>
        NetworkError = 1003,

        /// <summary>
        /// This error code indicates that failed due to a http validation error. See the message field in the error object for more details.
        /// </summary>
        HttpValidationError = 1004,

        /// <summary>
        /// This error code indicates that failed due to a invalid parameter error. See the message field in the error object for more details.
        /// </summary>
        InvalidParameterError = 1005,
    }

    public class FanCraftError
    {
        public ErrorCode Code { get; private set; }
        public string Message { get; private set; }

        public FanCraftError(Dictionary<string, object> dict)
        {
            if (dict.ContainsKey("code"))
            {
                Code = (ErrorCode)int.Parse(dict["code"].ToString());
            }
            if (dict.ContainsKey("message"))
            {
                Message = dict["message"].ToString();
            }
        }
    }
}

