본문 바로가기

Backend/NestJS

timestamp 값이 내려가지 않았던 문제 수정

문제 상황 

db 테이블에는 timestamp 컬럼에 값이 존재했는데, timestamp 값이 계속해서 null로 내려가는 문제가 있었다. 

    responseData.data.metadata.attributes.forEach((attribute) => {
      if (attribute.value === 'Used') {
        const findHistory = benefitTxHistoryList.find((history) => history.traitType === attribute.type);
        if (findHistory) {
          attribute.timestamp = findHistory.timestamp;
        } else {
          attribute.timestamp = null;
        }
      } else {
        attribute.timestamp = null;
      }
    });

 

해결 방법

    responseData.data.metadata.attributes.forEach((attribute) => {
      if (attribute.value[0] === 'Used') {
        const findHistory = benefitTxHistoryList.find((history) => history.traitType === attribute.type);
        if (findHistory) {
          attribute.timestamp = findHistory.timestamp;
        } else {
          attribute.timestamp = null;
        }
      } else {
        attribute.timestamp = null;
      }
    });



내가 놓치고 있었던 점은, 여기서 value의 값이 List 배열 형태로 내려가는데, 여기서 List를 배열로 인식하지 않고 그냥 .value로 접근했기 때문에 timestamp 값이 null로 내려왔던 것 같다.

 

{
"type": "(Sun)",
"value": [
"Available"
],
"timestamp": null 
},

이런 식이었는데 value가 List 형태로 되어있고,List 형태이기 때문에 여기서 value의 값이 Used일때 timestamp 값을 내려줘야 하므로 value[0] -> value List의 첫번째 인덱스에 접근해서 (Used) timestamp값을 내려줘야 했었다.