@xuda.io/drive_module 1.1.785 → 1.1.787

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.
Files changed (2) hide show
  1. package/index.js +110 -2
  2. package/package.json +1 -1
package/index.js CHANGED
@@ -404,14 +404,112 @@ exports.get_drive_files = async function (req) {
404
404
  return err.message;
405
405
  }
406
406
  };
407
+ // exports.get_drive_file_info = async function (req) {
408
+ // try {
409
+ // const { type, drive_type, app_id, file_name } = req;
410
+ // var { file_path } = req;
411
+
412
+ // let doc_ret,
413
+ // doc_id,
414
+ // doc = {};
415
+
416
+ // const app_id_master = await _common.get_project_app_id(app_id, true);
417
+
418
+ // switch (drive_type) {
419
+ // case "studio": {
420
+ // const target_dir = path.join(_conf[`studio_drive_path`], app_id_master);
421
+ // doc_id = file_path.replace(target_dir, "");
422
+ // doc_ret = await db_module.get_app_couch_doc(app_id_master, doc_id);
423
+ // break;
424
+ // }
425
+
426
+ // case "workspace": {
427
+ // if (
428
+ // type === "file" &&
429
+ // !file_path.includes(app_id) &&
430
+ // !file_path.includes(app_id_master)
431
+ // ) {
432
+ // throw new Error("file_path unauthorized");
433
+ // }
434
+ // const app_id_reference = await _common.get_project_app_id(app_id);
435
+ // doc_id = path.basename(file_path);
436
+ // doc_ret = await db_module.get_app_couch_doc(app_id_reference, doc_id);
437
+ // break;
438
+ // }
439
+
440
+ // case "user": {
441
+ // doc_id = path.basename(file_path);
442
+ // doc_ret = await db_module.get_couch_doc("xuda_drive", doc_id);
443
+ // break;
444
+ // }
445
+ // default:
446
+ // break;
447
+ // }
448
+
449
+ // var statsObj = {};
450
+ // if (doc_ret.code > -1) {
451
+ // doc = doc_ret.data;
452
+
453
+ // delete doc._id;
454
+ // delete doc._rev;
455
+
456
+ // delete doc.docType;
457
+ // delete doc.stat;
458
+ // if (doc.bucket) {
459
+ // doc.regions = Object.entries(doc.bucket).length;
460
+ // }
461
+
462
+ // delete doc.bucket;
463
+ // if (doc.uid) {
464
+ // let ret = await db_module.get_couch_doc("xuda_accounts", doc.uid);
465
+ // doc.account_info = ret.data.account_info;
466
+ // }
467
+ // if (req.drive_type === "workspace") {
468
+ // const app_id_master = await _common.get_project_app_id(app_id, true);
469
+ // const ret = await db_module.get_app_obj(app_id_master);
470
+
471
+ // if (ret.code < 0) {
472
+ // return ret;
473
+ // }
474
+ // const app_obj = ret.data;
475
+ // doc.app_name = app_obj.app_name;
476
+ // }
477
+ // } else if (drive_type === "studio") {
478
+ // statsObj = fs.statSync(file_path);
479
+ // }
480
+
481
+ // return {
482
+ // code: 200,
483
+ // data: {
484
+ // name: doc_ret.code < 0 ? file_name : doc.originalname,
485
+ // cy_data:
486
+ // doc_ret.code < 0
487
+ // ? { date_created: new Date(statsObj.birthtime).valueOf() }
488
+ // : doc,
489
+ // exif_data: doc.exif_data,
490
+ // },
491
+ // };
492
+ // } catch (err) {
493
+ // return {
494
+ // code: -200,
495
+ // data: err.message,
496
+ // };
497
+ // }
498
+ // };
499
+
407
500
  exports.get_drive_file_info = async function (req) {
408
501
  try {
409
502
  const { type, drive_type, app_id, file_name } = req;
410
503
  var { file_path } = req;
411
504
 
505
+ let doc=await get_drive_doc(drive_type, app_id,
506
+ uid,
507
+ file_path,
508
+ headers)
509
+
412
510
  let doc_ret,
413
511
  doc_id,
414
- doc = {};
512
+
415
513
 
416
514
  const app_id_master = await _common.get_project_app_id(app_id, true);
417
515
 
@@ -2589,8 +2687,10 @@ const get_drive_doc = async function (
2589
2687
 
2590
2688
  if (doc_ret.code < 0) {
2591
2689
  if (drive_type === "studio") {
2690
+ const app_id_reference = await _common.get_project_app_id(app_id);
2592
2691
  const file_name = path.basename(file_path);
2593
2692
  const ext = path.extname(file_name).toLowerCase();
2693
+ const statsObj = fs.statSync(file_path);
2594
2694
  doc = {
2595
2695
  _id: file_path,
2596
2696
  docType: `studio_drive`,
@@ -2598,7 +2698,7 @@ const get_drive_doc = async function (
2598
2698
  server_file_name: file_name,
2599
2699
  originalname: file_name,
2600
2700
  file_path: file_path,
2601
- date_created: Date.now(),
2701
+ date_created: new Date(statsObj.birthtime).valueOf(),
2602
2702
  ip: headers?.["cf-connecting-ip"],
2603
2703
  country: headers?.["cf-ipcountry"],
2604
2704
  file_ext: ext,
@@ -2608,6 +2708,14 @@ const get_drive_doc = async function (
2608
2708
  app_id_reference: await _common.get_project_app_id(app_id, true),
2609
2709
  uid,
2610
2710
  };
2711
+ const save_ret = await db_module.save_app_couch_doc(
2712
+ app_id_reference,
2713
+ doc
2714
+ );
2715
+ if (save_ret.code < 0) {
2716
+ throw new Error("studio file doc save error");
2717
+ }
2718
+ doc._rev = save_ret.data.rev;
2611
2719
  } else {
2612
2720
  throw new Error("file doc not found");
2613
2721
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xuda.io/drive_module",
3
- "version": "1.1.785",
3
+ "version": "1.1.787",
4
4
  "description": "Xuda Drive Server Module",
5
5
  "main": "index.js",
6
6
  "dependencies": {