Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 31 additions & 5 deletions api/controllers/board.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,33 @@ module.exports = {
};

// TODO: Use the caller's email instead of getting it from the body.
function createBoard(req, res) {
const board = new Board(req.body);
async function createBoard(req, res) {
const boardData = { ...req.body };
let isLocalUpdateNeeded = false;

if (
boardData.tiles &&
Array.isArray(boardData.tiles) &&
hasBase64Images(boardData.tiles)
) {
try {
const imageProcessResult = await processBase64Images(
boardData.tiles,
BLOB_CONTAINER_NAME
);

boardData.tiles = imageProcessResult.tiles;
isLocalUpdateNeeded = true;

} catch (imageError) {
console.error('Base64 images processing failed during board creation:', {
error: imageError.message,
tilesCount: boardData.tiles?.length
});
}
}

const board = new Board(boardData);
board.lastEdited = moment().format();
board.save(function (err, board) {
if (err) {
Expand All @@ -34,7 +59,9 @@ function createBoard(req, res) {
error: err.message
});
}
return res.status(200).json(board.toJSON());
const response = board.toJSON();
response.isLocalUpdateNeeded = isLocalUpdateNeeded;
return res.status(200).json(response);
});
}

Expand Down Expand Up @@ -153,8 +180,7 @@ async function updateBoard(req, res) {
try {
const imageProcessResult = await processBase64Images(
updateData.tiles,
BLOB_CONTAINER_NAME,
id
BLOB_CONTAINER_NAME
);
updateData.tiles = imageProcessResult.tiles;
isLocalUpdateNeeded = true;
Expand Down
Loading