yaml-admin-api 0.0.80 → 0.0.82

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "yaml-admin-api",
3
- "version": "0.0.80",
3
+ "version": "0.0.82",
4
4
  "license": "MIT",
5
5
  "description": "YAML Admin API package",
6
6
  "type": "commonjs",
@@ -338,6 +338,34 @@ const generateCrud = async ({ app, db, entity_name, yml_entity, yml, options })
338
338
  res.json(list);
339
339
  }));
340
340
 
341
+ //view
342
+ app.get(`${api_prefix}/${entity_name}/:id`, auth.isAuthenticated, asyncErrorHandler(async (req, res) => {
343
+ let f = {}
344
+ f[key_field.name] = parseKey(req.params.id)
345
+ Object.assign(f, default_filter)
346
+
347
+ let aggregate = await makeApiGenerateAggregate(db, entity_name, yml_entity, yml, options)
348
+
349
+ let m
350
+ if(aggregate?.length > 0) {
351
+ aggregate = [{$match: f}, ...aggregate, { $limit: 1 }]
352
+ if(yml.debug && entity_name == 'ils')
353
+ console.log('list', entity_name, JSON.stringify(aggregate, null, 2))
354
+ const result = await db.collection(collection_name).aggregate(aggregate).toArray()
355
+ m = result.length > 0 ? result[0] : null
356
+ } else {
357
+ m = await db.collection(collection_name).findOne(f);
358
+ }
359
+
360
+ if (!m)
361
+ return res.status(404).send('Not found');
362
+
363
+ m.id = getKeyFromEntity(m)
364
+ await addInfo(db, [m])
365
+
366
+ res.json(m);
367
+ }))
368
+
341
369
 
342
370
  const constructEntity = async (req, entityId) => {
343
371
  var entity = {};
@@ -467,35 +495,6 @@ const generateCrud = async ({ app, db, entity_name, yml_entity, yml, options })
467
495
  res.json(entity);
468
496
  }));
469
497
 
470
- //view
471
- app.get(`${api_prefix}/${entity_name}/:id`, auth.isAuthenticated, asyncErrorHandler(async (req, res) => {
472
- let f = {}
473
- f[key_field.name] = parseKey(req.params.id)
474
- Object.assign(f, default_filter)
475
-
476
- let aggregate = await makeApiGenerateAggregate(db, entity_name, yml_entity, yml, options)
477
-
478
- let m
479
- if(aggregate?.length > 0) {
480
- aggregate = [{$match: f}, ...aggregate, { $limit: 1 }]
481
- const result = await db.collection(collection_name).aggregate(aggregate).toArray()
482
- m = result.length > 0 ? result[0] : null
483
- } else {
484
- m = await db.collection(collection_name).findOne(f);
485
- }
486
-
487
- if (!m)
488
- return res.status(404).send('Not found');
489
-
490
- m.id = getKeyFromEntity(m)
491
- await addInfo(db, [m])
492
-
493
- if(yml.debug)
494
- console.log('show', entity_name, m)
495
-
496
- res.json(m);
497
- }))
498
-
499
498
  //delete
500
499
  app.delete(`${api_prefix}/${entity_name}/:id`, auth.isAuthenticated, asyncErrorHandler(async (req, res) =>{
501
500
  let f = {}
@@ -793,9 +792,7 @@ const makeApiGenerateAggregate = async (db, entity_name, yml_entity, yml, option
793
792
  projection[field] = 1
794
793
  } else if(fields) {
795
794
  fields.forEach(m => {
796
- if(m.type !== 'reference') {
797
- projection[m.name] = 1
798
- }
795
+ projection[m.name] = 1
799
796
  })
800
797
 
801
798
  // reference 필드는 중첩 lookup으로 처리
@@ -29,10 +29,10 @@ const generateS3UploadApi = async ({ app, db, yml, options }) => {
29
29
  let ext = req.params.ext;
30
30
 
31
31
  let contentType = whatIsContentType(ext)
32
- let key = `${member_no}/${fileName}.${ext}`
32
+ let key = `${prefix}/${member_no}/${fileName}.${ext}`
33
33
  const uploadUrl = await getSignedUrl(s3, new PutObjectCommand({Bucket: bucket,
34
34
  ContentType: contentType,
35
- Key: `${prefix}/${key}`}), { expiresIn: 300 });
35
+ Key: key}), { expiresIn: 300 });
36
36
 
37
37
  let r = {upload_url:uploadUrl, key, fileName:`${fileName}.${ext}`, member_no, contentType}
38
38
  console.log(r)
@@ -46,10 +46,10 @@ const generateS3UploadApi = async ({ app, db, yml, options }) => {
46
46
  let ext = req.params.ext;
47
47
 
48
48
  let contentType = whatIsContentType(ext)
49
- let key = `${member_no}/${fileName}.${ext}`
49
+ let key = `${prefix}/${member_no}/${fileName}.${ext}`
50
50
  const uploadUrl = await getSignedUrl(s3, new PutObjectCommand({Bucket: bucket_private,
51
51
  ContentType: contentType,
52
- Key: `${prefix}/${key}`}), { expiresIn: 300 });
52
+ Key: `${key}`}), { expiresIn: 300 });
53
53
 
