blixify-server 0.3.3 → 0.3.5

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.
@@ -1 +1 @@
1
- {"version":3,"file":"fbWrapper.d.ts","sourceRoot":"","sources":["../../src/apis/fbWrapper.ts"],"names":[],"mappings":"AASA,OAAO,cAAc,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAG5C;;;GAGG;AACH,qBAAa,eAAe;IAC1B,OAAO,EAAE,GAAG,CAAM;IAClB,UAAU,SAAM;IAChB,MAAM,UAAS;IACf,MAAM,EAAE,cAAc,CAQpB;IACF,GAAG,EAAE,UAAU,CAAC;IAEhB,YAAY,QAAS,GAAG,aAEtB;gBAGA,OAAO,EAAE,GAAG,EACZ,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,cAAc,EACtB,YAAY,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,OAAO,EACrD,GAAG,EAAE,UAAU;IAUjB,UAAU,SAAU,GAAG,SAIrB;IAEF,eAAe,QACR,GAAG,OACH,GAAG,yBACc,GAAG,EAAE,KAAK,QAAQ,GAAG,CAAC,gCA4E5C;IAEF,UAAU,QACH,GAAG,OACH,GAAG,qBACU,GAAG,KAAK,QAAQ,GAAG,CAAC,gCA6CtC;IAEF,OAAO,QAAe,GAAG,OAAO,GAAG,mBA6BjC;IAEF,eAAe,QACR,GAAG,OACH,GAAG,qBACU,GAAG,KAAK,QAAQ,GAAG,CAAC,gCAoItC;IAEF,UAAU,QACH,GAAG,OACH,GAAG,qBACU,GAAG,KAAK,QAAQ,GAAG,CAAC,gCAkFtC;IAEF,eAAe,QACR,GAAG,OACH,GAAG,yBACc,GAAG,EAAE,KAAK,QAAQ,GAAG,CAAC,gCA2H5C;IAEF,UAAU,QACH,GAAG,OACH,GAAG,qBACU,GAAG,KAAK,QAAQ,GAAG,CAAC,gCA4CtC;IAEF,QAAQ,QAAe,GAAG,OAAO,GAAG,mBAyQlC;IAEF,IAAI,YA+EF;CACH"}
1
+ {"version":3,"file":"fbWrapper.d.ts","sourceRoot":"","sources":["../../src/apis/fbWrapper.ts"],"names":[],"mappings":"AASA,OAAO,cAAc,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAG5C;;;GAGG;AACH,qBAAa,eAAe;IAC1B,OAAO,EAAE,GAAG,CAAM;IAClB,UAAU,SAAM;IAChB,MAAM,UAAS;IACf,MAAM,EAAE,cAAc,CAQpB;IACF,GAAG,EAAE,UAAU,CAAC;IAEhB,YAAY,QAAS,GAAG,aAEtB;gBAGA,OAAO,EAAE,GAAG,EACZ,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,cAAc,EACtB,YAAY,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,OAAO,EACrD,GAAG,EAAE,UAAU;IAUjB,UAAU,SAAU,GAAG,SAIrB;IAEF,eAAe,QACR,GAAG,OACH,GAAG,yBACc,GAAG,EAAE,KAAK,QAAQ,GAAG,CAAC,gCA4E5C;IAEF,UAAU,QACH,GAAG,OACH,GAAG,qBACU,GAAG,KAAK,QAAQ,GAAG,CAAC,gCA6CtC;IAEF,OAAO,QAAe,GAAG,OAAO,GAAG,mBA6BjC;IAEF,eAAe,QACR,GAAG,OACH,GAAG,qBACU,GAAG,KAAK,QAAQ,GAAG,CAAC,gCAoItC;IAEF,UAAU,QACH,GAAG,OACH,GAAG,qBACU,GAAG,KAAK,QAAQ,GAAG,CAAC,gCAkFtC;IAEF,eAAe,QACR,GAAG,OACH,GAAG,yBACc,GAAG,EAAE,KAAK,QAAQ,GAAG,CAAC,gCAkI5C;IAEF,UAAU,QACH,GAAG,OACH,GAAG,qBACU,GAAG,KAAK,QAAQ,GAAG,CAAC,gCA4CtC;IAEF,QAAQ,QAAe,GAAG,OAAO,GAAG,mBAyQlC;IAEF,IAAI,YA+EF;CACH"}
@@ -354,7 +354,12 @@ class FirebaseWrapper {
354
354
  }
