Giter VIP home page Giter VIP logo

cloudbread's Issues

API for external game related marketing service

Support for game module(notice, event, coupon...) proxy agent communication API.

게임 모듈(공지사항, 이벤트, 쿠폰)과 같은 대행 업체와 연동을 위한 API 요청

국내를 예를 들면, NHN 토스트클라우드 또는 IGAWorks 서비스와 연동을 위한 API 추가 지원 요청

bug : No connection is available to service this operation: ZREVRANK cbrank

error messgae information :
"message": "An error has occurred.",
"exceptionMessage": "No connection is available to service this operation: ZREVRANK cbrank",

root cause :
couple cloudbread redis sorted set function does not release client connection

resolution :
added disponse() method explicitly on CBRedis.cs file

full error message :
"message": "An error has occurred.",
"exceptionMessage": "No connection is available to service this operation: ZREVRANK cbrank",
"exceptionType": "StackExchange.Redis.RedisConnectionException",
"stackTrace": " at StackExchange.Redis.ConnectionMultiplexer.ExecuteSyncImpl[T](Message message, ResultProcessor1 processor, ServerEndPoint server)\r\n at StackExchange.Redis.RedisBase.ExecuteSync[T](Message message, ResultProcessor1 processor, ServerEndPoint server)\r\n at StackExchange.Redis.RedisDatabase.SortedSetRank(RedisKey key, RedisValue member, Order order, CommandFlags flags)\r\n at CloudBreadRedis.CBRedis.GetSortedSetRank(String sid)\r\n at CloudBread.Controllers.CBRankController.Get(String sid)\r\n at lambda_method(Closure , Object , Object[] )\r\n at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass10.b__9(Object instance, Object[] methodParameters)\r\n at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.Execute(Object instance, Object[] arguments)\r\n at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary`2 arguments, CancellationToken cancellationToken)\r\n— End of stack trace from previous location where exception was thrown —\r\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Controllers.ApiControllerActionInvoker.d__0.MoveNext()\r\n— End of stack trace from previous location where exception was thrown —\r\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Filters.ActionFilterAttribute.d__5.MoveNext()\r\n— End of stack trace from previous location where exception was thrown —\r\n at System.Web.Http.Filters.ActionFilterAttribute.d__5.MoveNext()\r\n— End of stack trace from previous location where exception was thrown —\r\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Filters.ActionFilterAttribute.d__0.MoveNext()\r\n— End of stack trace from previous location where exception was thrown —\r\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Controllers.ActionFilterResult.d__2.MoveNext()\r\n— End of stack trace from previous location where exception was thrown —\r\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Dispatcher.HttpControllerDispatcher.d__1.MoveNext()"
}

Make database - rank

CB does have redis rank modue, but got request of database - rank.
It could cause performance issue.

working on it

cloudbread unity sdk generate error

[http://xxxxxxxxxx.azurewebsites.net/api/CBInsRegMember] - 500 Internal Server Error
UnityEngine.Debug:LogWarning(Object)
CloudBread.CBPostman:DirectWWW(WWW, Action1) (at Assets/CloudBread/Editor/CBPostman.cs:460) CloudBread.CBPostman:RequestPostmanTest(String, String, String, Action1) (at Assets/CloudBread/Editor/CBPostman.cs:422)
CloudBread.CBPostman:DrawBodyRight() (at Assets/CloudBread/Editor/CBPostman.cs:212)
CloudBread.CBPostman:DrawBody() (at Assets/CloudBread/Editor/CBPostman.cs:70)
CloudBread.CBPostman:OnGUI() (at Assets/CloudBread/Editor/CBPostman.cs:34)
UnityEditor.DockArea:OnGUI()

라고 뜨면서 프로토콜 폴더에 C# 스크립트가 생성되지 않습니다.

CBToolEditor.cs GetClassTextFile function error

https://github.com/CloudBreadProject/CloudBread-Unity-SDK
I try this but failed and error.

error code

NullReferenceException: Object reference not set to an instance of an object
CloudBread.CBToolEditor.GetClassTextFile (System.String fileName_) (at Assets/CloudBread/Editor/CBToolEditor.cs:14)
CloudBread.CBPostman.MakeStructFromJson (System.String structName_, System.String structType_, System.String jsonText_) (at Assets/CloudBread/Editor/CBPostman.cs:318)
CloudBread.CBPostman.GenerateStruct (System.String postData_, System.String header_) (at Assets/CloudBread/Editor/CBPostman.cs:287)
CloudBread.CBPostman.DrawBodyRight () (at Assets/CloudBread/Editor/CBPostman.cs:207)
CloudBread.CBPostman.DrawBody () (at Assets/CloudBread/Editor/CBPostman.cs:70)
CloudBread.CBPostman.OnGUI () (at Assets/CloudBread/Editor/CBPostman.cs:34)
System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)
Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:232)
System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MethodBase.cs:115)
UnityEditor.HostView.Invoke (System.String methodName, System.Object obj) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:285)
UnityEditor.HostView.Invoke (System.String methodName) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:278)
UnityEditor.HostView.InvokeOnGUI (Rect onGUIPosition) (at

Coupon module biz logic problem

In coupon logic does not work as usual coupon business.

  • CBSelCoupons will be deplicate
  • (TODO)In Admin Web, will add massive coupon adding page
  • To genenrate massive coupons, process it SQL Query until Admin Web implementatoin.

Action plan

  1. CBSelCoupons 에 비즈니스 로직 오류. 이벤트와 같은 동작을 하며 쿠폰 로직은 완전히 다름.
  2. 대량 쿠폰 생성을 현재는 SQL 쿼리로 해야함. 단일 쿼리는 구 관리자 페이지에서 제공.
    (TODO) 신 관리자 페이지에서 쿠폰 대량 생성 및 Excel로 다운로드 기능 필요.
  3. 대량 쿠폰을 생성 후 쿠폰 push 대행 업체 등(쿠폰을 push로 보내거나 예약 설치자 대상 알림 전달, 마케팅 등)에 보내기 위한 excel 문서로 export 하는 방안은 SQL Server Management Studio를 이용하는 방안 제공
  4. 쿠폰이 현재는 item을 보내는 로직만 존재(MemberItem)하나, 게임 속성를 올리기 위한 부분에 처리 필요 (gameinfo의 값을 업데이트)

Need of English installation guide

Hi folks :)
I'm newbie to this project.

