예제 #1
0
        public static async Task <dynamic> Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
            ILogger log)
        {
            try{
                string body = await req.ReadAsStringAsync();

                var context = JsonConvert.DeserializeObject <FunctionExecutionContext <dynamic> >(body);
                var request = JsonConvert.DeserializeObject <FunctionExecutionContext <DevelopConsumeStaminaApiRequest> >(body).FunctionArgument;

                var stamina = await StaminaUtil.ConsumeAsync(context, request.consumeStamina);

                return(PlayFabSimpleJson.SerializeObject(new DevelopConsumeStaminaApiResponse()
                {
                    stamina = stamina
                }));
            }catch (PMApiException e) {
                // レスポンスの作成
                var response = new PMApiResponseBase()
                {
                    errorCode = e.errorCode,
                    message   = e.message
                };
                return(PlayFabSimpleJson.SerializeObject(response));
            }
        }
예제 #2
0
        public static async Task <dynamic> Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
            ILogger log)
        {
            try{
                string body = await req.ReadAsStringAsync();

                var context = JsonConvert.DeserializeObject <FunctionExecutionContext <dynamic> >(body);
                var request = JsonConvert.DeserializeObject <FunctionExecutionContext <LoginApiRequest> >(body).FunctionArgument;

                // 初ログイン時処理
                var userData = await DataProcessor.GetUserDataAsync(context);

                if (userData.lastLoginDateTime == default(DateTime))
                {
                    await DataProcessor.UpdateUserDataAsync(context, new Dictionary <UserDataKey, object>(){
                        { UserDataKey.rank, 1 },
                    });
                }

                // ログイン日時の更新
                var now = DateTimeUtil.Now();
                await DataProcessor.UpdateUserDataAsync(context, new Dictionary <UserDataKey, object>(){ { UserDataKey.lastLoginDateTime, now } });

                // スタミナの更新
                await StaminaUtil.SetStamina(context);

                var response = new LoginApiResponse()
                {
                };
                return(PlayFabSimpleJson.SerializeObject(response));
            }catch (PMApiException e) {
                // レスポンスの作成
                var response = new PMApiResponseBase()
                {
                    errorCode = e.errorCode,
                    message   = e.message
                };
                return(PlayFabSimpleJson.SerializeObject(response));
            }
        }