355
355
  });
356
356
  this.initBatchDelete = (req, res, workflow) => __awaiter(this, void 0, void 0, function* () {
357
+ var _f, _g, _h, _j;
357
358
  try {
359
+ if ((!Array.isArray(req.body.id) || ((_g = (_f = req.body.id) === null || _f === void 0 ? void 0 : _f.length) !== null && _g !== void 0 ? _g : 0) === 0) &&
360
+ (!Array.isArray(req.body.query) || ((_j = (_h = req.body.query) === null || _h === void 0 ? void 0 : _h.length) !== null && _j !== void 0 ? _j : 0) === 0)) {
361
+ throw "Invalid Batch Delete Config";
362
+ }
358
363
  const batch = this.fbAdmin.firestore().batch();
359
364
  if (Array.isArray(req.body.id)) {
360
365
  const fbCollection = this.fbAdmin
@@ -510,17 +515,17 @@ class FirebaseWrapper {
510
515
  }
511
516
  });
512
517
  this.initList = (req, res) => __awaiter(this, void 0, void 0, function* () {
513
- var _f, _g, _h, _j, _k;
518
+ var _k, _l, _m, _o, _p;
514
519
  try {
515
520
  //INFO : Security Checker
516
521
  const validBaseConfig = (0, QueryModel_1.checkBaseConfig)(this.config, req);
517
522
  if (validBaseConfig) {
518
523
  const aggregate = req.body.aggregate;
519
- const queryList = (_f = req.body.query) !== null && _f !== void 0 ? _f : [];
524
+ const queryList = (_k = req.body.query) !== null && _k !== void 0 ? _k : [];
520
525
  if (aggregate) {
521
- const queryId = (_g = aggregate.queryId) !== null && _g !== void 0 ? _g : "";
522
- const dateId = (_h = aggregate.dateId) !== null && _h !== void 0 ? _h : "baseUpdatedAt";
523
- const dateRanges = (_j = aggregate.range) !== null && _j !== void 0 ? _j : [];
526
+ const queryId = (_l = aggregate.queryId) !== null && _l !== void 0 ? _l : "";
527
+ const dateId = (_m = aggregate.dateId) !== null && _m !== void 0 ? _m : "baseUpdatedAt";
528
+ const dateRanges = (_o = aggregate.range) !== null && _o !== void 0 ? _o : [];
524
529
  const dataList = [];
525
530
  for (const dateRange of dateRanges) {
526
531
  //INFO : Step 1 - Query
@@ -685,7 +690,7 @@ class FirebaseWrapper {
685
690
  }
686
691
  //INFO : Step 2 - Limit
687
692
  if (!req.body.stopLimit) {
688
- fbCollection = fbCollection.limit((_k = req.body.limit) !== null && _k !== void 0 ? _k : 10);
693
+ fbCollection = fbCollection.limit((_p = req.body.limit) !== null && _p !== void 0 ? _p : 10);
689
694
  }
690
695
  //INFO : Step 3 - Sort
691
696
  if (req.body.sort) {
@@ -1 +1 @@
1
- {"version":3,"file":"mongoWrapper.d.ts","sourceRoot":"","sources":["../../src/apis/mongoWrapper.ts"],"names":[],"mappings":"AASA,OAAO,cAAc,MAAM,yBAAyB,CAAC;AAGrD,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,GAAG,CAAC;CACf;AAwJD;;;;GAIG;AACH,qBAAa,YAAY;IACvB,OAAO,EAAE,GAAG,CAAM;IAClB,UAAU,SAAM;IAChB,MAAM,UAAS;IACf,MAAM,EAAE,cAAc,CAQpB;IACF,GAAG,EAAE,UAAU,CAAC;IAChB,OAAO,SAAM;IACb,KAAK,SAAM;IACX,WAAW,EAAE,GAAG,CAAC;IACjB,aAAa,EAAE,MAAM,EAAE,CAAM;IAC7B,KAAK,EAAE,GAAG,CAAC;IAEX,YAAY,QAAS,GAAG,aAEtB;gBAGA,OAAO,EAAE,GAAG,EACZ,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,cAAc,EACtB,YAAY,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,OAAO,EACrD,GAAG,EAAE,UAAU,EACf,OAAO,CAAC,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,EACzC,aAAa,CAAC,EAAE,MAAM,EAAE,EACxB,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI;IAgB3D,UAAU,SAAU,GAAG,SAIrB;IAEF,aAAa,YACF,GAAG,QACN,QAAQ,GAAG,QAAQ,GAAG,QAAQ,OAC/B,GAAG,UACA;QACN,GAAG,CAAC,EAAE,GAAG,CAAC;QACV,GAAG,CAAC,EAAE,GAAG,CAAC;KACX,mBA4DD;IAEF,eAAe,QACR,GAAG,OACH,GAAG,yBACc,GAAG,EAAE,KAAK,QAAQ,GAAG,CAAC;;mBAyE5C;IAEF,UAAU,QACH,GAAG,OACH,GAAG,qBACU,GAAG,KAAK,QAAQ,GAAG,CAAC;;mBAkDtC;IAEF,OAAO,QAAe,GAAG,OAAO,GAAG;;mBAuCjC;IAEF,eAAe,QACR,GAAG,OACH,GAAG,qBACU,GAAG,KAAK,QAAQ,GAAG,CAAC;;mBAgKtC;IAEF,UAAU,QACH,GAAG,OACH,GAAG,qBACU,GAAG,KAAK,QAAQ,GAAG,CAAC;;mBAqGtC;IAEF,eAAe,QACR,GAAG,OACH,GAAG,yBACc,GAAG,EAAE,KAAK,QAAQ,GAAG,CAAC;;mBA0I5C;IAEF,UAAU,QACH,GAAG,OACH,GAAG,qBACU,GAAG,KAAK,QAAQ,GAAG,CAAC;;mBAwCtC;IAEF,mBAAmB,CAAC,GAAG,EAAE,GAAG;IAiO5B,QAAQ,QAAe,GAAG,OAAO,GAAG;;;;;mBAgQlC;IAEF,IAAI,YAgFF;CACH"}
1
+ {"version":3,"file":"mongoWrapper.d.ts","sourceRoot":"","sources":["../../src/apis/mongoWrapper.ts"],"names":[],"mappings":"AASA,OAAO,cAAc,MAAM,yBAAyB,CAAC;AAGrD,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,GAAG,CAAC;CACf;AAwJD;;;;GAIG;AACH,qBAAa,YAAY;IACvB,OAAO,EAAE,GAAG,CAAM;IAClB,UAAU,SAAM;IAChB,MAAM,UAAS;IACf,MAAM,EAAE,cAAc,CAQpB;IACF,GAAG,EAAE,UAAU,CAAC;IAChB,OAAO,SAAM;IACb,KAAK,SAAM;IACX,WAAW,EAAE,GAAG,CAAC;IACjB,aAAa,EAAE,MAAM,EAAE,CAAM;IAC7B,KAAK,EAAE,GAAG,CAAC;IAEX,YAAY,QAAS,GAAG,aAEtB;gBAGA,OAAO,EAAE,GAAG,EACZ,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,cAAc,EACtB,YAAY,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,OAAO,EACrD,GAAG,EAAE,UAAU,EACf,OAAO,CAAC,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,EACzC,aAAa,CAAC,EAAE,MAAM,EAAE,EACxB,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI;IAgB3D,UAAU,SAAU,GAAG,SAIrB;IAEF,aAAa,YACF,GAAG,QACN,QAAQ,GAAG,QAAQ,GAAG,QAAQ,OAC/B,GAAG,UACA;QACN,GAAG,CAAC,EAAE,GAAG,CAAC;QACV,GAAG,CAAC,EAAE,GAAG,CAAC;KACX,mBA4DD;IAEF,eAAe,QACR,GAAG,OACH,GAAG,yBACc,GAAG,EAAE,KAAK,QAAQ,GAAG,CAAC;;mBAyE5C;IAEF,UAAU,QACH,GAAG,OACH,GAAG,qBACU,GAAG,KAAK,QAAQ,GAAG,CAAC;;mBAkDtC;IAEF,OAAO,QAAe,GAAG,OAAO,GAAG;;mBAuCjC;IAEF,eAAe,QACR,GAAG,OACH,GAAG,qBACU,GAAG,KAAK,QAAQ,GAAG,CAAC;;mBAgKtC;IAEF,UAAU,QACH,GAAG,OACH,GAAG,qBACU,GAAG,KAAK,QAAQ,GAAG,CAAC;;mBAqGtC;IAEF,eAAe,QACR,GAAG,OACH,GAAG,yBACc,GAAG,EAAE,KAAK,QAAQ,GAAG,CAAC;;mBAiJ5C;IAEF,UAAU,QACH,GAAG,OACH,GAAG,qBACU,GAAG,KAAK,QAAQ,GAAG,CAAC;;mBAwCtC;IAEF,mBAAmB,CAAC,GAAG,EAAE,GAAG;IAiO5B,QAAQ,QAAe,GAAG,OAAO,GAAG;;;;;mBAgQlC;IAEF,IAAI,YAgFF;CACH"}
@@ -616,8 +616,12 @@ class MongoWrapper {
616
616
  }
617
617
  });
618
618
  this.initBatchDelete = (req, res, workflow) => __awaiter(this, void 0, void 0, function* () {
619
- var _l, _m;
619
+ var _l, _m, _o, _p, _q, _r;
620
620
  try {
621
+ if ((!Array.isArray(req.body.id) || ((_m = (_l = req.body.id) === null || _l === void 0 ? void 0 : _l.length) !== null && _m !== void 0 ? _m : 0) === 0) &&
622
+ (!Array.isArray(req.body.query) || ((_p = (_o = req.body.query) === null || _o === void 0 ? void 0 : _o.length) !== null && _p !== void 0 ? _p : 0) === 0)) {
623
+ throw "Invalid Batch Delete Config";
624
+ }
621
625
  if (Array.isArray(req.body.id)) {
622
626
  const mongoCollection = this.mongoDB
623
627
  .db(this.tableId)
@@ -646,7 +650,7 @@ class MongoWrapper {
646
650
  _id: { $in: req.body.id },
647
651
  });
648
652
  const resBody = { success: req.body.id };
649
- if ((_l = req.body) === null || _l === void 0 ? void 0 : _l.stopRes)
653
+ if ((_q = req.body) === null || _q === void 0 ? void 0 : _q.stopRes)
650
654
  return resBody;
651
655
  res.send(resBody);
652
656
  }
@@ -743,7 +747,7 @@ class MongoWrapper {
743
747
  }
744
748
  yield mongoCollection.deleteMany(queryFilter);
745
749
  const resBody = { success: ids };
746
- if ((_m = req.body) === null || _m === void 0 ? void 0 : _m.stopRes)
750
+ if ((_r = req.body) === null || _r === void 0 ? void 0 : _r.stopRes)
747
751
  return resBody;
748
752
  res.send(resBody);
749
753
  }
@@ -753,7 +757,7 @@ class MongoWrapper {
753
757
  }
754
758
  });
755
759
  this.initDelete = (req, res, workflow) => __awaiter(this, void 0, void 0, function* () {
756
- var _o;
760
+ var _s;
757
761
  try {
758
762
  const valid = req.body.id;
759
763
  if (valid) {
@@ -779,7 +783,7 @@ class MongoWrapper {
779
783
  new: mongoData,
780
784
  });
781
785
  const resBody = { success: true };
782
- if ((_o = req.body) === null || _o === void 0 ? void 0 : _o.stopRes)
786
+ if ((_s = req.body) === null || _s === void 0 ? void 0 : _s.stopRes)
783
787
  return resBody;
784
788
  res.send(resBody);
785
789
  }
@@ -792,22 +796,22 @@ class MongoWrapper {
792
796
  }
793
797
  });
794
798
  this.initList = (req, res) => __awaiter(this, void 0, void 0, function* () {
795
- var _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z;
799
+ var _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3;
796
800
  try {
797
801
  //INFO : Security Checker
798
802
  const validBaseConfig = (0, QueryModel_1.checkBaseConfig)(this.config, req);
799
803
  if (validBaseConfig) {
800
804
  const aggregate = req.body.aggregate;
801
- const queryList = (_p = req.body.query) !== null && _p !== void 0 ? _p : [];
805
+ const queryList = (_t = req.body.query) !== null && _t !== void 0 ? _t : [];
802
806
  let queryFilter = {};
803
807
  // INFO : Step 1 - Query
804
808
  queryFilter = handleParseQueryFilter(queryList);
805
809
  if (aggregate) {
806
810
  // INFO : Step 2 - Aggregate
807
811
  const dataList = [];
808
- const queryId = (_q = aggregate.queryId) !== null && _q !== void 0 ? _q : "";
809
- const dateId = (_r = aggregate.dateId) !== null && _r !== void 0 ? _r : "baseUpdatedAt";
810
- const dateRanges = (_s = aggregate.range) !== null && _s !== void 0 ? _s : [
812
+ const queryId = (_u = aggregate.queryId) !== null && _u !== void 0 ? _u : "";
813
+ const dateId = (_v = aggregate.dateId) !== null && _v !== void 0 ? _v : "baseUpdatedAt";
814
+ const dateRanges = (_w = aggregate.range) !== null && _w !== void 0 ? _w : [
811
815
  (0, moment_timezone_1.default)().format("DD/MM/YYYY HH:mm:ss"),
812
816
  ];
813
817
  for (const dateRange of dateRanges) {
@@ -946,8 +950,8 @@ class MongoWrapper {
946
950
  if (aggregate.groupId)
947
951
  value = result;
948
952
  else {
949
- value = (_u = (_t = result[0]) === null || _t === void 0 ? void 0 : _t.value) !== null && _u !== void 0 ? _u : 0;
950
- ids = (_w = (_v = result[0]) === null || _v === void 0 ? void 0 : _v.ids) !== null && _w !== void 0 ? _w : [];
953
+ value = (_y = (_x = result[0]) === null || _x === void 0 ? void 0 : _x.value) !== null && _y !== void 0 ? _y : 0;
954
+ ids = (_0 = (_z = result[0]) === null || _z === void 0 ? void 0 : _z.ids) !== null && _0 !== void 0 ? _0 : [];
951
955
  }
952
956
  dataList.push({
953
957
  _id: id,
@@ -958,7 +962,7 @@ class MongoWrapper {
958
962
  const resBody = {
959
963
  data: dataList,
960
964
  };
961
- if ((_x = req.body) === null || _x === void 0 ? void 0 : _x.stopRes)
965
+ if ((_1 = req.body) === null || _1 === void 0 ? void 0 : _1.stopRes)
962
966
  return resBody;
963
967
  res.send(resBody);
964
968
  }
@@ -977,7 +981,7 @@ class MongoWrapper {
977
981
  mongoCollection.aggregate(pipeline).toArray(),
978
982
  mongoCollection.aggregate(countPipeline).toArray(),
979
983
  ]);
980
- const count = ((_y = countResult[0]) === null || _y === void 0 ? void 0 : _y.total) || 0;
984
+ const count = ((_2 = countResult[0]) === null || _2 === void 0 ? void 0 : _2.total) || 0;
981
985
  //INFO : Security Checker
982
986
  let validOpsConfig = true;
983
987
  if (dataList.length > 0) {
@@ -995,7 +999,7 @@ class MongoWrapper {
995
999
  data: dataList,
996
1000
  count,
997
1001
  };
998
- if ((_z = req.body) === null || _z === void 0 ? void 0 : _z.stopRes)
1002
+ if ((_3 = req.body) === null || _3 === void 0 ? void 0 : _3.stopRes)
999
1003
  return resBody;
1000
1004
  res.send(resBody);
1001
1005
  }
@@ -16,11 +16,14 @@ export declare class UploadWrapper {
16
16
  lib: UploadLib;
17
17
  storageType: string;
18
18
  modelChecker: (obj: any, isDeleteDirectory?: boolean) => boolean;
19
- constructor(uploadAdmin: any, isProd: boolean, config: SecurityConfig, lib: UploadLib, storageType?: "firebase" | "aws");
19
+ constructor(uploadAdmin: any, isProd: boolean, config: SecurityConfig, lib: UploadLib, storageType?: "firebase" | "aws" | "file");
20
+ private ensureDirectoryExists;
21
+ private getLocalFilePath;
20
22
  initUpload: (req: any, res: any, type: "create" | "update") => Promise<void>;
21
23
  initDelete: (req: any, res: any) => Promise<void>;
22
24
  deleteGoogleFolderContents: (folderRef: any) => Promise<void>;
23
25
  deleteAWSFolderContent: (bucketName: string, directoryPrefix: string) => Promise<void>;
26
+ deleteLocalFolderContents: (folderPath: string) => Promise<void>;
24
27
  initDeleteDirectory: (req: any, res: any) => Promise<void>;
25
28
  initBatchDeleteDirectory: (req: any, res: any) => Promise<void>;
26
29
  initGet: (req: any, res: any) => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"uploadWrapper.d.ts","sourceRoot":"","sources":["../../src/apis/uploadWrapper.ts"],"names":[],"mappings":"AAGA,OAAO,cAAc,MAAM,yBAAyB,CAAC;AAErD,UAAU,SAAS;IACjB,MAAM,EAAE,GAAG,CAAC;IACZ,UAAU,EAAE,GAAG,CAAC;IAChB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,IAAI,CAAC,EAAE,GAAG,CAAC;CACZ;AAED;;;GAGG;AACH,qBAAa,aAAa;IACxB,WAAW,EAAE,GAAG,CAAM;IACtB,MAAM,UAAS;IACf,MAAM,EAAE,cAAc,CAQpB;IACF,GAAG,EAAE,SAAS,CAAC;IACf,WAAW,SAAc;IAEzB,YAAY,QAAS,GAAG,sBAAsB,OAAO,aAUnD;gBAGA,WAAW,EAAE,GAAG,EAChB,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,SAAS,EACd,WAAW,CAAC,EAAE,UAAU,GAAG,KAAK;IASlC,UAAU,QAAe,GAAG,OAAO,GAAG,QAAQ,QAAQ,GAAG,QAAQ,mBAkG/D;IAEF,UAAU,QAAe,GAAG,OAAO,GAAG,mBAuCpC;IAEF,0BAA0B,cAAqB,GAAG,mBAwBhD;IAEF,sBAAsB,eACR,MAAM,mBACD,MAAM,mBAiBvB;IAEF,mBAAmB,QAAe,GAAG,OAAO,GAAG,mBAqC7C;IAEF,wBAAwB,QAAe,GAAG,OAAO,GAAG,mBA2ClD;IAEF,OAAO,QAAe,GAAG,OAAO,GAAG,mBAqCjC;IAEF,IAAI,YA6EF;CACH"}
1
+ {"version":3,"file":"uploadWrapper.d.ts","sourceRoot":"","sources":["../../src/apis/uploadWrapper.ts"],"names":[],"mappings":"AAKA,OAAO,cAAc,MAAM,yBAAyB,CAAC;AAErD,UAAU,SAAS;IACjB,MAAM,EAAE,GAAG,CAAC;IACZ,UAAU,EAAE,GAAG,CAAC;IAChB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,IAAI,CAAC,EAAE,GAAG,CAAC;CACZ;AAED;;;GAGG;AACH,qBAAa,aAAa;IACxB,WAAW,EAAE,GAAG,CAAM;IACtB,MAAM,UAAS;IACf,MAAM,EAAE,cAAc,CAQpB;IACF,GAAG,EAAE,SAAS,CAAC;IACf,WAAW,SAAc;IAEzB,YAAY,QAAS,GAAG,sBAAsB,OAAO,aAUnD;gBAGA,WAAW,EAAE,GAAG,EAChB,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,SAAS,EACd,WAAW,CAAC,EAAE,UAAU,GAAG,KAAK,GAAG,MAAM;IAS3C,OAAO,CAAC,qBAAqB;IAM7B,OAAO,CAAC,gBAAgB;IAkBxB,UAAU,QAAe,GAAG,OAAO,GAAG,QAAQ,QAAQ,GAAG,QAAQ,mBA4H/D;IAEF,UAAU,QAAe,GAAG,OAAO,GAAG,mBAiDpC;IAEF,0BAA0B,cAAqB,GAAG,mBAwBhD;IAEF,sBAAsB,eACR,MAAM,mBACD,MAAM,mBAiBvB;IAEF,yBAAyB,eAAsB,MAAM,mBAenD;IAEF,mBAAmB,QAAe,GAAG,OAAO,GAAG,mBA6C7C;IAEF,wBAAwB,QAAe,GAAG,OAAO,GAAG,mBAmDlD;IAEF,OAAO,QAAe,GAAG,OAAO,GAAG,mBA2DjC;IAEF,IAAI,YA6EF;CACH"}
@@ -14,7 +14,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.UploadWrapper = void 0;
16
16
  const axios_1 = __importDefault(require("axios"));
17
+ const fs_1 = __importDefault(require("fs"));
17
18
  const mime_1 = __importDefault(require("mime"));
19
+ const path_1 = __importDefault(require("path"));
18
20
  const QueryModel_1 = require("../model/QueryModel");
19
21
  /**
20
22
  * @Wrapper
@@ -101,6 +103,24 @@ class UploadWrapper {
101
103
  yield s3UploadPromise("file");
102
104
  res.send({ data: token });
103
105
  }
106
+ else if (this.storageType === "file") {
107
+ if (respData.downloadLink) {
108
+ const response = yield (0, axios_1.default)({
109
+ method: "GET",
110
+ url: respData.downloadLink,
111
+ responseType: "arraybuffer",
112
+ });
113
+ if (response.data) {
114
+ const filePath = this.getLocalFilePath(respData.bucketName, respData.assetCollectionName, respData.assetParentId, respData.assetFileName);
115
+ fs_1.default.writeFileSync(filePath, response.data);
116
+ }
117
+ }
118
+ else if (req.file) {
119
+ const filePath = this.getLocalFilePath(respData.bucketName, respData.assetCollectionName, respData.assetParentId, respData.assetFileName);
120
+ fs_1.default.writeFileSync(filePath, req.file.buffer);
121
+ }
122
+ res.send({ data: token });
123
+ }
104
124
  else {
105
125
  const firebaseBucket = this.uploadAdmin.storage().bucket();
106
126
  const uploadFilePromise = (type, response) => {
@@ -169,6 +189,12 @@ class UploadWrapper {
169
189
  };
170
190
  yield s3.deleteObject(params).promise();
171
191
  }
192
+ else if (this.storageType === "file") {
193
+ const filePath = this.getLocalFilePath(respData.bucketName, respData.assetCollectionName, respData.assetParentId, respData.assetFileName);
194
+ if (fs_1.default.existsSync(filePath)) {
195
+ fs_1.default.unlinkSync(filePath);
196
+ }
197
+ }
172
198
  else {
173
199
  const firebaseBucket = this.uploadAdmin.storage().bucket();
174
200
  yield firebaseBucket
@@ -224,6 +250,24 @@ class UploadWrapper {
224
250
  }
225
251
  catch (error) { }
226
252
  });
253
+ this.deleteLocalFolderContents = (folderPath) => __awaiter(this, void 0, void 0, function* () {
254
+ try {
255
+ if (fs_1.default.existsSync(folderPath)) {
256
+ const files = fs_1.default.readdirSync(folderPath);
257
+ for (const file of files) {
258
+ const curPath = path_1.default.join(folderPath, file);
259
+ if (fs_1.default.lstatSync(curPath).isDirectory()) {
260
+ yield this.deleteLocalFolderContents(curPath);
261
+ fs_1.default.rmdirSync(curPath);
262
+ }
263
+ else {
264
+ fs_1.default.unlinkSync(curPath);
265
+ }
266
+ }
267
+ }
268
+ }
269
+ catch (error) { }
270
+ });
227
271
  this.initDeleteDirectory = (req, res) => __awaiter(this, void 0, void 0, function* () {
228
272
  try {
229
273
  const respData = req.body.data;
@@ -239,6 +283,10 @@ class UploadWrapper {
239
283
  if (this.storageType === "aws") {
240
284
  yield this.deleteAWSFolderContent(`${respData.bucketName}`, `${respData.assetCollectionName}/${respData.assetParentId}/`);
241
285
  }
286
+ else if (this.storageType === "file") {
287
+ const folderPath = path_1.default.join(this.uploadAdmin, respData.bucketName, respData.assetCollectionName, respData.assetParentId);
288
+ yield this.deleteLocalFolderContents(folderPath);
289
+ }
242
290
  else {
243
291
  const folderRef = this.uploadAdmin
244
292
  .storage()
@@ -273,6 +321,10 @@ class UploadWrapper {
273
321
  if (this.storageType === "aws") {
274
322
  yield this.deleteAWSFolderContent(`${respData.bucketName}`, `${respData.assetCollectionName}/${eachId}/`);
275
323
  }
324
+ else if (this.storageType === "file") {
325
+ const folderPath = path_1.default.join(this.uploadAdmin, respData.bucketName, respData.assetCollectionName, eachId);
326
+ yield this.deleteLocalFolderContents(folderPath);
327
+ }
276
328
  else {
277
329
  const folderRef = this.uploadAdmin
278
330
  .storage()
@@ -324,6 +376,24 @@ class UploadWrapper {
324
376
  }
325
377
  }));
326
378
  }
379
+ else if (this.storageType === "file") {
380
+ const filePath = path_1.default.join(this.uploadAdmin, bucketName, assetCollectionName, assetParentId, nestedPath);
381
+ if (fs_1.default.existsSync(filePath)) {
382
+ const extension = nestedPath.split(".").pop();
383
+ let contentType;
384
+ if (extension === "mbtiles") {
385
+ contentType = "application/vnd.mapbox-vector-tile";
386
+ }
387
+ else {
388
+ contentType = mime_1.default.getType(extension) || "application/octet-stream";
389
+ }
390
+ res.set("Content-Type", contentType);
391
+ res.sendFile(filePath);
392
+ }
393
+ else {
394
+ res.status(404).send({ message: "File not found" });
395
+ }
396
+ }
327
397
  }
328
398
  catch (error) {
329
399
  res.status(400).json({ err: error });
@@ -396,5 +466,16 @@ class UploadWrapper {
396
466
  this.lib = lib;
397
467
  this.storageType = storageType !== null && storageType !== void 0 ? storageType : "firebase";
398
468
  }
469
+ ensureDirectoryExists(dirPath) {
470
+ if (!fs_1.default.existsSync(dirPath)) {
471
+ fs_1.default.mkdirSync(dirPath, { recursive: true });
472
+ }
473
+ }
474
+ getLocalFilePath(bucketName, assetCollectionName, assetParentId, assetFileName) {
475
+ const basePath = this.uploadAdmin;
476
+ const fullPath = path_1.default.join(basePath, bucketName, assetCollectionName, assetParentId, assetFileName);
477
+ this.ensureDirectoryExists(path_1.default.dirname(fullPath));
478
+ return fullPath;
479
+ }
399
480
  }
400
481
  exports.UploadWrapper = UploadWrapper;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "blixify-server",
3
- "version": "0.3.03",
3
+ "version": "0.3.05",
4
4
  "license": "MIT",
5
5
  "main": "dist/apis/index.js",
6
6
  "private": false,
@@ -25,6 +25,7 @@
25
25
  "start:mongo": "cd dist && node mongoServer.js",
26
26
  "start:fb": "cd dist && node firebaseServer.js",
27
27
  "start:auth": "cd dist && node authServer.js",
28
+ "start:file": "cd dist && node fileServer.js",
28
29
  "start:aws": "cd dist && node awsServer.js",
29
30
  "start:monday": "cd dist && node mondayServer.js",
30
31
  "start:trackVision": "cd dist && node trackVisionServer.js",