@@ -3,6 +3,8 @@ const AWS = require('aws-sdk');
3
3
const mime = require ( 'mime-types' ) ;
4
4
const { v4 : uuidv4 } = require ( 'uuid' ) ;
5
5
6
+ const ImageModel = require ( '../models/images.model' ) ;
7
+
6
8
AWS . config . update ( {
7
9
accessKeyId : process . env . IAM_ACCESS_KEY ,
8
10
secretAccessKey : process . env . IAM_SECRET_KEY ,
@@ -14,7 +16,8 @@ const s3 = new AWS.S3();
14
16
exports . uploadImage = ( req , res ) => {
15
17
let fileInfo = {
16
18
source : req . file . path ,
17
- key : `${ uuidv4 ( ) } ---${ req . file . filename } ` ,
19
+ key : `${ uuidv4 ( ) } ---${ req . file . filename } ` ,
20
+ caption : req . body . caption ,
18
21
contentType : mime . lookup ( req . file . path ) ,
19
22
author : req . jwt . name ,
20
23
authorEmail : req . jwt . email
@@ -46,11 +49,24 @@ let uploadFile = (fileInfo, res) => {
46
49
}
47
50
} ;
48
51
52
+ //Upload image to S3 bucket
49
53
s3 . upload ( params , ( err , data ) => {
50
54
if ( err ) {
51
55
return res . status ( 500 ) . send ( { error : err } ) ;
52
56
}
53
57
58
+ let keys = fileInfo . key . split ( '---' ) ;
59
+ const imageData = {
60
+ _id : keys [ 0 ] ,
61
+ fileName : keys [ 1 ] ,
62
+ caption : fileInfo . caption ,
63
+ author : fileInfo . author
64
+ } ;
65
+
66
+ //After successful upload save the image info to Image Mongo model
67
+ ImageModel . saveImage ( imageData ) ;
68
+
69
+ //After successful upload delete the local image
54
70
fs . unlink ( fileInfo . source , ( err ) => {
55
71
if ( err ) throw err ;
56
72
console . log ( `${ fileInfo . source } deleted.` )
0 commit comments