When I try to install CloudBread, I found that there is no installation guide written in English.
I think that English documentation is crucial to get interest from people but Korean.

update CloudBread-DB-Install-Script Readme file

change installation guide from

  1. install-with-sample.bat.bat
    Install all database objects , stored procedures and sample data.
    install-CloudBreadDB-object-create.bat SQLSERVER USERID PASSWORD DATABASE

TO
2) install-with-sample.bat
Install all database objects , stored procedures and sample data.
install-with-sample.bat SQLSERVER USERID PASSWORD DATABASE

[Suggestion] Better URL Routes

Hi. I'm developer signed up CB camp. I guess CloudBread's RESTful API routes can be improved for better immediacy. Let me suggest below.

API Route Rule

CRUD

API to create, read, update and delete resources.

Find Resources

Method: GET

/v3/:resources
/v3/:resources/:resourceID
/v3/:resources/:resourceID/:children
/v3/:resources/:resourceID/:children/:childID

Create Resource

Method: POST

/v3/:resources
/v3/:resources/:resourceID/:children

Update Resources

Method: PUT, PATCH (PUT is dominating but PATCH is also nice)

/v3/:resources
/v3/:resources/resourceID
/v3/:resources/:resourceID/:children
/v3/:resources/:resourceID/:children/:childID

Delete Resources

Method: DELETE

/v3/:resources
/v3/:resources/:resourceID
/v3/:resources/:resourceID/:children
/v3/:resources/:resourceID/:children/:childID

Conditions

Sometimes, requestements need conditions such as sorting, limiting, skipping and filtering resources.

Skipping

{
  "skip": 40,
  "skip": 140
}

Limiting

{
  "limit": 30,
  "limit": 10
}

Sorting

{
  "sort": "createdAt desc",
  "sort": "username asc, updatedAt desc",
  "sort": {
    "field": "createdAt",
    "method": "desc"
  },
  "sort": [
    {
      "field": "username",
      "method": "asc"
    }, {
      "field": "updatedAt",
      "method": "desc"
    }
  ],
  "sort": [
    "username asc",
    "updatedAt desc"
  ]
}

Filtering

{
  "where": [
    {
      "field": "balance",
      "operator": ">",
      "value": 4000
    }, {
      "field": "level",
      "operator": "<",
      "value": 20
    }, {
      "field": "username",
      "operator": "contain",
      "value": "BlahBlah"
    }
  ],
  "where": {
    "balance": {
      "operator": ">",
      "value": 4000
    },
    "level": {
      "operator": "<",
      "value": 20
    },
    "username": {
      "operator": "contain",
      "value": "BlahBlah"
    }
  },
  "where": {
    "balance": [">", 4000],
    "level": ["<", 20],
    "username": ["contain", "BlahBlah"]
  }
}

Replacement Examples

/api/CBComSelMember => /v3/members/:memberID
/api/CBComUdtItemList1 => /v3/members/:memberID/items1
/api/CBSelGiftItemToMe => /v3/members/:memberID/gifts

Thank you!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.