@xuda.io/xuda-dbs-plugin-xuda 1.0.133 → 1.0.135

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 (3) hide show
  1. package/package.json +1 -1
  2. package/server.js +10 -345
  3. package/studio.mjs +13 -4
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xuda.io/xuda-dbs-plugin-xuda",
3
- "version": "1.0.133",
3
+ "version": "1.0.135",
4
4
  "description": "Xuda Database Socket for Xuda's proprietary structure powered by CouchDB",
5
5
  "scripts": {
6
6
  "pub": "npm version patch --force && npm publish --access public"
package/server.js CHANGED
@@ -708,350 +708,6 @@ const query_db = async function (e, db, app_id_reference, table_obj) {
708
708
  return raw_data();
709
709
  };
710
710
 
711
- // var limit = 99999;
712
- // var skip = 0;
713
-
714
- // if (e.limit) {
715
- // limit = Number(e.limit);
716
- // }
717
-
718
- // if (e.skip) {
719
- // skip = JSON.parse(e.skip);
720
- // }
721
-
722
- // var fields = [];
723
- // if (e.fields) {
724
- // for (const [key, val] of Object.entries(
725
- // typeof e.fields === "string" ? e.fields.split(",") : e.fields
726
- // )) {
727
- // fields.push(val);
728
- // }
729
- // } else {
730
- // for (const [key, val] of Object.entries(table_obj.tableFields)) {
731
- // fields.push(val.data.field_id);
732
- // }
733
- // }
734
-
735
- // var data = {};
736
- // var from = e.filter_from ? JSON.parse(e.filter_from) : {};
737
- // var to = e.filter_to ? JSON.parse(e.filter_to) : {};
738
- // var sort = [];
739
- // for (const [key, val] of Object.entries(from)) {
740
- // var field_name = key;
741
-
742
- // sort.push(field_name);
743
-
744
- // if (val === to[key]) {
745
- // data[field_name] = val;
746
- // } else {
747
- // data[field_name] = { $gte: val };
748
- // }
749
- // }
750
-
751
- // for (const [key, val] of Object.entries(to)) {
752
- // var field_name = key;
753
-
754
- // if (val !== from[key]) {
755
- // data[field_name]["$lte"] = val;
756
- // }
757
- // }
758
-
759
- // var selector = {};
760
-
761
- // if (from && !_.isEmpty(from)) {
762
- // selector = data;
763
- // }
764
-
765
- // var opt = {
766
- // selector,
767
- // limit: limit,
768
- // skip: skip,
769
- // fields: fields,
770
- // };
771
-
772
- // if (sort.length) {
773
- // opt.sort = sort;
774
- // }
775
-
776
- // if (e?.sort_fields?.length) {
777
- // opt.sort = e.sort_fields;
778
- // if (opt.sort) {
779
- // for (const [key, val] of Object.entries(opt.sort)) {
780
- // var field_name = val.colId;
781
- // opt.sort[key] = {
782
- // ["udfData.data." + field_name]: val.sort,
783
- // };
784
- // }
785
- // }
786
- // }
787
- // // if (e.sort_fields && JSON.parse(e.sort_fields).length) {
788
- // // opt.sort = JSON.parse(e.sort_fields);
789
- // // if (opt.sort) {
790
- // // for (const [key, val] of Object.entries(opt.sort)) {
791
- // // var field_name = val.colId;
792
- // // opt.sort[key] = {
793
- // // ["udfData.data." + field_name]: val.sort,
794
- // // };
795
- // // }
796
- // // }
797
- // // }
798
-
799
- // if (e.grid_filter_info) {
800
- // for (const [key, val] of Object.entries(e.grid_filter_info)) {
801
- // var field_name = key;
802
- // var condition = "$and";
803
- // const make_selector = function (val) {
804
- // var value = "";
805
- // var operator = "";
806
- // var value_to = "";
807
- // var operator_to = "";
808
-
809
- // if (val.filterType === "date") {
810
- // var date = val.dateFrom.substr(0, 10);
811
- // switch (val.type) {
812
- // case "equals":
813
- // operator = "$regex";
814
- // value = `^${date}`;
815
- // break;
816
-
817
- // case "greaterThan":
818
- // operator = "$gt";
819
- // value = `${date}`;
820
- // break;
821
-
822
- // case "lessThan":
823
- // operator = "$lt";
824
- // value = `${date}`;
825
- // break;
826
-
827
- // case "blank":
828
- // operator = "$eq";
829
- // value = "";
830
- // break;
831
-
832
- // case "inRange":
833
- // operator = "$gte";
834
- // value = date;
835
- // operator_to = "$lte";
836
- // value_to = val.dateTo.substr(0, 10);
837
- // break;
838
-
839
- // case "notEqual":
840
- // operator = "$regex";
841
- // value = `^((?!${date}).)*$`;
842
- // break;
843
-
844
- // case "notBlank":
845
- // operator = "$ne";
846
- // value = "";
847
- // break;
848
-
849
- // default:
850
- // operator = "$regex";
851
- // value = `^${date}`;
852
- // }
853
- // }
854
-
855
- // if (val.filterType === "string" || val.filterType === "text") {
856
- // switch (val.type) {
857
- // case "contains":
858
- // operator = "$regex";
859
- // value = `${val.filter}`;
860
- // break;
861
-
862
- // case "notContains":
863
- // operator = "$regex";
864
- // value = `^((?!${val.filter}).)*$`;
865
- // break;
866
-
867
- // case "equals":
868
- // operator = "$eq";
869
- // value = `${val.filter}`;
870
- // break;
871
-
872
- // case "notEqual":
873
- // operator = "$ne";
874
- // value = `${val.filter}`;
875
- // break;
876
-
877
- // case "startsWith":
878
- // operator = "$regex";
879
- // value = `^${val.filter}`;
880
- // break;
881
-
882
- // case "endsWith":
883
- // operator = "$regex";
884
- // value = `${val.filter}$`;
885
- // break;
886
-
887
- // case "blank":
888
- // operator = "$eq";
889
- // value = "";
890
- // break;
891
-
892
- // case "notBlank":
893
- // operator = "$ne";
894
- // value = "";
895
- // break;
896
-
897
- // default:
898
- // value = "^" + val.filter;
899
- // }
900
- // }
901
-
902
- // if (val.filterType === "number") {
903
- // switch (val.type) {
904
- // case "equals":
905
- // operator = "$eq";
906
- // value = val.filter;
907
- // break;
908
-
909
- // case "notEqual":
910
- // operator = "$ne";
911
- // value = val.filter;
912
- // break;
913
-
914
- // case "lessThanOrEqual":
915
- // operator = "$lte";
916
- // value = val.filter;
917
- // break;
918
-
919
- // case "greaterThanOrEqual":
920
- // operator = "$gte";
921
- // value = val.filter;
922
- // break;
923
-
924
- // case "lessThan":
925
- // operator = "$lt";
926
- // value = val.filter;
927
- // break;
928
-
929
- // case "greaterThan":
930
- // operator = "$gt";
931
- // value = val.filter;
932
- // break;
933
-
934
- // case "blank":
935
- // operator = "$eq";
936
- // value = 0;
937
- // break;
938
-
939
- // case "notBlank":
940
- // operator = "$ne";
941
- // value = 0;
942
- // break;
943
-
944
- // case "inRange":
945
- // operator = "$gte";
946
- // value = val.filter;
947
- // operator_to = "$lte";
948
- // value_to = val.filterTo;
949
- // break;
950
-
951
- // default:
952
- // operator = "$eq";
953
- // value = val.filter;
954
- // }
955
- // }
956
- // if (!opt.selector[field_name]) {
957
- // opt.selector[field_name] = {};
958
- // }
959
- // if (!opt.selector[field_name][condition]) {
960
- // opt.selector[field_name][condition] = [];
961
- // }
962
- // opt.selector[field_name][condition].push({
963
- // [operator]: value,
964
- // });
965
-
966
- // if (operator_to) {
967
- // opt.selector[field_name][condition].push({
968
- // [operator_to]: value_to,
969
- // });
970
- // }
971
- // };
972
-
973
- // if (!val.condition1) {
974
- // make_selector(val);
975
- // } else {
976
- // condition = "$" + val.operator.toLowerCase();
977
- // make_selector(val.condition1);
978
- // make_selector(val.condition2);
979
- // }
980
- // }
981
- // }
982
-
983
- // if (e.total_fields_info) {
984
- // fields = [];
985
- // for (const [key, val] of Object.entries(
986
- // JSON.parse(e.total_fields_info)
987
- // )) {
988
- // var field_name = val.field_id;
989
-
990
- // fields.push(field_name);
991
- // }
992
- // opt.fields = fields;
993
- // }
994
- // // fix names
995
-
996
- // for (const [key, val] of Object.entries(opt.fields)) {
997
- // opt.fields[key] = "udfData.data." + val;
998
- // }
999
- // if (!e?.sort_fields?.length) {
1000
- // // added 2021 09 10
1001
- // if (opt.sort) {
1002
- // for (const [key, val] of Object.entries(opt.sort)) {
1003
- // opt.sort[key] = {
1004
- // ["udfData.data." + val]: e.sortOrder === "des" ? "desc" : "asc",
1005
- // };
1006
- // }
1007
- // }
1008
- // }
1009
- // // if (!e.sort_fields || !JSON.parse(e.sort_fields).length) {
1010
- // // // added 2021 09 10
1011
- // // if (opt.sort) {
1012
- // // for (const [key, val] of Object.entries(opt.sort)) {
1013
- // // opt.sort[key] = {
1014
- // // ["udfData.data." + val]: e.sortOrder === "des" ? "desc" : "asc",
1015
- // // };
1016
- // // }
1017
- // // }
1018
- // // }
1019
-
1020
- // var selector_new = {};
1021
-
1022
- // for (const [key, val] of Object.entries(opt.selector)) {
1023
- // selector_new["udfData.data." + key] = val;
1024
- // }
1025
-
1026
- // if (e.viewDbQuery) {
1027
- // for (const [key, val] of Object.entries(table_obj.tableFields)) {
1028
- // if (e.viewDbQuery.includes(val.id)) {
1029
- // const replacer = new RegExp(val.id, "g");
1030
- // e.viewDbQuery = e.viewDbQuery.replace(
1031
- // replacer,
1032
- // "udfData.data." + val.data.field_id
1033
- // );
1034
- // }
1035
- // }
1036
-
1037
- // let viewDbQuery = JSON.parse(e.viewDbQuery.replace(/\\/g, ""));
1038
-
1039
- // for (const [key, val] of Object.entries(viewDbQuery)) {
1040
- // selector_new[key] = val;
1041
- // }
1042
- // }
1043
-
1044
- // opt.selector = selector_new;
1045
- // opt.selector["udfData.udffileid"] = e.table_id;
1046
- // opt.selector.stat = e.archived ? 4 : 3;
1047
-
1048
- // opt.fields.push("_id");
1049
- // opt.fields.push("_rev");
1050
-
1051
- // if (e.selector) {
1052
- // opt.selector = { ...e.selector, ...opt.selector };
1053
- // }
1054
-
1055
711
  // xuda
1056
712
 
1057
713
  try {
@@ -1088,7 +744,16 @@ const query_db = async function (e, db, app_id_reference, table_obj) {
1088
744
 
1089
745
  mango_index_obj = {
1090
746
  index: {
1091
- fields: opt.sort,
747
+ fields: Object.keys(
748
+ _.reduce(
749
+ opt.sort,
750
+ (ret, val) => {
751
+ ret[Object.keys(val)[0]] = val;
752
+ return ret;
753
+ },
754
+ opt.selector
755
+ )
756
+ ),
1092
757
  },
1093
758
  name: index_name,
1094
759
  ddoc: `mango_index_table_${e.table_id}`,
package/studio.mjs CHANGED
@@ -1082,7 +1082,16 @@ const query_db = async function (e, db, table_obj) {
1082
1082
 
1083
1083
  mango_index_obj = {
1084
1084
  index: {
1085
- fields: opt.sort,
1085
+ fields: Object.keys(
1086
+ _.reduce(
1087
+ opt.sort,
1088
+ (ret, val) => {
1089
+ ret[Object.keys(val)[0]] = val;
1090
+ return ret;
1091
+ },
1092
+ opt.selector
1093
+ )
1094
+ ),
1086
1095
  },
1087
1096
  name: index_name,
1088
1097
  ddoc: `mango_index_table_${e.table_id}`,
@@ -1110,11 +1119,11 @@ const query_db = async function (e, db, table_obj) {
1110
1119
  var skip = 0;
1111
1120
 
1112
1121
  if (e.limit) {
1113
- limit = e.limitP;
1122
+ limit = e.limit;
1114
1123
  }
1115
1124
 
1116
- if (e.skipP) {
1117
- skip = e.skipP;
1125
+ if (e.skip) {
1126
+ skip = e.skip;
1118
1127
  }
1119
1128
 
1120
1129
  var view_opt = undefined;