Insert

public BackendReturnObject Insert(string tableName);
public BackendReturnObject Insert(string tableName, Param param);

파라미터

ValueTypeDescription
tableNameString게임정보를 저장할 테이블 명
paramParam(optional) 게임정보에 저장할 내용

설명

테이블에 row을 저장합니다.

  • 해당 row는 insert 한 유저에게 귀속됩니다.
  • Param을 명시하지 않은 경우 콘솔에서 설정한 기본값으로 저장됩니다.
  • Param을 인자값으로 준 경우 Param에 입력한 값으로 저장됩니다.
  • 저장 시, partition, gamer_id, inDate, updatedAt, sender, receiver, reservationDate 7가지 필드는 서버에서 사용하는 컬럼입니다. 해당 컬럼이 포함되면 에러가 발생합니다.

    Get으로 퍼블릭 테이블을 불러올 때 내 정보와 상대방에 정보가 혼재되어 구분이 되지 않을 수 있습니다.
    그렇기에 유저의 inDate를 미리 스카마에 추가 해두는 등의 방법을 사용하시는 것을 추천드립니다.

Example

동기

Param lunch = new Param();
lunch.Add("how much", 332);
lunch.Add("when", "yesterday");
lunch.Add("what", "eat chocolate");

Dictionary<string, int> dic = new Dictionary<string, int>
{
    { "dic1", 1 },
    { "dic4", 2 },
    { "dic2", 4 }
};

Dictionary<string, string> dic2 = new Dictionary<string, string>
{
    { "mm", "j" },
    { "nn", "n" },
    { "dd", "2" }
};

String[] list = { "a", "b" };
int[] list2 = { 400, 500, 600 };

Param param = new Param();
param.Add("이름", "cheolsu");
param.Add("score", 99);
param.Add("lunch", lunch);
param.Add("dic_num", dic);
param.Add("dic_string", dic2);
param.Add("list_string", list);
param.Add("list_num", list2);

Backend.GameSchemaInfo.Insert ( "tableName", param );

비동기

Backend.GameSchemaInfo.Insert( "tableName", param, (callback) => 
{
    // 이후 처리
});

SendQueue

SendQueue.Enqueue(Backend.GameSchemaInfo.Insert, "tableName", param, (callback) => 
{
    // 이후 처리
});

ReturnCase

Success cases

테이블 삽입에 성공한 경우
statusCode : 200
message : Success
returnValue : {"inDate":"삽입에 성공한 테이블의 inDate"}

ex) returnValue : {"inDate":"2020-06-10T09:30:52.910Z"}

Error cases

존재하지 않는 table에 insert를 시도한 경우
statusCode : 404
errorCode : NotFoundException
message : table not found, table을(를) 찾을 수 없습니다

비활성화 된 table에 insert를 시도한 경우
statusCode : 412
errorCode : PreconditionFailed
message : inactiveTable 사전 조건을 만족하지 않습니다.

param에 partition, gamer_id, inDate, updatedAt, sender, receiver, reservationDate 7가지 필드가 있는 경우
statusCode : 405
errorCode : MethodNotAllowedParameterException
message : MethodNotAllowed {param value}, 이용할 수 없는 {param value} 입니다

하나의 row( column들의 집합 )이 400KB를 넘는 경우
statusCode : 413
errorCode : ServerErrorException
message : request entity too large

스키마를 정의할 때 선언한 컬럼의 데이터 타입과 insert 하려는 데이터 타입이 다른 경우
statusCode : 400
errorCode : BadParameterException
message : bad dataType, 잘못된 dataType 입니다

스키마를 정의하지 않은 컬럼을 insert하려고 시도한 경우
statusCode : 400
errorCode : BadParameterException
message : bad 컬럼이 존재하지 않습니다., 잘못된 컬럼이 존재하지 않습니다. 입니다

스키마에 list 컬럼을 선언했는데 삽입 시 param에 list 컬럼을 입력하지 않은 경우
statusCode : 400
errorCode : BadParameterException
message : bad list data, 잘못된 list data 입니다

스키마에 list 컬럼을 선언할 때 선택한 list의 크기와 param에 입력한 list의 크기가 다른 경우
statusCode : 400
errorCode : BadParameterException
message : bad list data length, 잘못된 list data length 입니다

스키마에 map 컬럼을 선언했는데 삽입 시 param에 map 컬럼을 입력하지 않은 경우
statusCode : 400
errorCode : BadParameterException
message : bad map data, 잘못된 map data 입니다

스키마에 map 컬럼을 선언할 때 선택한 map의 크기와 param에 입력한 map의 크기가 다른 경우
statusCode : 400
errorCode : BadParameterException
message : bad map data length, 잘못된 map data length 입니다