async function savePlayer()

in backend/Functions/HTTP/player_put/app.js [32:62]


async function savePlayer(playerName, playerItem) {
  try {
    const expressionAttributeValues = {};
    let updateExpression = 'SET latestUpdate = :updateTime';
    expressionAttributeValues[':updateTime'] = Date.now();
    Object.keys(playerItem).forEach((key) => {
      if (key !== 'playerName') {
        updateExpression += `, ${key} = :${key}`;
        expressionAttributeValues[`:${key}`] = playerItem[key];
      }
    });
    const params = {
      TableName: playersTable,
      Key: { playerName },
      UpdateExpression: updateExpression,
      ExpressionAttributeValues: expressionAttributeValues,
      ReturnValues: 'UPDATED_NEW',
    };
    const ddbResult = await ddb.update(params).promise();
    return {
      status: 200,
      body: {
        avatar: ddbResult.Attributes.avatar,
        thumbnail: ddbResult.Attributes.thumbnail,
      },
    };
  } catch (e) {
    console.error(`error updating user ${JSON.stringify(e.stack)}`);
    throw e;
  }
}