54
54
  let r = {upload_url:uploadUrl, key, fileName:`${fileName}.${ext}`, member_no, contentType}
55
55
 
@@ -63,12 +63,12 @@ const generateS3UploadApi = async ({ app, db, yml, options }) => {
63
63
  let fileName = await genEntityIdWithKey(db, 'file');
64
64
  let ext = req.params.ext;
65
65
 
66
- let key = `/${member_no}/${fileName}.${ext}`;
66
+ let key = `${prefix}/${member_no}/${fileName}.${ext}`;
67
67
  let contentType = whatIsContentType(ext);
68
68
 
69
69
  const createMultipartUpload = await s3.send(new CreateMultipartUploadCommand({
70
70
  Bucket: bucket_private,
71
- Key: `${prefix}/${key}`,
71
+ Key: `${key}`,
72
72
  ContentType: contentType
73
73
  }));
74
74
 
@@ -79,10 +79,9 @@ const generateS3UploadApi = async ({ app, db, yml, options }) => {
79
79
  app.post(api_prefix+'/api/media/url/secure/part', auth.isAuthenticated, async function (req, res) {
80
80
  let s3 = getS3();
81
81
  let { key, uploadId, partNumber } = req.body;
82
-
83
82
  const command = new UploadPartCommand({
84
83
  Bucket: bucket_private,
85
- Key: `${prefix}/${key}`,
84
+ Key: `${key}`,
86
85
  UploadId: uploadId,
87
86
  PartNumber: partNumber
88
87
  });
@@ -101,7 +100,7 @@ const generateS3UploadApi = async ({ app, db, yml, options }) => {
101
100
 
102
101
  await s3.send(new CompleteMultipartUploadCommand({
103
102
  Bucket: bucket_private,
104
- Key: `${prefix}/${key}`,
103
+ Key: `${key}`,
105
104
  UploadId: uploadId,
106
105
  MultipartUpload: { Parts: parts }
107
106
  }));
@@ -117,7 +116,7 @@ const generateS3UploadApi = async ({ app, db, yml, options }) => {
117
116
 
118
117
  await s3.send(new AbortMultipartUploadCommand({
119
118
  Bucket: bucket_private,
120
- Key: `${prefix}/${key}`,
119
+ Key: `${key}`,
121
120
  UploadId: uploadId
122
121
  }));
123
122
 
@@ -136,11 +135,11 @@ const generateS3UploadApi = async ({ app, db, yml, options }) => {
136
135
  let r = {list:[], r:true}
137
136
  for(let ext of ext_list) {
138
137
  let fileName = await genEntityIdWithKey(db, 'file')
139
- let key = `/${member_no}/${fileName}.${ext}`
138
+ let key = `${prefix}/${member_no}/${fileName}.${ext}`
140
139
  let contentType = whatIsContentType(ext)
141
140
  const upload_url = await getSignedUrl(s3, new PutObjectCommand({Bucket: bucket,
142
141
  ContentType: contentType,
143
- Key: `${prefix}/${key}`}), { expiresIn: 300 });
142
+ Key: `${key}`}), { expiresIn: 300 });
144
143
 
145
144
  r.list.push({upload_url, key, fileName:`${fileName}.${ext}`, member_no, contentType})
146
145
  }
@@ -156,11 +155,11 @@ const generateS3UploadApi = async ({ app, db, yml, options }) => {
156
155
  let r = {list:[], r:true}
157
156
  for(let ext of ext_list) {
158
157
  let fileName = await genEntityIdWithKey(db, 'file')
159
- let key = `${member_no}/${fileName}.${ext}`
158
+ let key = `${prefix}/${member_no}/${fileName}.${ext}`
160
159
  let contentType = whatIsContentType(ext)
161
160
  const upload_url = await getSignedUrl(s3, new PutObjectCommand({Bucket: bucket_private,
162
161
  ContentType: contentType,
163
- Key: `${prefix}/${key}`}), { expiresIn: 300 });
162
+ Key: `${key}`}), { expiresIn: 300 });
164
163
 
165
164
  r.list.push({upload_url, key, fileName:`${fileName}.${ext}`, member_no, contentType})
166
165
  }