|
@@ -187,20 +187,29 @@ const removeAvatar = async (req, res, next) => {
|
|
|
const filteredAvatars = [...avatarsArr].filter(
|
|
|
({ avatarUrl }) => avatarUrl !== toDelete.avatarUrl
|
|
|
);
|
|
|
- await fs.unlink(path.join(DIR_STATIC, toDelete.avatarUrl));
|
|
|
const avatarUrl = filteredAvatars[0].avatarUrl;
|
|
|
- await UserModel.updateUser(id, { avatarUrl, avatarsArr: filteredAvatars });
|
|
|
- await ChatModel.updateCompanionsChat(id, {
|
|
|
- avatarUrl,
|
|
|
- avatarsArr: filteredAvatars,
|
|
|
- });
|
|
|
- await ContactModel.updateCompanionsContact(number, { avatarUrl });
|
|
|
- await MessageModel.updateOwnerMessages(
|
|
|
- { companionIdFlow: { $eq: id } },
|
|
|
- { avatarUrl }
|
|
|
- );
|
|
|
- return res.status(200).json({
|
|
|
- data: {},
|
|
|
+ const params = {
|
|
|
+ Bucket: AWS_BUCKET_NAME,
|
|
|
+ Key: `${toDelete.avatarUrl}`,
|
|
|
+ };
|
|
|
+ s3.deleteObject(params, async function (err, _data) {
|
|
|
+ if (err) throw err;
|
|
|
+ await UserModel.updateUser(id, {
|
|
|
+ avatarUrl,
|
|
|
+ avatarsArr: filteredAvatars,
|
|
|
+ });
|
|
|
+ await ChatModel.updateCompanionsChat(id, {
|
|
|
+ avatarUrl,
|
|
|
+ avatarsArr: filteredAvatars,
|
|
|
+ });
|
|
|
+ await ContactModel.updateCompanionsContact(number, { avatarUrl });
|
|
|
+ await MessageModel.updateOwnerMessages(
|
|
|
+ { companionIdFlow: { $eq: id } },
|
|
|
+ { avatarUrl }
|
|
|
+ );
|
|
|
+ return res.status(200).json({
|
|
|
+ data: {},
|
|
|
+ });
|
|
|
});
|
|
|
} catch (e) {
|
|
|
next(e);
|
|
@@ -209,61 +218,51 @@ const removeAvatar = async (req, res, next) => {
|
|
|
|
|
|
const updateAvatar = async (req, res, next) => {
|
|
|
try {
|
|
|
- const { token, id } = req.user;
|
|
|
+ const token = req.user.token;
|
|
|
+ const userId = req.user.id;
|
|
|
+ const userNumber = req.user.number;
|
|
|
const pathToFile = req.file.path;
|
|
|
const originalName = req.file.originalname;
|
|
|
- // const newFileName = `${Math.round(Date.now() / 1000)}${id}${originalName}`;
|
|
|
- // await fs.rename(
|
|
|
- // path.join(DIR_UPLOAD, originalName),
|
|
|
- // path.join(DIR_UPLOAD, newFileName)
|
|
|
- // );
|
|
|
+ const newFileName = `${Math.round(
|
|
|
+ Date.now() / 1000
|
|
|
+ )}${userId}${originalName}`;
|
|
|
+ const cropImg = await Jimp.read(pathToFile);
|
|
|
+ await cropImg
|
|
|
+ .autocrop()
|
|
|
+ .cover(
|
|
|
+ 250,
|
|
|
+ 250,
|
|
|
+ Jimp.HORIZONTAL_ALIGN_CENTER | Jimp.VERTICAL_ALIGN_MIDDLE
|
|
|
+ )
|
|
|
+ .writeAsync(pathToFile);
|
|
|
const fileContent = await fs.readFile(pathToFile);
|
|
|
const params = {
|
|
|
Bucket: AWS_BUCKET_NAME,
|
|
|
- Key: `${originalName}`,
|
|
|
+ Key: `${newFileName}`,
|
|
|
Body: fileContent,
|
|
|
};
|
|
|
-
|
|
|
- s3.upload(params, (err, data) => {
|
|
|
+ s3.upload(params, async (err, data) => {
|
|
|
if (err) throw err;
|
|
|
fs.unlink(pathToFile);
|
|
|
- console.log(`File uploaded successfully. ${data.Location}`);
|
|
|
- });
|
|
|
-
|
|
|
- // const userId = req.user.id;
|
|
|
- // const userNumber = req.user.number;
|
|
|
- // const pathToFile = req.file.path;
|
|
|
- // const originalName = req.file.originalname;
|
|
|
- // const newNameAvatar = `${Math.round(Date.now() / 1000)}${originalName}`;
|
|
|
- // await createFolderIsExist(path.join(DIR_STATIC, userId));
|
|
|
- // const img = await Jimp.read(pathToFile);
|
|
|
- // await img
|
|
|
- // .autocrop()
|
|
|
- // .cover(
|
|
|
- // 250,
|
|
|
- // 250,
|
|
|
- // Jimp.HORIZONTAL_ALIGN_CENTER | Jimp.VERTICAL_ALIGN_MIDDLE
|
|
|
- // )
|
|
|
- // .writeAsync(pathToFile);
|
|
|
- // await fs.rename(pathToFile, path.join(DIR_STATIC, userId, newNameAvatar));
|
|
|
- // const avatarUrl = path.normalize(path.join(userId, newNameAvatar));
|
|
|
- // const avatarsArr = [
|
|
|
- // { avatarUrl, updatedAt: new Date() },
|
|
|
- // ...req.user.avatarsArr,
|
|
|
- // ];
|
|
|
- // await UserModel.updateUser(userId, { avatarUrl, avatarsArr });
|
|
|
- // await ChatModel.updateCompanionsChat(userId, { avatarUrl, avatarsArr });
|
|
|
- // await ContactModel.updateCompanionsContact(userNumber, { avatarUrl });
|
|
|
- // await MessageModel.updateOwnerMessages(
|
|
|
- // { companionIdFlow: { $eq: userId } },
|
|
|
- // { avatarUrl }
|
|
|
- // );
|
|
|
- return res.status(200).json({
|
|
|
- status: 'success',
|
|
|
- code: 200,
|
|
|
- data: {
|
|
|
- token,
|
|
|
- },
|
|
|
+ const avatarUrl = data.Location;
|
|
|
+ const avatarsArr = [
|
|
|
+ { avatarUrl, updatedAt: new Date() },
|
|
|
+ ...req.user.avatarsArr,
|
|
|
+ ];
|
|
|
+ await UserModel.updateUser(userId, { avatarUrl, avatarsArr });
|
|
|
+ await ChatModel.updateCompanionsChat(userId, { avatarUrl, avatarsArr });
|
|
|
+ await ContactModel.updateCompanionsContact(userNumber, { avatarUrl });
|
|
|
+ await MessageModel.updateOwnerMessages(
|
|
|
+ { companionIdFlow: { $eq: userId } },
|
|
|
+ { avatarUrl }
|
|
|
+ );
|
|
|
+ return res.status(200).json({
|
|
|
+ status: 'success',
|
|
|
+ code: 200,
|
|
|
+ data: {
|
|
|
+ token,
|
|
|
+ },
|
|
|
+ });
|
|
|
});
|
|
|
} catch (e) {
|
|
|
next(e);
|