ionic-vhframeworks 9.1.8 → 9.1.9

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.
@@ -12173,10 +12173,9 @@ export declare class VhQueryAutoWeb {
12173
12173
  */
12174
12174
  deployWebAppsource_toBuild_byEmail(build_email: string, build_password: string): Promise<unknown>;
12175
12175
  /**
12176
- * Hàm này Enduser deploy source webapp CHỈ từ dự án webappgiare.vn (chạy trong Autoweb_design autoweb_build) lên máy chủ (server) của dự án Autoweb_build
12177
- * Lưu ý: hàm này tự động kiểm tra enduser đã đăng nhập mới cho deploy
12176
+ * Hàm này Enduser deploy source webapp lên hosting, deploy database lên mysql trong hosting. Nghĩa website sẽ chạy độc lập với hosting và mysql riêng của nó.
12178
12177
  * @example:
12179
- * const cloning_options = {source_webapp:'renew', template_webapp:'renew', commondata_webapp:'renew', database_webapp:'renew'};
12178
+ * const cloning_options = {source_webapp:'renew', template_webapp:'renew', database_webapp:'renew'};
12180
12179
  * this.vhQueryAutoWeb.deployWebAppsource_toMySqlHosting_byEndUser('664483e744da7a03b4d5e1a2', 'domain07.webappgiare.vn', cloning_options)
12181
12180
  .then((rsp:any)=>{
12182
12181
  console.log('rsp', rsp);
@@ -12188,9 +12187,10 @@ export declare class VhQueryAutoWeb {
12188
12187
  },(error:any)=>{
12189
12188
  console.log('error', error)
12190
12189
  })
12191
- * @param db_webapp
12192
- * @param hosting
12193
- * @return Promise object => response = {vcode, msg}
12190
+ * @param db_webapp: là các dự án trong tài khoản thiết kế webappgiare@gmail.com
12191
+ * @param hosting: hosting đã đc chính EndUser tạo trước đây
12192
+ * @param cloning_options = {source_webapp:none/renew/overwrite, template_webapp: none/renew/overwrite, database_webapp: none/renew/overwrite}
12193
+ * @return Promise object => response = {vcode, msg, data(url)} - Hàm trả về url của chính hosting đó
12194
12194
  * vcode == 0: Message sent to email address successfully
12195
12195
  * vcode == 1: Email address does not exist
12196
12196
  * vcode == 11: 'not logged in'
@@ -12199,7 +12199,7 @@ export declare class VhQueryAutoWeb {
12199
12199
  /**
12200
12200
  * Hàm này đẩy source webapp từ dự án Autoweb_design lên hosting dự án Autoweb_build, dùng database Cloud Mongo của Viethas
12201
12201
  * @example:
12202
- * const cloning_options = {source_webapp:'renew', template_webapp:'renew', commondata_webapp:'renew', database_webapp:'renew'};
12202
+ * const cloning_options = {source_webapp:'renew', template_webapp:'renew', database_webapp:'renew'};
12203
12203
  * this.vhQueryAutoWeb.deployWebAppsource_toMongoHosting_byEmail('domain07.webappgiare.vn', 'userhosting@gmail.com','123456', cloning_options)
12204
12204
  .then((rsp:any)=>{
12205
12205
  console.log('rsp', rsp);
@@ -12213,34 +12213,12 @@ export declare class VhQueryAutoWeb {
12213
12213
  })
12214
12214
  * @param hosting_email
12215
12215
  * @param hosting_password
12216
- * @param cloning_options = {source_webapp:none/renew/overwrite, template_webapp: none/renew/overwrite, commondata_webapp: none/renew/overwrite, database_webapp: none/renew/overwrite}
12216
+ * @param cloning_options = {source_webapp:none/renew/overwrite, template_webapp: none/renew/overwrite, database_webapp: none/renew/overwrite}
12217
12217
  * @return Promise object => response = {vcode, msg}
12218
12218
  * vcode == 0: Message sent to email address successfully
12219
12219
  * vcode == 1: Email address does not exist
12220
12220
  */
12221
12221
  deployWebAppsource_toMongoHosting_byEmail(hosting: string, hosting_email: string, hosting_password: string, cloning_options: any): Promise<unknown>;
12222
- /**
12223
- * Hàm này đẩy source webapp từ dự án Autoweb_design lên hosting dự án Autoweb_build, dùng database MySQL của hosting
12224
- * @example:
12225
- * this.vhQueryAutoWeb.deployWebAppsource_toMySqlHosting_byEmail('domain05', 'devdomain05@gmail.com','123456')
12226
- .then((rsp:any)=>{
12227
- console.log('rsp', rsp);
12228
- if(rsp.vcode === 0){
12229
- //-----------your code 0-----------
12230
- }else if(rsp.vcode === 1){
12231
- //-----------your code 1-----------
12232
- }
12233
- },(error:any)=>{
12234
- console.log('error', error)
12235
- })
12236
- * @param hosting_email
12237
- * @param hosting_password
12238
- * @param cloning_options = {source_webapp:none/renew/overwrite, template_webapp: none/renew/overwrite, commondata_webapp: none/renew/overwrite, database_webapp: none/renew/overwrite}
12239
- * @return Promise object => response = {vcode, msg}
12240
- * vcode == 0: Message sent to email address successfully
12241
- * vcode == 1: Email address does not exist
12242
- */
12243
- deployWebAppsource_toMySqlHosting_byEmail(hosting: string, hosting_email: string, hosting_password: string, cloning_options: any): Promise<unknown>;
12244
12222
  /**
12245
12223
  * Hàm này tải source webapp từ dự án Autoweb_design về dạng package, chép lên hosting, chạy url cài đặt, sau đó vào website bình thường
12246
12224
  * @example:
@@ -12631,15 +12609,51 @@ export declare class VhQueryAutoWeb {
12631
12609
  */
12632
12610
  onAuthStateChangedEndUser(): Promise<any>;
12633
12611
  /**
12612
+ * Lấy về tất cả hosting của EndUser
12613
+ * @example
12634
12614
  * this.vhQueryAutoWeb.getHostings_byEndUser()
12635
- * @returns
12615
+ .then(rsp=>{
12616
+ console.log('getHostings_byEndUser', rsp);
12617
+ if(rsp.vcode === 0){
12618
+ //-----------your code-----------
12619
+ }
12620
+ },(error:any)=>{
12621
+ console.log('error', error)
12622
+ })
12623
+ * @returns Promise object => response = {vcode, msg, data}
12636
12624
  */
12637
12625
  getHostings_byEndUser(): Promise<any>;
12638
12626
  /**
12639
- * this.vhQueryAutoWeb.createHosting_byEndUser()
12640
- * @returns
12627
+ * Tạo mới hosting bởi EndUser
12628
+ * @example
12629
+ * this.vhQueryAutoWeb.createHosting_byEndUser('domain.webappgiare.vn')
12630
+ .then(rsp=>{
12631
+ console.log('createHosting_byEndUser', rsp);
12632
+ if(rsp.vcode === 0){
12633
+ //-----------your code-----------
12634
+ }
12635
+ },(error:any)=>{
12636
+ console.log('error', error)
12637
+ })
12638
+ * @param hosting
12639
+ * @returns Promise object => response = {vcode, msg, data}
12641
12640
  */
12642
12641
  createHosting_byEndUser(hosting: string): Promise<any>;
12642
+ /**
12643
+ * xóa hosting bởi EndUser
12644
+ * @example
12645
+ * this.vhQueryAutoWeb.removeHosting_byEndUser('domain.webappgiare.vn')
12646
+ .then(rsp=>{
12647
+ console.log('removeHosting_byEndUser', rsp);
12648
+ if(rsp.vcode === 0){
12649
+ //-----------your code-----------
12650
+ }
12651
+ },(error:any)=>{
12652
+ console.log('error', error)
12653
+ })
12654
+ * @param hosting
12655
+ * @returns Promise object => response = {vcode, msg, data}
12656
+ */
12643
12657
  removeHosting_byEndUser(hosting: string): Promise<any>;
12644
12658
  /**
12645
12659
  * @example
@@ -14617,6 +14631,113 @@ export declare class VhQueryAutoWeb {
14617
14631
  * @return Promise object => response = {vcode, msg, data(array), limit, page, totalpages}
14618
14632
  */
14619
14633
  getCombos_byFields(query: object, projection?: object, sort?: object, limit?: number, page?: number): Promise<unknown>;
14634
+ /**
14635
+ * @example:
14636
+ * this.vhQueryAutoWeb.admin_addWallet(data)
14637
+ .then((rsp:any)=>{
14638
+ if(rsp.vcode === 0){
14639
+ let branch = rsp.data;
14640
+ }
14641
+ }, error=>{
14642
+ reject(error)
14643
+ })
14644
+ * @param data
14645
+ * @return Promise => rsp ={vcode, msg, data(object)} / error
14646
+ * @notice : hàm này chỉ add được dữ liệu sau khi nhân viên (admin) đã đăng nhập
14647
+ * vcode == 0: success
14648
+ * vcode == 11: 'not logged in
14649
+ */
14650
+ admin_addWallet(data: any): Promise<unknown>;
14651
+ /**
14652
+ * @example:
14653
+ * this.vhQueryAutoWeb.admin_updateWallet('5fb6780ca2148e09806c5b01', {hidden:true})
14654
+ .then((rsp:any)=>{
14655
+ if(rsp.vcode === 0){
14656
+ console.log('admin_updateWallet succeed');
14657
+ }
14658
+ }, error=>{
14659
+ console.log('error', error);
14660
+ })
14661
+ * @param id_wallets
14662
+ * @param data
14663
+ * @return Promise object => rsp ={vcode, msg, data(true or false)} / error
14664
+ * @notice : hàm này chỉ add được dữ liệu sau khi nhân viên (admin) đã đăng nhập
14665
+ * vcode == 0: success
14666
+ * vcode == 11: 'not logged in
14667
+ */
14668
+ admin_updateWallet(id_wallets: string, data: object): Promise<unknown>;
14669
+ /**
14670
+ * @example:
14671
+ * this.vhQueryAutoWeb.admin_deleteWallet('5fb67fda87c0f21d484cbdf3')
14672
+ .then((rsp:any)=>{
14673
+ if(rsp.vcode === 0){
14674
+ console.log('admin_deleteWallet succeed');
14675
+ }
14676
+ }, error=>{
14677
+ reject(error)
14678
+ })
14679
+ * @param id_wallet
14680
+ * @return Promise => rsp ={vcode, msg, data(true or false)} / error
14681
+ * @notice : hàm này chỉ add được dữ liệu sau khi nhân viên (admin) đã đăng nhập
14682
+ * vcode == 0: success
14683
+ * vcode == 11: 'not logged in
14684
+ */
14685
+ admin_deleteWallet(id_wallet: string): Promise<unknown>;
14686
+ /**
14687
+ * @example
14688
+ * this.vhQueryAutoWeb.admin_getWallet('5fb67fda87c0f21d484cbdf3')
14689
+ .then((wallet)=>{
14690
+ console.log('admin_getWallet', wallet);
14691
+ })
14692
+ * @param id_wallet
14693
+ * @return Promise object => rsp ={vcode, msg, data(object or null)} / error
14694
+ * vcode == 0: success
14695
+ * vcode == 11: 'not logged in
14696
+ */
14697
+ admin_getWallet(id_wallet: string): Promise<unknown>;
14698
+ /**
14699
+ * @example:
14700
+ * this.vhQueryAutoWeb.admin_getWallets_byFields({name:{$eq:'name abc'}}, {},{},6)
14701
+ .then(response=>{
14702
+ console.log('response', response);
14703
+ if(response.vcode === 0){
14704
+ //-----------your code-----------
14705
+ let products = response.data;
14706
+ }
14707
+ },(error:any)=>{
14708
+ console.log('error', error)
14709
+ })
14710
+ * @param query
14711
+ * @param projection — đang tìm hiểu, tạm thời để giá trị là {}
14712
+ * @param sort — null hoặc {}:không sắp xếp; {date:1}: sắp xếp theo ASC; {date:-1}: sắp xếp theo DESC
14713
+ * @param limit — null hoặc 0: không giới hạn record get về; 2: get về 2 record
14714
+ * @return Promise object => response = {vcode, msg, data(array)}
14715
+ * vcode == 0: success
14716
+ * vcode == 11: 'not logged in
14717
+ */
14718
+ admin_getWallets_byFields(query: object, projection?: object, sort?: object, limit?: number): Promise<unknown>;
14719
+ /**
14720
+ * @example:
14721
+ * this.vhQueryAutoWeb.admin_getWallets_byFields_byPages({name:{$eq:'name abc'}}, {},{},6,1)
14722
+ .then(response=>{
14723
+ console.log('response', response);
14724
+ if(response.vcode === 0){
14725
+ //-----------your code-----------
14726
+ let products = response.data;
14727
+ }
14728
+ },(error:any)=>{
14729
+ console.log('error', error)
14730
+ })
14731
+ * @param query
14732
+ * @param projection — đang tìm hiểu, tạm thời để giá trị là {}
14733
+ * @param sort — null hoặc {}:không sắp xếp; {date:1}: sắp xếp theo ASC; {date:-1}: sắp xếp theo DESC
14734
+ * @param limit — null hoặc 0: không giới hạn record get về; 2: get về 2 record
14735
+ * @param page — null hoặc 0 hoặc 1: get về trang đầu tiên; 2: get về trang thứ 2
14736
+ * @return Promise object => response = {vcode, msg, data(array), limit, page, totalpages}
14737
+ * vcode == 0: success
14738
+ * vcode == 11: 'not logged in
14739
+ */
14740
+ admin_getWallets_byFields_byPages(query: object, projection?: object, sort?: object, limit?: number, page?: number): Promise<unknown>;
14620
14741
  /**
14621
14742
  * Hàm này tạo toppings (type=1), blog (type=2),.....
14622
14743
  * @example:
@@ -18605,6 +18726,18 @@ export declare class VhBuildAutoWeb {
18605
18726
  */
18606
18727
  onAuthStateChangedEndUser(): Promise<any>;
18607
18728
  getHostings_byEndUser(): Promise<any>;
18729
+ /**
18730
+ * vhBuildAutoWeb
18731
+ * @param hosting
18732
+ * @returns
18733
+ */
18734
+ createHosting_byEndUser(hosting: string): Promise<any>;
18735
+ /**
18736
+ *
18737
+ * @param hosting
18738
+ * @returns
18739
+ */
18740
+ removeHosting_byEndUser(hosting: string): Promise<any>;
18608
18741
  /**
18609
18742
  * @example
18610
18743
  * this.vhBuildAutoWeb.signoutEndUser();
@@ -18790,10 +18923,10 @@ export declare class VhBuildAutoWeb {
18790
18923
  vietqr_generateQR(data: any): Promise<unknown>;
18791
18924
  /**
18792
18925
  * @example:
18793
- * this.vhBuildAutoWeb.dynamic_addDoc_fromDatabase('atw_pages',{name:name: 'Quảng cáo 1'})
18926
+ * this.vhBuildAutoWeb.admin_dynamic_addDoc('atw_pages',{name:name: 'Quảng cáo 1'})
18794
18927
  .then((rsp)=>{
18795
18928
  if(rsp.vcode === 0){
18796
- console.log('dynamic_addDoc_fromDatabase', rsp.data);
18929
+ console.log('admin_dynamic_addDoc', rsp.data);
18797
18930
  }
18798
18931
  }, error=>{
18799
18932
  console.log('error', error);
@@ -18801,18 +18934,17 @@ export declare class VhBuildAutoWeb {
18801
18934
  * @param colname
18802
18935
  * @param data
18803
18936
  * @return Promise => response.data ={vcode, msg, data(object)} / error
18804
- * @notice : hàm này chỉ add được dữ liệu sau khi khách hàng hoặc nhân viên đã đăng nhập
18937
+ * @notice : hàm này chỉ add được dữ liệu sau khi nhân viên (admin) đã đăng nhập
18805
18938
  * vcode == 0: success
18806
18939
  * vcode == 11: 'not logged in'
18807
- * vcode == 2: wrong projectname
18808
18940
  */
18809
- dynamic_addDoc_fromDatabase(colname: string, data: object): Promise<unknown>;
18941
+ admin_dynamic_addDoc(colname: string, data: object): Promise<unknown>;
18810
18942
  /**
18811
18943
  * @example:
18812
- * this.vhBuildAutoWeb.dynamic_updateDoc_fromDatabase('categories', '5fb6780ca2148e09806c5b01', {name: 'Quảng cáo 1'})
18944
+ * this.vhBuildAutoWeb.admin_dynamic_updateDoc('categories', '5fb6780ca2148e09806c5b01', {name: 'Quảng cáo 1'})
18813
18945
  .then((rsp:any)=>{
18814
18946
  if(rsp.vcode === 0){
18815
- console.log('dynamic_updateDoc_fromDatabase succeed');
18947
+ console.log('admin_dynamic_updateDoc succeed');
18816
18948
  }
18817
18949
  }, error=>{
18818
18950
  console.log('error', error);
@@ -18820,40 +18952,38 @@ export declare class VhBuildAutoWeb {
18820
18952
  * @param colname
18821
18953
  * @param id_doc
18822
18954
  * @param data
18823
- * @return Promise => rsp ={vcode, msg, data(undefined)} / error
18824
- * @notice : hàm này chỉ add được dữ liệu sau khi khách hàng hoặc nhân viên đã đăng nhập
18955
+ * @return Promise => rsp ={vcode, msg, data(true or false)} / error
18956
+ * @notice : hàm này chỉ add được dữ liệu sau khi nhân viên (admin) đã đăng nhập
18825
18957
  * vcode == 0: success
18826
18958
  * vcode == 11: 'not logged in
18827
- * vcode == 2: wrong projectname
18828
18959
  */
18829
- dynamic_updateDoc_fromDatabase(colname: string, id_doc: string, value: object): Promise<unknown>;
18960
+ admin_dynamic_updateDoc(colname: string, id_doc: string, value: object): Promise<unknown>;
18830
18961
  /**
18831
18962
  * @example:
18832
- * this.vhBuildAutoWeb.dynamic_deleteDoc_fromDatabase('categories', '5fb67fda87c0f21d484cbdf3')
18963
+ * this.vhBuildAutoWeb.admin_dynamic_deleteDoc('categories', '5fb67fda87c0f21d484cbdf3')
18833
18964
  .then((rsp:any)=>{
18834
18965
  if(rsp.vcode === 0){
18835
- console.log('dynamic_deleteDoc_fromDatabase succeed');
18966
+ console.log('admin_dynamic_deleteDoc succeed');
18836
18967
  }
18837
18968
  }, error=>{
18838
18969
  reject(error)
18839
18970
  })
18840
18971
  * @param colname
18841
18972
  * @param id_doc
18842
- * @return Promise => response.data ={vcode, msg, data(undefined)} / error
18843
- * @notice : hàm này chỉ add được dữ liệu sau khi khách hàng hoặc nhân viên đã đăng nhập
18973
+ * @return Promise => response.data ={vcode, msg, data(true or false)} / error
18974
+ * @notice : hàm này chỉ add được dữ liệu sau khi nhân viên (admin) đã đăng nhập
18844
18975
  * vcode == 0: success
18845
18976
  * vcode == 11: 'not logged in
18846
- * vcode == 2: wrong projectname
18847
18977
  */
18848
- dynamic_deleteDoc_fromDatabase(colname: string, id_doc: string): Promise<unknown>;
18978
+ admin_dynamic_deleteDoc(colname: string, id_doc: string): Promise<unknown>;
18849
18979
  /**
18850
18980
  * Hàm này lấy về dữ liệu động trong database (ko có sẳn trong service(RAM)) như: khách hàng, đơn hàng
18851
18981
  * Dữ liệu này quan trọng nên nhân viên quản trị hoặc khách hàng phải đăng nhập mới get về được
18852
18982
  * @example
18853
- * this.vhBuildAutoWeb.dynamic_getDoc_fromDatabase('atw_customers', '5fb67fda87c0f21d484cbdf3')
18983
+ * this.vhBuildAutoWeb.admin_dynamic_getDoc('atw_customers', '5fb67fda87c0f21d484cbdf3')
18854
18984
  .then((rsp)=>{
18855
18985
  if(rsp.vcode === 0){
18856
- console.log('dynamic_getDoc_fromDatabase', rsp.data);
18986
+ console.log('admin_dynamic_getDoc', rsp.data);
18857
18987
  }
18858
18988
  },(error:any)=>{
18859
18989
  console.log('error', error)
@@ -18861,17 +18991,16 @@ export declare class VhBuildAutoWeb {
18861
18991
  * @param colname
18862
18992
  * @param id_doc
18863
18993
  * @return Promise => response.data ={vcode, msg, data(object or null)} / error
18864
- * @notice : hàm này chỉ get được dữ liệu sau khi khách hàng hoặc nhân viên đã đăng nhập
18994
+ * @notice : hàm này chỉ get được dữ liệu sau khi nhân viên (admin) đã đăng nhập
18865
18995
  * vcode == 0: success
18866
18996
  * vcode == 11: 'not logged in
18867
- * vcode == 2: wrong projectname
18868
18997
  */
18869
- dynamic_getDoc_fromDatabase(colname: string, id_doc: string): Promise<unknown>;
18998
+ admin_dynamic_getDoc(colname: string, id_doc: string): Promise<unknown>;
18870
18999
  /**
18871
19000
  * @example:
18872
- * this.vhBuildAutoWeb.dynamic_getDocs_fromDatabase_byFields('webapp_abouts', {name:{$eq:'name abc'}}, {},{},0)
19001
+ * this.vhBuildAutoWeb.admin_dynamic_getDocs_byFields('webapp_abouts', {name:{$eq:'name abc'}}, {},{},0)
18873
19002
  .then(rsp=>{
18874
- console.log('dynamic_getDocs_fromDatabase_byFields', rsp);
19003
+ console.log('admin_dynamic_getDocs_byFields', rsp);
18875
19004
  if(rsp.vcode === 0){
18876
19005
  //-----------your code-----------
18877
19006
  let products = rsp.data;
@@ -18888,61 +19017,11 @@ export declare class VhBuildAutoWeb {
18888
19017
  * @notice : hàm này chỉ add được dữ liệu sau khi khách hàng hoặc nhân viên đã đăng nhập
18889
19018
  * vcode == 0: success
18890
19019
  * vcode == 11: 'not logged in'
18891
- * vcode == 2: wrong projectname
18892
- */
18893
- dynamic_getDocs_fromDatabase_byFields(colname: string, query: any, projection?: object, sort?: any, limit?: number): Promise<unknown>;
18894
- /**
18895
- * @example:
18896
- * this.vhBuildAutoWeb.dynamic_getDocs_fromDatabase_byFields_byPages('webapp_abouts', {name:{$eq:'name abc'}}, {},{},6,1)
18897
- .then(response=>{
18898
- console.log('response', response);
18899
- if(response.vcode === 0){
18900
- //-----------your code-----------
18901
- let products = response.data;
18902
- }
18903
- },(error:any)=>{
18904
- console.log('error', error)
18905
- })
18906
- * @param colname
18907
- * @param query
18908
- * @param projection — đang tìm hiểu, tạm thời để giá trị là {}
18909
- * @param sort — null hoặc {}:không sắp xếp; {date:1}: sắp xếp theo ASC; {date:-1}: sắp xếp theo DESC
18910
- * @param limit — null hoặc 0: không giới hạn record get về; 2: get về 2 record
18911
- * @param page — null hoặc 0 hoặc 1: get về trang đầu tiên; 2: get về trang thứ 2
18912
- * @return Promise object => response = {vcode, msg, data(array), limit, page, totalpages}
18913
- */
18914
- dynamic_getDocs_fromDatabase_byFields_byPages(colname: string, query: any, projection?: object, sort?: any, limit?: number, page?: number): Promise<unknown>;
18915
- /**
18916
- * @example
18917
- * this.vhBuildAutoWeb.dynamic_getDoc_fromService('categories', '5fb67fda87c0f21d484cbdf3')
18918
- .then((doc)=>{
18919
- console.log('dynamic_getDoc_fromService', doc);
18920
- })
18921
- * @param id_doc
18922
- * @return null or object
18923
- */
18924
- dynamic_getDoc_fromService(colname: string, id_doc: string): Promise<unknown>;
18925
- /**
18926
- * @example:
18927
- * this.vhBuildAutoWeb.dynamic_getDocs_fromService_byFields('webapp_abouts', {name:{$eq:'name abc'}}, {},{},6,1)
18928
- .then(response=>{
18929
- console.log('response', response);
18930
- //-----------your code-----------
18931
- let products = response;
18932
- },(error:any)=>{
18933
- console.log('error', error)
18934
- })
18935
- * @param colname
18936
- * @param query
18937
- * @param projection — đang tìm hiểu, tạm thời để giá trị là {}
18938
- * @param sort — null hoặc {}:không sắp xếp; {date:1}: sắp xếp theo ASC; {date:-1}: sắp xếp theo DESC
18939
- * @param limit — null hoặc 0: không giới hạn record get về; 2: get về 2 record
18940
- * @return Promise => array(object) = [{},{},..]
18941
19020
  */
18942
- dynamic_getDocs_fromService_byFields(colname: string, query: any, projection?: object, sort?: any, limit?: number): Promise<unknown>;
19021
+ admin_dynamic_getDocs_byFields(colname: string, query: any, projection?: object, sort?: any, limit?: number): Promise<unknown>;
18943
19022
  /**
18944
19023
  * @example:
18945
- * this.vhBuildAutoWeb.dynamic_getDocs_fromService_byFields_byPages('webapp_abouts', {name:{$eq:'name abc'}}, {},{},6,1)
19024
+ * this.vhBuildAutoWeb.admin_dynamic_getDocs_byFields_byPages('webapp_abouts', {name:{$eq:'name abc'}}, {},{},6,1)
18946
19025
  .then(response=>{
18947
19026
  console.log('response', response);
18948
19027
  if(response.vcode === 0){
@@ -18959,145 +19038,94 @@ export declare class VhBuildAutoWeb {
18959
19038
  * @param limit — null hoặc 0: không giới hạn record get về; 2: get về 2 record
18960
19039
  * @param page — null hoặc 0 hoặc 1: get về trang đầu tiên; 2: get về trang thứ 2
18961
19040
  * @return Promise object => response = {vcode, msg, data(array), limit, page, totalpages}
19041
+ * vcode == 0: success
19042
+ * vcode == 11: 'not logged in'
18962
19043
  */
18963
- dynamic_getDocs_fromService_byFields_byPages(colname: string, query: any, projection?: object, sort?: any, limit?: number, page?: number): Promise<unknown>;
18964
- /**
18965
- * @example
18966
- * this.vhBuildAutoWeb.static_getDoc_fromService('categories', '5fb67fda87c0f21d484cbdf3')
18967
- .then((doc)=>{
18968
- console.log('static_getDoc_fromService', doc);
18969
- })
18970
- * @param id_doc
18971
- * @return null or object
18972
- */
18973
- static_getDoc_fromService(colname: string, id_doc: string): Promise<unknown>;
19044
+ admin_dynamic_getDocs_byFields_byPages(colname: string, query: any, projection?: object, sort?: any, limit?: number, page?: number): Promise<unknown>;
18974
19045
  /**
18975
- * @example
18976
- * this.vhBuildAutoWeb.static_getDoc_fromDatabase('categories', '5fb67fda87c0f21d484cbdf3')
18977
- .then((doc)=>{
18978
- console.log('static_getDoc_fromDatabase', doc);
19046
+ * @example:
19047
+ * this.vhBuildAutoWeb.enduser_dynamic_addDoc('atw_pages',{name:name: 'Quảng cáo 1'})
19048
+ .then((rsp)=>{
19049
+ if(rsp.vcode === 0){
19050
+ console.log('enduser_dynamic_addDoc', rsp.data);
19051
+ }
19052
+ }, error=>{
19053
+ console.log('error', error);
18979
19054
  })
18980
- * @param id_doc
18981
- * @return null or object
18982
- */
18983
- static_getDoc_fromDatabase(colname: string, id_doc: string): Promise<unknown>;
19055
+ * @param colname
19056
+ * @param data
19057
+ * @return Promise => response.data ={vcode, msg, data(object)} / error
19058
+ * @notice : hàm này chỉ add được dữ liệu sau khi nhân viên (admin) đã đăng nhập
19059
+ * vcode == 0: success
19060
+ * vcode == 11: 'not logged in'
19061
+ */
19062
+ enduser_dynamic_addDoc(colname: string, data: object): Promise<unknown>;
18984
19063
  /**
18985
19064
  * @example:
18986
- * this.vhBuildAutoWeb.static_getDocs_fromService_byFields_byPages('webapp_abouts', {name:{$eq:'name abc'}}, {},{},6,1)
18987
- .then(response=>{
18988
- console.log('response', response);
18989
- if(response.vcode === 0){
18990
- //-----------your code-----------
18991
- let products = response.data;
19065
+ * this.vhBuildAutoWeb.enduser_dynamic_updateDoc('categories', '5fb6780ca2148e09806c5b01', {name: 'Quảng cáo 1'})
19066
+ .then((rsp:any)=>{
19067
+ if(rsp.vcode === 0){
19068
+ console.log('enduser_dynamic_updateDoc succeed');
18992
19069
  }
18993
- },(error:any)=>{
18994
- console.log('error', error)
19070
+ }, error=>{
19071
+ console.log('error', error);
18995
19072
  })
18996
- * @param colname
18997
- * @param query
18998
- * @param projection — đang tìm hiểu, tạm thời để giá trị là {}
18999
- * @param sort null hoặc {}:không sắp xếp; {date:1}: sắp xếp theo ASC; {date:-1}: sắp xếp theo DESC
19000
- * @param limit null hoặc 0: không giới hạn record get về; 2: get về 2 record
19001
- * @param page — null hoặc 0 hoặc 1: get về trang đầu tiên; 2: get về trang thứ 2
19002
- * @return Promise object => response = {vcode, msg, data(array), limit, page, totalpages}
19003
- */
19004
- static_getDocs_fromService_byFields_byPages(colname: string, query: any, projection?: object, sort?: any, limit?: number, page?: number): Promise<unknown>;
19005
- /**
19006
- * @example:
19007
- * this.vhBuildAutoWeb.static_getDocs_fromService_byFields('webapp_abouts', {name:{$eq:'name abc'}}, {},{},6,1)
19008
- .then(response=>{
19009
- console.log('response', response);
19010
- if(response.vcode === 0){
19011
- //-----------your code-----------
19012
- let products = response.data;
19013
- }
19014
- },(error:any)=>{
19015
- console.log('error', error)
19016
- })
19017
- * @param colname
19018
- * @param query
19019
- * @param projection — đang tìm hiểu, tạm thời để giá trị là {}
19020
- * @param sort — null hoặc {}:không sắp xếp; {date:1}: sắp xếp theo ASC; {date:-1}: sắp xếp theo DESC
19021
- * @param limit — null hoặc 0: không giới hạn record get về; 2: get về 2 record
19022
- * @param page — null hoặc 0 hoặc 1: get về trang đầu tiên; 2: get về trang thứ 2
19023
- * @return Promise => array(object) = [{},{},..]
19024
- */
19025
- static_getDocs_fromService_byFields(colname: string, query: any, projection?: object, sort?: any, limit?: number): Promise<unknown>;
19073
+ * @param colname
19074
+ * @param id_doc
19075
+ * @param data
19076
+ * @return Promise => rsp ={vcode, msg, data(true or false)} / error
19077
+ * @notice : hàm này chỉ add được dữ liệu sau khi nhân viên (admin) đã đăng nhập
19078
+ * vcode == 0: success
19079
+ * vcode == 11: 'not logged in
19080
+ */
19081
+ enduser_dynamic_updateDoc(colname: string, id_doc: string, value: object): Promise<unknown>;
19026
19082
  /**
19027
19083
  * @example:
19028
- * this.vhBuildAutoWeb.static_getDocs_fromDatabase_byFields('webapp_abouts', {name:{$eq:'name abc'}}, {},{},6,1)
19029
- .then(webapp_abouts=>{
19030
- console.log('static_getDocs_fromDatabase_byFields', webapp_abouts);
19031
- },(error:any)=>{
19032
- console.log('error', error)
19033
- })
19034
- * @param colname
19035
- * @param query
19036
- * @param projection — đang tìm hiểu, tạm thời để giá trị là {}
19037
- * @param sort — null hoặc {}:không sắp xếp; {date:1}: sắp xếp theo ASC; {date:-1}: sắp xếp theo DESC
19038
- * @param limit — null hoặc 0: không giới hạn record get về; 2: get về 2 record
19039
- * @return Promise => array(object) = [{},{},..]
19040
- */
19041
- static_getDocs_fromDatabase_byFields(colname: string, query: any, projection?: object, sort?: any, limit?: number): Promise<unknown>;
19042
- /**
19043
- * @example:
19044
- * this.vhBuildAutoWeb.dynamic_deleteProduct('categories', '5fb67fda87c0f21d484cbdf3')
19045
- .then((rsp:any)=>{
19046
- if(rsp.vcode === 0){
19047
- console.log('dynamic_deleteDoc_fromDatabase succeed');
19048
- }
19049
- }, error=>{
19050
- reject(error)
19051
- })
19052
- * @param colname
19053
- * @param id_doc
19054
- * @return Promise => response.data ={vcode, msg, data(undefined)} / error
19055
- * @notice : hàm này chỉ get được dữ liệu sau khi khách hàng hoặc nhân viên đã đăng nhập, ở giao diện thiết kế dùng thư viện vhDesignAutoWeb
19056
- * chưa thấy cần thiết kiểm tra bảo mật này nên chưa thêm dòng lệnh kiểm tra và trả về vcode=11
19057
- * vcode == 0: success
19058
- * vcode == 1: 'Bạn không thể xóa, bạn phải xóa các thuộc tính của sản phẩm trước'
19059
- * vcode == 2: 'Bạn không thể xóa, vì sản phẩm con này đang liên kết với sản phẩm combo khác'
19060
- * vcode == 3: 'Bạn không thể xóa, vì sản phẩm con này đã phát sinh hóa đơn'
19061
- */
19062
- dynamic_deleteProduct(colname: string, id_doc: string): Promise<unknown>;
19063
- /**
19064
- * @example:
19065
- * this.vhBuildAutoWeb.dynamic_deleteSubProduct('categories', '5fb67fda87c0f21d484cbdf3')
19084
+ * this.vhBuildAutoWeb.enduser_dynamic_deleteDoc('categories', '5fb67fda87c0f21d484cbdf3')
19066
19085
  .then((rsp:any)=>{
19067
19086
  if(rsp.vcode === 0){
19068
- console.log('dynamic_deleteSubProduct succeed');
19087
+ console.log('enduser_dynamic_deleteDoc succeed');
19069
19088
  }
19070
19089
  }, error=>{
19071
19090
  reject(error)
19072
19091
  })
19073
- * @param colname
19074
- * @param id_doc
19075
- * @return Promise => response.data ={vcode, msg, data(undefined)} / error
19076
- * @notice : hàm này chỉ get được dữ liệu sau khi khách hàng hoặc nhân viên đã đăng nhập, ở giao diện thiết kế dùng thư viện vhDesignAutoWeb
19077
- * chưa thấy cần thiết kiểm tra bảo mật này nên chưa thêm dòng lệnh kiểm tra và trả về vcode=11
19078
- * vcode == 0: success
19079
- * vcode == 1: 'Bạn không thể xóa, bạn phải xóa các thuộc tính của sản phẩm trước'
19080
- * vcode == 2: 'Bạn không thể xóa, sản phẩm con này đang liên kết với sản phẩm combo khác'
19081
- * vcode == 3: 'Bạn không thể xóa, vì sản phẩm con này đã phát sinh hóa đơn'
19082
- */
19083
- dynamic_deleteSubProduct(colname: string, id_doc: string): Promise<unknown>;
19092
+ * @param colname
19093
+ * @param id_doc
19094
+ * @return Promise => response.data ={vcode, msg, data(true or false)} / error
19095
+ * @notice : hàm này chỉ add được dữ liệu sau khi nhân viên (admin) đã đăng nhập
19096
+ * vcode == 0: success
19097
+ * vcode == 11: 'not logged in
19098
+ */
19099
+ enduser_dynamic_deleteDoc(colname: string, id_doc: string): Promise<unknown>;
19084
19100
  /**
19085
- * @example
19086
- * this.vhBuildAutoWeb.dynamic_getProduct('categories', '5fb67fda87c0f21d484cbdf3')
19087
- .then((doc)=>{
19088
- console.log('dynamic_getProduct', doc);
19089
- })
19090
- * @param id_doc
19091
- * @return null or object
19092
- */
19093
- dynamic_getProduct(colname: string, id_doc: string): Promise<unknown>;
19101
+ * Hàm này lấy về dữ liệu động trong database (ko có sẳn trong service(RAM)) như: khách hàng, đơn hàng
19102
+ * Dữ liệu này quan trọng nên nhân viên quản trị hoặc khách hàng phải đăng nhập mới get về được
19103
+ * @example
19104
+ * this.vhBuildAutoWeb.enduser_dynamic_getDoc('atw_customers', '5fb67fda87c0f21d484cbdf3')
19105
+ .then((rsp)=>{
19106
+ if(rsp.vcode === 0){
19107
+ console.log('enduser_dynamic_getDoc', rsp.data);
19108
+ }
19109
+ },(error:any)=>{
19110
+ console.log('error', error)
19111
+ })
19112
+ * @param colname
19113
+ * @param id_doc
19114
+ * @return Promise => response.data ={vcode, msg, data(object or null)} / error
19115
+ * @notice : hàm này chỉ get được dữ liệu sau khi nhân viên (admin) đã đăng nhập
19116
+ * vcode == 0: success
19117
+ * vcode == 11: 'not logged in
19118
+ */
19119
+ enduser_dynamic_getDoc(colname: string, id_doc: string): Promise<unknown>;
19094
19120
  /**
19095
19121
  * @example:
19096
- * this.vhBuildAutoWeb.dynamic_getProducts_byFields('webapp_abouts', {name:{$eq:'name abc'}}, {},{},6,1)
19097
- .then(response=>{
19098
- console.log('response', response);
19099
- //-----------your code-----------
19100
- let products = response.data;
19122
+ * this.vhBuildAutoWeb.enduser_dynamic_getDocs_byFields('webapp_abouts', {name:{$eq:'name abc'}}, {},{},0)
19123
+ .then(rsp=>{
19124
+ console.log('enduser_dynamic_getDocs_byFields', rsp);
19125
+ if(rsp.vcode === 0){
19126
+ //-----------your code-----------
19127
+ let products = rsp.data;
19128
+ }
19101
19129
  },(error:any)=>{
19102
19130
  console.log('error', error)
19103
19131
  })
@@ -19106,13 +19134,15 @@ export declare class VhBuildAutoWeb {
19106
19134
  * @param projection — đang tìm hiểu, tạm thời để giá trị là {}
19107
19135
  * @param sort — null hoặc {}:không sắp xếp; {date:1}: sắp xếp theo ASC; {date:-1}: sắp xếp theo DESC
19108
19136
  * @param limit — null hoặc 0: không giới hạn record get về; 2: get về 2 record
19109
- * @param page null hoặc 0 hoặc 1: get về trang đầu tiên; 2: get về trang thứ 2
19110
- * @return Promise => array(object) = [{},{},..]
19137
+ * @return Promise => rsp.data ={vcode, msg, data(array(object) = [{},{},..])} / error
19138
+ * @notice : hàm này chỉ add được dữ liệu sau khi khách hàng hoặc nhân viên đã đăng nhập
19139
+ * vcode == 0: success
19140
+ * vcode == 11: 'not logged in'
19111
19141
  */
19112
- dynamic_getProducts_byFields(colname: string, query: any, projection?: object, sort?: any, limit?: number): Promise<unknown>;
19142
+ enduser_dynamic_getDocs_byFields(colname: string, query: any, projection?: object, sort?: any, limit?: number): Promise<unknown>;
19113
19143
  /**
19114
19144
  * @example:
19115
- * this.vhBuildAutoWeb.dynamic_getProducts_byFields_byPages('webapp_abouts', {name:{$eq:'name abc'}}, {},{},6,1)
19145
+ * this.vhBuildAutoWeb.enduser_dynamic_getDocs_byFields_byPages('webapp_abouts', {name:{$eq:'name abc'}}, {},{},6,1)
19116
19146
  .then(response=>{
19117
19147
  console.log('response', response);
19118
19148
  if(response.vcode === 0){
@@ -19129,15 +19159,38 @@ export declare class VhBuildAutoWeb {
19129
19159
  * @param limit — null hoặc 0: không giới hạn record get về; 2: get về 2 record
19130
19160
  * @param page — null hoặc 0 hoặc 1: get về trang đầu tiên; 2: get về trang thứ 2
19131
19161
  * @return Promise object => response = {vcode, msg, data(array), limit, page, totalpages}
19162
+ * vcode == 0: success
19163
+ * vcode == 11: 'not logged in'
19132
19164
  */
19133
- dynamic_getProducts_byFields_byPages(colname: string, query: any, projection?: object, sort?: any, limit?: number, page?: number): Promise<unknown>;
19165
+ enduser_dynamic_getDocs_byFields_byPages(colname: string, query: any, projection?: object, sort?: any, limit?: number, page?: number): Promise<unknown>;
19166
+ /**
19167
+ * Hàm này lấy về dữ liệu động trong database (ko có sẳn trong service(RAM)) như: khách hàng, đơn hàng
19168
+ * Dữ liệu này quan trọng nên nhân viên quản trị hoặc khách hàng phải đăng nhập mới get về được
19169
+ * @example
19170
+ * this.vhBuildAutoWeb.free_dynamic_getDoc('atw_customers', '5fb67fda87c0f21d484cbdf3')
19171
+ .then((rsp)=>{
19172
+ if(rsp.vcode === 0){
19173
+ console.log('free_dynamic_getDoc', rsp.data);
19174
+ }
19175
+ },(error:any)=>{
19176
+ console.log('error', error)
19177
+ })
19178
+ * @param colname
19179
+ * @param id_doc
19180
+ * @return Promise => response.data ={vcode, msg, data(object or null)} / error
19181
+ * @notice : hàm này chỉ get được dữ liệu sau khi nhân viên (admin) đã đăng nhập
19182
+ * vcode == 0: success
19183
+ */
19184
+ free_dynamic_getDoc(colname: string, id_doc: string): Promise<unknown>;
19134
19185
  /**
19135
19186
  * @example:
19136
- * this.vhBuildAutoWeb.dynamic_getDetailProducts_byFields('webapp_abouts', {name:{$eq:'name abc'}}, {},{},6,1)
19137
- .then(response=>{
19138
- console.log('response', response);
19139
- //-----------your code-----------
19140
- let products = response.data;
19187
+ * this.vhBuildAutoWeb.free_dynamic_getDocs_byFields('webapp_abouts', {name:{$eq:'name abc'}}, {},{},0)
19188
+ .then(rsp=>{
19189
+ console.log('free_dynamic_getDocs_byFields', rsp);
19190
+ if(rsp.vcode === 0){
19191
+ //-----------your code-----------
19192
+ let products = rsp.data;
19193
+ }
19141
19194
  },(error:any)=>{
19142
19195
  console.log('error', error)
19143
19196
  })
@@ -19146,13 +19199,14 @@ export declare class VhBuildAutoWeb {
19146
19199
  * @param projection — đang tìm hiểu, tạm thời để giá trị là {}
19147
19200
  * @param sort — null hoặc {}:không sắp xếp; {date:1}: sắp xếp theo ASC; {date:-1}: sắp xếp theo DESC
19148
19201
  * @param limit — null hoặc 0: không giới hạn record get về; 2: get về 2 record
19149
- * @param page null hoặc 0 hoặc 1: get về trang đầu tiên; 2: get về trang thứ 2
19150
- * @return Promise => array(object) = [{},{},..]
19202
+ * @return Promise => rsp.data ={vcode, msg, data(array(object) = [{},{},..])} / error
19203
+ * @notice : hàm này chỉ add được dữ liệu sau khi khách hàng hoặc nhân viên đã đăng nhập
19204
+ * vcode == 0: success
19151
19205
  */
19152
- dynamic_getDetailProducts_byFields(colname: string, query: any, projection?: object, sort?: any, limit?: number): Promise<unknown>;
19206
+ free_dynamic_getDocs_byFields(colname: string, query: any, projection?: object, sort?: any, limit?: number): Promise<unknown>;
19153
19207
  /**
19154
19208
  * @example:
19155
- * this.vhBuildAutoWeb.dynamic_getDetailProducts_byFields_byPages('webapp_abouts', {name:{$eq:'name abc'}}, {},{},6,1)
19209
+ * this.vhBuildAutoWeb.free_dynamic_getDocs_byFields_byPages('webapp_abouts', {name:{$eq:'name abc'}}, {},{},6,1)
19156
19210
  .then(response=>{
19157
19211
  console.log('response', response);
19158
19212
  if(response.vcode === 0){
@@ -19169,203 +19223,586 @@ export declare class VhBuildAutoWeb {
19169
19223
  * @param limit — null hoặc 0: không giới hạn record get về; 2: get về 2 record
19170
19224
  * @param page — null hoặc 0 hoặc 1: get về trang đầu tiên; 2: get về trang thứ 2
19171
19225
  * @return Promise object => response = {vcode, msg, data(array), limit, page, totalpages}
19226
+ * vcode == 0: success
19172
19227
  */
19173
- dynamic_getDetailProducts_byFields_byPages(colname: string, query: any, projection?: object, sort?: any, limit?: number, page?: number): Promise<unknown>;
19228
+ free_dynamic_getDocs_byFields_byPages(colname: string, query: any, projection?: object, sort?: any, limit?: number, page?: number): Promise<unknown>;
19174
19229
  /**
19175
- * @example
19176
- * this.vhBuildAutoWeb.dynamic_getDetailProduct('categories', '5fb67fda87c0f21d484cbdf3')
19177
- .then((doc)=>{
19178
- console.log('dynamic_getDetailProduct', doc);
19179
- },(error:any)=>{
19180
- console.log('error', error)
19230
+ * @example:
19231
+ * this.vhBuildAutoWeb.dynamic_addDoc_fromDatabase('atw_pages',{name:name: 'Quảng cáo 1'})
19232
+ .then((rsp)=>{
19233
+ if(rsp.vcode === 0){
19234
+ console.log('dynamic_addDoc_fromDatabase', rsp.data);
19235
+ }
19236
+ }, error=>{
19237
+ console.log('error', error);
19181
19238
  })
19182
- * @param id_sub_or_product
19183
- * @Promise => obj ={} or null
19239
+ * @param colname
19240
+ * @param data
19241
+ * @return Promise => response.data ={vcode, msg, data(object)} / error
19242
+ * @notice : hàm này chỉ add được dữ liệu sau khi khách hàng hoặc nhân viên đã đăng nhập
19243
+ * vcode == 0: success
19244
+ * vcode == 11: 'not logged in'
19184
19245
  */
19185
- dynamic_getDetailProduct(id_sub_or_product: any): Promise<unknown>;
19246
+ dynamic_addDoc_fromDatabase(colname: string, data: object): Promise<unknown>;
19186
19247
  /**
19187
- * @example
19188
- * this.vhBuildAutoWeb.dynamic_getDetailProduct_fromService('categories', '5fb67fda87c0f21d484cbdf3')
19189
- .then(response=>{
19190
- console.log('response', response);
19191
- if(response.vcode === 0){
19192
- //-----------your code-----------
19193
- let product = response.data;
19248
+ * @example:
19249
+ * this.vhBuildAutoWeb.dynamic_updateDoc_fromDatabase('categories', '5fb6780ca2148e09806c5b01', {name: 'Quảng cáo 1'})
19250
+ .then((rsp:any)=>{
19251
+ if(rsp.vcode === 0){
19252
+ console.log('dynamic_updateDoc_fromDatabase succeed');
19194
19253
  }
19195
- },(error:any)=>{
19196
- console.log('error', error)
19254
+ }, error=>{
19255
+ console.log('error', error);
19197
19256
  })
19198
- * @param id_sub_or_product
19199
- * @return Promise object => response = {vcode, msg, data(object)}
19257
+ * @param colname
19258
+ * @param id_doc
19259
+ * @param data
19260
+ * @return Promise => rsp ={vcode, msg, data(undefined)} / error
19261
+ * @notice : hàm này chỉ add được dữ liệu sau khi khách hàng hoặc nhân viên đã đăng nhập
19262
+ * vcode == 0: success
19263
+ * vcode == 11: 'not logged in
19264
+ * vcode == 2: wrong projectname
19200
19265
  */
19266
+ dynamic_updateDoc_fromDatabase(colname: string, id_doc: string, value: object): Promise<unknown>;
19201
19267
  /**
19202
- * @example
19203
- * this.vhBuildAutoWeb.dynamic_getDetailFood('categories', '5fb67fda87c0f21d484cbdf3')
19204
- .then(response=>{
19205
- console.log('dynamic_getDetailFood', response);
19206
- if(response.vcode === 0){
19207
- //-----------your code-----------
19208
- let product = response.data;
19268
+ * @example:
19269
+ * this.vhBuildAutoWeb.dynamic_deleteDoc_fromDatabase('categories', '5fb67fda87c0f21d484cbdf3')
19270
+ .then((rsp:any)=>{
19271
+ if(rsp.vcode === 0){
19272
+ console.log('dynamic_deleteDoc_fromDatabase succeed');
19209
19273
  }
19210
- },(error:any)=>{
19211
- console.log('error', error)
19274
+ }, error=>{
19275
+ reject(error)
19212
19276
  })
19213
- * @param id_sub_or_food
19214
- * @return Promise object => response = {vcode, msg, data(object)}
19215
- */
19216
- dynamic_getDetailFood(id_sub_or_food: any): Promise<unknown>;
19277
+ * @param colname
19278
+ * @param id_doc
19279
+ * @return Promise => response.data ={vcode, msg, data(undefined)} / error
19280
+ * @notice : hàm này chỉ add được dữ liệu sau khi khách hàng hoặc nhân viên đã đăng nhập
19281
+ * vcode == 0: success
19282
+ * vcode == 11: 'not logged in
19283
+ * vcode == 2: wrong projectname
19284
+ */
19285
+ dynamic_deleteDoc_fromDatabase(colname: string, id_doc: string): Promise<unknown>;
19217
19286
  /**
19218
- * @example
19219
- * this.vhBuildAutoWeb.searchList('atw_products',["name", "describe"], 'Điện Thoại', 20, 1)
19220
- .then(response=>{
19221
- console.log('response', response);
19222
- if(response.vcode === 0){
19223
- //-----------your code-----------
19224
- let array_searched_data = response.data;
19287
+ * Hàm này lấy về dữ liệu động trong database (ko có sẳn trong service(RAM)) như: khách hàng, đơn hàng
19288
+ * Dữ liệu này quan trọng nên nhân viên quản trị hoặc khách hàng phải đăng nhập mới get về được
19289
+ * @example
19290
+ * this.vhBuildAutoWeb.dynamic_getDoc_fromDatabase('atw_customers', '5fb67fda87c0f21d484cbdf3')
19291
+ .then((rsp)=>{
19292
+ if(rsp.vcode === 0){
19293
+ console.log('dynamic_getDoc_fromDatabase', rsp.data);
19294
+ }
19295
+ },(error:any)=>{
19296
+ console.log('error', error)
19297
+ })
19298
+ * @param colname
19299
+ * @param id_doc
19300
+ * @return Promise => response.data ={vcode, msg, data(object or null)} / error
19301
+ * @notice : hàm này chỉ get được dữ liệu sau khi khách hàng hoặc nhân viên đã đăng nhập
19302
+ * vcode == 0: success
19303
+ * vcode == 11: 'not logged in
19304
+ * vcode == 2: wrong projectname
19305
+ */
19306
+ dynamic_getDoc_fromDatabase(colname: string, id_doc: string): Promise<unknown>;
19307
+ /**
19308
+ * @example:
19309
+ * this.vhBuildAutoWeb.dynamic_getDocs_fromDatabase_byFields('webapp_abouts', {name:{$eq:'name abc'}}, {},{},0)
19310
+ .then(rsp=>{
19311
+ console.log('dynamic_getDocs_fromDatabase_byFields', rsp);
19312
+ if(rsp.vcode === 0){
19313
+ //-----------your code-----------
19314
+ let products = rsp.data;
19225
19315
  }
19226
19316
  },(error:any)=>{
19227
19317
  console.log('error', error)
19228
19318
  })
19229
19319
  * @param colname
19230
- * @param array_field
19231
- * @param value
19232
- * @param sort null hoặc {}:không sắp xếp; {date:1}: sắp xếp date theo ASC; {date:-1}: sắp xếp date theo DESC
19320
+ * @param query
19321
+ * @param projection — đang tìm hiểu, tạm thời để giá trị là {}
19322
+ * @param sort null hoặc {}:không sắp xếp; {date:1}: sắp xếp theo ASC; {date:-1}: sắp xếp theo DESC
19233
19323
  * @param limit — null hoặc 0: không giới hạn record get về; 2: get về 2 record
19234
- * @param page null hoặc 0 hoặc 1: get về trang đầu tiên; 2: get về trang thứ 2
19235
- * @return Promise object => response = {vcode, msg, data(array), limit, page, totalpages}
19324
+ * @return Promise => rsp.data ={vcode, msg, data(array(object) = [{},{},..])} / error
19325
+ * @notice : hàm này chỉ add được dữ liệu sau khi khách hàng hoặc nhân viên đã đăng nhập
19326
+ * vcode == 0: success
19327
+ * vcode == 11: 'not logged in'
19328
+ * vcode == 2: wrong projectname
19236
19329
  */
19237
- searchList_textSearch(colname: string, value: string, query?: object, sort?: object): Promise<unknown>;
19238
- searchList_likeSearch(colname: string, fieldsearch: string, value: string, query?: object, sort?: object): Promise<unknown>;
19239
- static ɵfac: i0.ɵɵFactoryDeclaration<VhBuildAutoWeb, never>;
19240
- static ɵprov: i0.ɵɵInjectableDeclaration<VhBuildAutoWeb>;
19241
- }
19242
- export declare class VhDevAutoWeb {
19243
- private vhAlgorithm;
19244
- private vhAuth;
19245
- private vhMGDB_auth;
19246
- private vhMGDB_rootdatabase;
19247
- private vhMGDB_pattern;
19248
- private vhMGDB_database;
19249
- private vhMGDB_image;
19250
- constructor(vhAlgorithm: VhAlgorithm, vhAuth: VhAuth, vhMGDB_auth: VhMGDB_auth, vhMGDB_rootdatabase: VhMGDB_rootdatabase, vhMGDB_pattern: VhMGDB_pattern, vhMGDB_database: VhMGDB_database, vhMGDB_image: VhMGDB_image);
19330
+ dynamic_getDocs_fromDatabase_byFields(colname: string, query: any, projection?: object, sort?: any, limit?: number): Promise<unknown>;
19331
+ /**
19332
+ * @example:
19333
+ * this.vhBuildAutoWeb.dynamic_getDocs_fromDatabase_byFields_byPages('webapp_abouts', {name:{$eq:'name abc'}}, {},{},6,1)
19334
+ .then(response=>{
19335
+ console.log('response', response);
19336
+ if(response.vcode === 0){
19337
+ //-----------your code-----------
19338
+ let products = response.data;
19339
+ }
19340
+ },(error:any)=>{
19341
+ console.log('error', error)
19342
+ })
19343
+ * @param colname
19344
+ * @param query
19345
+ * @param projection — đang tìm hiểu, tạm thời để giá trị là {}
19346
+ * @param sort — null hoặc {}:không sắp xếp; {date:1}: sắp xếp theo ASC; {date:-1}: sắp xếp theo DESC
19347
+ * @param limit — null hoặc 0: không giới hạn record get về; 2: get về 2 record
19348
+ * @param page — null hoặc 0 hoặc 1: get về trang đầu tiên; 2: get về trang thứ 2
19349
+ * @return Promise object => response = {vcode, msg, data(array), limit, page, totalpages}
19350
+ */
19351
+ dynamic_getDocs_fromDatabase_byFields_byPages(colname: string, query: any, projection?: object, sort?: any, limit?: number, page?: number): Promise<unknown>;
19352
+ /**
19353
+ * @example
19354
+ * this.vhBuildAutoWeb.dynamic_getDoc_fromService('categories', '5fb67fda87c0f21d484cbdf3')
19355
+ .then((doc)=>{
19356
+ console.log('dynamic_getDoc_fromService', doc);
19357
+ })
19358
+ * @param id_doc
19359
+ * @return null or object
19360
+ */
19361
+ dynamic_getDoc_fromService(colname: string, id_doc: string): Promise<unknown>;
19251
19362
  /**
19252
19363
  * @example:
19253
- * this.vhDevAutoWeb.addPatternBlock({name:'Danh mục 1'})
19254
- .then((block)=>{
19255
- console.log('addPatternBlock', block);
19364
+ * this.vhBuildAutoWeb.dynamic_getDocs_fromService_byFields('webapp_abouts', {name:{$eq:'name abc'}}, {},{},6,1)
19365
+ .then(response=>{
19366
+ console.log('response', response);
19367
+ //-----------your code-----------
19368
+ let products = response;
19256
19369
  },(error:any)=>{
19257
- console.log('error', error);
19370
+ console.log('error', error)
19258
19371
  })
19259
- * @param data
19260
- * @return Promise => obj = {}
19261
- * Luu ý: chỉ có 2 trường hợp, hoặc là thêm thành công, hoặc là báo lỗi error
19262
- */
19263
- private addPatternBlock;
19264
- /**
19265
- * @example:
19266
- * this.vhDevAutoWeb.addPatternBlock_byID('nvliw974854hf848ugrgh3498', {name:'camera 2', quantity:20, price:200000})
19267
- .then((block)=>{
19268
- console.log('addPatternBlock_byID', block);
19269
- }, error=>{
19270
- console.log('error', error);
19271
- })
19272
19372
  * @param colname
19273
- * @param data
19274
- * @return Promise => obj = {}
19275
- * Luu y: truong hop trung _id sẽ báo lỗi error
19373
+ * @param query
19374
+ * @param projection đang tìm hiểu, tạm thời để giá trị là {}
19375
+ * @param sort — null hoặc {}:không sắp xếp; {date:1}: sắp xếp theo ASC; {date:-1}: sắp xếp theo DESC
19376
+ * @param limit — null hoặc 0: không giới hạn record get về; 2: get về 2 record
19377
+ * @return Promise => array(object) = [{},{},..]
19276
19378
  */
19277
- addPatternBlock_byID(_id: string, data: object): Promise<unknown>;
19379
+ dynamic_getDocs_fromService_byFields(colname: string, query: any, projection?: object, sort?: any, limit?: number): Promise<unknown>;
19278
19380
  /**
19279
- * @example:
19280
- * this.vhDevAutoWeb.updatePatternBlock('5fb6780ca2148e09806c5b01', {quantity:400})
19281
- .then((bool:any)=>{
19282
- console.log('updatePatternBlock', bool);
19283
- }, error=>{
19284
- console.log('error', error);
19285
- })
19286
- * @param colname
19287
- * @param _id
19288
- * @param data
19289
- * @return Promise => bool = true or false
19290
- */
19291
- updatePatternBlock(_id: string, data: object): Promise<unknown>;
19381
+ * @example:
19382
+ * this.vhBuildAutoWeb.dynamic_getDocs_fromService_byFields_byPages('webapp_abouts', {name:{$eq:'name abc'}}, {},{},6,1)
19383
+ .then(response=>{
19384
+ console.log('response', response);
19385
+ if(response.vcode === 0){
19386
+ //-----------your code-----------
19387
+ let products = response.data;
19388
+ }
19389
+ },(error:any)=>{
19390
+ console.log('error', error)
19391
+ })
19392
+ * @param colname
19393
+ * @param query
19394
+ * @param projection — đang tìm hiểu, tạm thời để giá trị là {}
19395
+ * @param sort — null hoặc {}:không sắp xếp; {date:1}: sắp xếp theo ASC; {date:-1}: sắp xếp theo DESC
19396
+ * @param limit — null hoặc 0: không giới hạn record get về; 2: get về 2 record
19397
+ * @param page — null hoặc 0 hoặc 1: get về trang đầu tiên; 2: get về trang thứ 2
19398
+ * @return Promise object => response = {vcode, msg, data(array), limit, page, totalpages}
19399
+ */
19400
+ dynamic_getDocs_fromService_byFields_byPages(colname: string, query: any, projection?: object, sort?: any, limit?: number, page?: number): Promise<unknown>;
19292
19401
  /**
19293
- * @example:
19294
- * this.vhDevAutoWeb.deletePatternBlock('5fb67fda87c0f21d484cbdf3')
19295
- .then(bool=>{
19296
- console.log('deletePatternBlock', bool);
19402
+ * @example
19403
+ * this.vhBuildAutoWeb.static_getDoc_fromService('categories', '5fb67fda87c0f21d484cbdf3')
19404
+ .then((doc)=>{
19405
+ console.log('static_getDoc_fromService', doc);
19297
19406
  })
19298
- * @param colname
19299
- * @param _id
19300
- * @return Promise => bool = true or false
19407
+ * @param id_doc
19408
+ * @return null or object
19301
19409
  */
19302
- deletePatternBlock(_id: string): Promise<unknown>;
19410
+ static_getDoc_fromService(colname: string, id_doc: string): Promise<unknown>;
19303
19411
  /**
19304
- * @example
19305
- * this.vhDevAutoWeb.getPatternBlock('5fb67fda87c0f21d484cbdf3')
19306
- .then((product)=>{
19307
- console.log('getPatternBlock', product);
19308
- },(error:any)=>{
19309
- console.log('error', error);
19310
- })
19311
- * @param colname
19312
- * @param _id
19313
- * @return Promise => obj ={} or null
19314
- */
19315
- getPatternBlock(_id: string): Promise<unknown>;
19412
+ * @example
19413
+ * this.vhBuildAutoWeb.static_getDoc_fromDatabase('categories', '5fb67fda87c0f21d484cbdf3')
19414
+ .then((doc)=>{
19415
+ console.log('static_getDoc_fromDatabase', doc);
19416
+ })
19417
+ * @param id_doc
19418
+ * @return null or object
19419
+ */
19420
+ static_getDoc_fromDatabase(colname: string, id_doc: string): Promise<unknown>;
19316
19421
  /**
19317
19422
  * @example:
19318
- * this.vhDevAutoWeb.getPBlocksByFields({group_type:{$eq:10}}, {})
19319
- .then((pblocks)=>{
19320
- console.log('getPBlocksByFields', pblocks);
19321
- },error=>{
19322
- console.log('error', error);
19323
- })
19324
- * @param colname
19325
- * @param query : {}
19326
- * @param projection {} đang tìm hiểu
19327
- * @param sort null hoặc {}:không sắp xếp; {date:1}: sắp xếp theo ASC; {date:-1}: sắp xếp theo DESC
19328
- * @param limit null hoặc 0: không giới hạn record get về; 2: get về 2 record
19329
- * @return Array -> array = [{},{},...]
19330
- * @notice : trường hợp ko get đc data thì array.length = 0;
19423
+ * this.vhBuildAutoWeb.static_getDocs_fromService_byFields_byPages('webapp_abouts', {name:{$eq:'name abc'}}, {},{},6,1)
19424
+ .then(response=>{
19425
+ console.log('response', response);
19426
+ if(response.vcode === 0){
19427
+ //-----------your code-----------
19428
+ let products = response.data;
19429
+ }
19430
+ },(error:any)=>{
19431
+ console.log('error', error)
19432
+ })
19433
+ * @param colname
19434
+ * @param query
19435
+ * @param projection đang tìm hiểu, tạm thời để giá trị là {}
19436
+ * @param sort — null hoặc {}:không sắp xếp; {date:1}: sắp xếp theo ASC; {date:-1}: sắp xếp theo DESC
19437
+ * @param limit — null hoặc 0: không giới hạn record get về; 2: get về 2 record
19438
+ * @param page — null hoặc 0 hoặc 1: get về trang đầu tiên; 2: get về trang thứ 2
19439
+ * @return Promise object => response = {vcode, msg, data(array), limit, page, totalpages}
19331
19440
  */
19332
- private getPatternBlocksByFields;
19333
- /**
19334
- * @example:
19335
- * this.vhDevAutoWeb.getPatternBlocks_byFields_byPages('webapp_abouts', {name:{$eq:'name abc'}}, {},{},6,1)
19336
- .then(response=>{
19337
- console.log('response', response);
19338
- if(response.vcode === 0){
19339
- //-----------your code-----------
19340
- let products = response.data;
19341
- }
19342
- },(error:any)=>{
19343
- console.log('error', error)
19344
- })
19345
- * @param colname
19346
- * @param query
19347
- * @param projection — đang tìm hiểu, tạm thời để giá trị là {}
19348
- * @param sort — null hoặc {}:không sắp xếp; {date:1}: sắp xếp theo ASC; {date:-1}: sắp xếp theo DESC
19349
- * @param limit — null hoặc 0: không giới hạn record get về; 2: get về 2 record
19350
- * @param page — null hoặc 0 hoặc 1: get về trang đầu tiên; 2: get về trang thứ 2
19351
- * @return Promise object => response = {vcode, message, data(array), limit, page, totalpages}
19352
- */
19353
- getPatternBlocks_byFields_byPages(query: any, projection?: object, sort?: any, limit?: number, page?: number): Promise<unknown>;
19441
+ static_getDocs_fromService_byFields_byPages(colname: string, query: any, projection?: object, sort?: any, limit?: number, page?: number): Promise<unknown>;
19354
19442
  /**
19355
19443
  * @example:
19356
- * this.vhDevAutoWeb.addPatternBlock_Thumbnail_byID('nvliw974854hf848ugrgh3498', {name:'camera 2', quantity:20, price:200000})
19357
- .then((block)=>{
19358
- console.log('addPatternBlock_Thumbnail_byID', block);
19359
- }, error=>{
19360
- console.log('error', error);
19361
- })
19362
- * @param colname
19363
- * @param data
19364
- * @return Promise => obj = {}
19365
- * Luu y: truong hop trung _id nó sẽ báo lỗi error
19366
- */
19367
- addPatternBlock_Thumbnail_byID(_id: string, data: object): Promise<unknown>;
19368
- /**
19444
+ * this.vhBuildAutoWeb.static_getDocs_fromService_byFields('webapp_abouts', {name:{$eq:'name abc'}}, {},{},6,1)
19445
+ .then(response=>{
19446
+ console.log('response', response);
19447
+ if(response.vcode === 0){
19448
+ //-----------your code-----------
19449
+ let products = response.data;
19450
+ }
19451
+ },(error:any)=>{
19452
+ console.log('error', error)
19453
+ })
19454
+ * @param colname
19455
+ * @param query
19456
+ * @param projection — đang tìm hiểu, tạm thời để giá trị là {}
19457
+ * @param sort — null hoặc {}:không sắp xếp; {date:1}: sắp xếp theo ASC; {date:-1}: sắp xếp theo DESC
19458
+ * @param limit — null hoặc 0: không giới hạn record get về; 2: get về 2 record
19459
+ * @param page — null hoặc 0 hoặc 1: get về trang đầu tiên; 2: get về trang thứ 2
19460
+ * @return Promise => array(object) = [{},{},..]
19461
+ */
19462
+ static_getDocs_fromService_byFields(colname: string, query: any, projection?: object, sort?: any, limit?: number): Promise<unknown>;
19463
+ /**
19464
+ * @example:
19465
+ * this.vhBuildAutoWeb.static_getDocs_fromDatabase_byFields('webapp_abouts', {name:{$eq:'name abc'}}, {},{},6,1)
19466
+ .then(webapp_abouts=>{
19467
+ console.log('static_getDocs_fromDatabase_byFields', webapp_abouts);
19468
+ },(error:any)=>{
19469
+ console.log('error', error)
19470
+ })
19471
+ * @param colname
19472
+ * @param query
19473
+ * @param projection — đang tìm hiểu, tạm thời để giá trị là {}
19474
+ * @param sort — null hoặc {}:không sắp xếp; {date:1}: sắp xếp theo ASC; {date:-1}: sắp xếp theo DESC
19475
+ * @param limit — null hoặc 0: không giới hạn record get về; 2: get về 2 record
19476
+ * @return Promise => array(object) = [{},{},..]
19477
+ */
19478
+ static_getDocs_fromDatabase_byFields(colname: string, query: any, projection?: object, sort?: any, limit?: number): Promise<unknown>;
19479
+ /**
19480
+ * @example:
19481
+ * this.vhBuildAutoWeb.dynamic_deleteProduct('categories', '5fb67fda87c0f21d484cbdf3')
19482
+ .then((rsp:any)=>{
19483
+ if(rsp.vcode === 0){
19484
+ console.log('dynamic_deleteDoc_fromDatabase succeed');
19485
+ }
19486
+ }, error=>{
19487
+ reject(error)
19488
+ })
19489
+ * @param colname
19490
+ * @param id_doc
19491
+ * @return Promise => response.data ={vcode, msg, data(undefined)} / error
19492
+ * @notice : hàm này chỉ get được dữ liệu sau khi khách hàng hoặc nhân viên đã đăng nhập, ở giao diện thiết kế dùng thư viện vhDesignAutoWeb
19493
+ * chưa thấy cần thiết kiểm tra bảo mật này nên chưa thêm dòng lệnh kiểm tra và trả về vcode=11
19494
+ * vcode == 0: success
19495
+ * vcode == 1: 'Bạn không thể xóa, bạn phải xóa các thuộc tính của sản phẩm trước'
19496
+ * vcode == 2: 'Bạn không thể xóa, vì sản phẩm con này đang liên kết với sản phẩm combo khác'
19497
+ * vcode == 3: 'Bạn không thể xóa, vì sản phẩm con này đã phát sinh hóa đơn'
19498
+ */
19499
+ dynamic_deleteProduct(colname: string, id_doc: string): Promise<unknown>;
19500
+ /**
19501
+ * @example:
19502
+ * this.vhBuildAutoWeb.dynamic_deleteSubProduct('categories', '5fb67fda87c0f21d484cbdf3')
19503
+ .then((rsp:any)=>{
19504
+ if(rsp.vcode === 0){
19505
+ console.log('dynamic_deleteSubProduct succeed');
19506
+ }
19507
+ }, error=>{
19508
+ reject(error)
19509
+ })
19510
+ * @param colname
19511
+ * @param id_doc
19512
+ * @return Promise => response.data ={vcode, msg, data(undefined)} / error
19513
+ * @notice : hàm này chỉ get được dữ liệu sau khi khách hàng hoặc nhân viên đã đăng nhập, ở giao diện thiết kế dùng thư viện vhDesignAutoWeb
19514
+ * chưa thấy cần thiết kiểm tra bảo mật này nên chưa thêm dòng lệnh kiểm tra và trả về vcode=11
19515
+ * vcode == 0: success
19516
+ * vcode == 1: 'Bạn không thể xóa, bạn phải xóa các thuộc tính của sản phẩm trước'
19517
+ * vcode == 2: 'Bạn không thể xóa, vì sản phẩm con này đang liên kết với sản phẩm combo khác'
19518
+ * vcode == 3: 'Bạn không thể xóa, vì sản phẩm con này đã phát sinh hóa đơn'
19519
+ */
19520
+ dynamic_deleteSubProduct(colname: string, id_doc: string): Promise<unknown>;
19521
+ /**
19522
+ * @example
19523
+ * this.vhBuildAutoWeb.dynamic_getProduct('categories', '5fb67fda87c0f21d484cbdf3')
19524
+ .then((doc)=>{
19525
+ console.log('dynamic_getProduct', doc);
19526
+ })
19527
+ * @param id_doc
19528
+ * @return null or object
19529
+ */
19530
+ dynamic_getProduct(colname: string, id_doc: string): Promise<unknown>;
19531
+ /**
19532
+ * @example:
19533
+ * this.vhBuildAutoWeb.dynamic_getProducts_byFields('webapp_abouts', {name:{$eq:'name abc'}}, {},{},6,1)
19534
+ .then(response=>{
19535
+ console.log('response', response);
19536
+ //-----------your code-----------
19537
+ let products = response.data;
19538
+ },(error:any)=>{
19539
+ console.log('error', error)
19540
+ })
19541
+ * @param colname
19542
+ * @param query
19543
+ * @param projection — đang tìm hiểu, tạm thời để giá trị là {}
19544
+ * @param sort — null hoặc {}:không sắp xếp; {date:1}: sắp xếp theo ASC; {date:-1}: sắp xếp theo DESC
19545
+ * @param limit — null hoặc 0: không giới hạn record get về; 2: get về 2 record
19546
+ * @param page — null hoặc 0 hoặc 1: get về trang đầu tiên; 2: get về trang thứ 2
19547
+ * @return Promise => array(object) = [{},{},..]
19548
+ */
19549
+ dynamic_getProducts_byFields(colname: string, query: any, projection?: object, sort?: any, limit?: number): Promise<unknown>;
19550
+ /**
19551
+ * @example:
19552
+ * this.vhBuildAutoWeb.dynamic_getProducts_byFields_byPages('webapp_abouts', {name:{$eq:'name abc'}}, {},{},6,1)
19553
+ .then(response=>{
19554
+ console.log('response', response);
19555
+ if(response.vcode === 0){
19556
+ //-----------your code-----------
19557
+ let products = response.data;
19558
+ }
19559
+ },(error:any)=>{
19560
+ console.log('error', error)
19561
+ })
19562
+ * @param colname
19563
+ * @param query
19564
+ * @param projection — đang tìm hiểu, tạm thời để giá trị là {}
19565
+ * @param sort — null hoặc {}:không sắp xếp; {date:1}: sắp xếp theo ASC; {date:-1}: sắp xếp theo DESC
19566
+ * @param limit — null hoặc 0: không giới hạn record get về; 2: get về 2 record
19567
+ * @param page — null hoặc 0 hoặc 1: get về trang đầu tiên; 2: get về trang thứ 2
19568
+ * @return Promise object => response = {vcode, msg, data(array), limit, page, totalpages}
19569
+ */
19570
+ dynamic_getProducts_byFields_byPages(colname: string, query: any, projection?: object, sort?: any, limit?: number, page?: number): Promise<unknown>;
19571
+ /**
19572
+ * @example:
19573
+ * this.vhBuildAutoWeb.dynamic_getDetailProducts_byFields('webapp_abouts', {name:{$eq:'name abc'}}, {},{},6,1)
19574
+ .then(response=>{
19575
+ console.log('response', response);
19576
+ //-----------your code-----------
19577
+ let products = response.data;
19578
+ },(error:any)=>{
19579
+ console.log('error', error)
19580
+ })
19581
+ * @param colname
19582
+ * @param query
19583
+ * @param projection — đang tìm hiểu, tạm thời để giá trị là {}
19584
+ * @param sort — null hoặc {}:không sắp xếp; {date:1}: sắp xếp theo ASC; {date:-1}: sắp xếp theo DESC
19585
+ * @param limit — null hoặc 0: không giới hạn record get về; 2: get về 2 record
19586
+ * @param page — null hoặc 0 hoặc 1: get về trang đầu tiên; 2: get về trang thứ 2
19587
+ * @return Promise => array(object) = [{},{},..]
19588
+ */
19589
+ dynamic_getDetailProducts_byFields(colname: string, query: any, projection?: object, sort?: any, limit?: number): Promise<unknown>;
19590
+ /**
19591
+ * @example:
19592
+ * this.vhBuildAutoWeb.dynamic_getDetailProducts_byFields_byPages('webapp_abouts', {name:{$eq:'name abc'}}, {},{},6,1)
19593
+ .then(response=>{
19594
+ console.log('response', response);
19595
+ if(response.vcode === 0){
19596
+ //-----------your code-----------
19597
+ let products = response.data;
19598
+ }
19599
+ },(error:any)=>{
19600
+ console.log('error', error)
19601
+ })
19602
+ * @param colname
19603
+ * @param query
19604
+ * @param projection — đang tìm hiểu, tạm thời để giá trị là {}
19605
+ * @param sort — null hoặc {}:không sắp xếp; {date:1}: sắp xếp theo ASC; {date:-1}: sắp xếp theo DESC
19606
+ * @param limit — null hoặc 0: không giới hạn record get về; 2: get về 2 record
19607
+ * @param page — null hoặc 0 hoặc 1: get về trang đầu tiên; 2: get về trang thứ 2
19608
+ * @return Promise object => response = {vcode, msg, data(array), limit, page, totalpages}
19609
+ */
19610
+ dynamic_getDetailProducts_byFields_byPages(colname: string, query: any, projection?: object, sort?: any, limit?: number, page?: number): Promise<unknown>;
19611
+ /**
19612
+ * @example
19613
+ * this.vhBuildAutoWeb.dynamic_getDetailProduct('categories', '5fb67fda87c0f21d484cbdf3')
19614
+ .then((doc)=>{
19615
+ console.log('dynamic_getDetailProduct', doc);
19616
+ },(error:any)=>{
19617
+ console.log('error', error)
19618
+ })
19619
+ * @param id_sub_or_product
19620
+ * @Promise => obj ={} or null
19621
+ */
19622
+ dynamic_getDetailProduct(id_sub_or_product: any): Promise<unknown>;
19623
+ /**
19624
+ * @example
19625
+ * this.vhBuildAutoWeb.dynamic_getDetailProduct_fromService('categories', '5fb67fda87c0f21d484cbdf3')
19626
+ .then(response=>{
19627
+ console.log('response', response);
19628
+ if(response.vcode === 0){
19629
+ //-----------your code-----------
19630
+ let product = response.data;
19631
+ }
19632
+ },(error:any)=>{
19633
+ console.log('error', error)
19634
+ })
19635
+ * @param id_sub_or_product
19636
+ * @return Promise object => response = {vcode, msg, data(object)}
19637
+ */
19638
+ /**
19639
+ * @example
19640
+ * this.vhBuildAutoWeb.dynamic_getDetailFood('categories', '5fb67fda87c0f21d484cbdf3')
19641
+ .then(response=>{
19642
+ console.log('dynamic_getDetailFood', response);
19643
+ if(response.vcode === 0){
19644
+ //-----------your code-----------
19645
+ let product = response.data;
19646
+ }
19647
+ },(error:any)=>{
19648
+ console.log('error', error)
19649
+ })
19650
+ * @param id_sub_or_food
19651
+ * @return Promise object => response = {vcode, msg, data(object)}
19652
+ */
19653
+ dynamic_getDetailFood(id_sub_or_food: any): Promise<unknown>;
19654
+ /**
19655
+ * @example
19656
+ * this.vhBuildAutoWeb.searchList('atw_products',["name", "describe"], 'Điện Thoại', 20, 1)
19657
+ .then(response=>{
19658
+ console.log('response', response);
19659
+ if(response.vcode === 0){
19660
+ //-----------your code-----------
19661
+ let array_searched_data = response.data;
19662
+ }
19663
+ },(error:any)=>{
19664
+ console.log('error', error)
19665
+ })
19666
+ * @param colname
19667
+ * @param array_field
19668
+ * @param value
19669
+ * @param sort null hoặc {}:không sắp xếp; {date:1}: sắp xếp date theo ASC; {date:-1}: sắp xếp date theo DESC
19670
+ * @param limit — null hoặc 0: không giới hạn record get về; 2: get về 2 record
19671
+ * @param page — null hoặc 0 hoặc 1: get về trang đầu tiên; 2: get về trang thứ 2
19672
+ * @return Promise object => response = {vcode, msg, data(array), limit, page, totalpages}
19673
+ */
19674
+ searchList_textSearch(colname: string, value: string, query?: object, sort?: object): Promise<unknown>;
19675
+ searchList_likeSearch(colname: string, fieldsearch: string, value: string, query?: object, sort?: object): Promise<unknown>;
19676
+ static ɵfac: i0.ɵɵFactoryDeclaration<VhBuildAutoWeb, never>;
19677
+ static ɵprov: i0.ɵɵInjectableDeclaration<VhBuildAutoWeb>;
19678
+ }
19679
+ export declare class VhDevAutoWeb {
19680
+ private vhAlgorithm;
19681
+ private vhAuth;
19682
+ private vhMGDB_auth;
19683
+ private vhMGDB_rootdatabase;
19684
+ private vhMGDB_pattern;
19685
+ private vhMGDB_database;
19686
+ private vhMGDB_image;
19687
+ constructor(vhAlgorithm: VhAlgorithm, vhAuth: VhAuth, vhMGDB_auth: VhMGDB_auth, vhMGDB_rootdatabase: VhMGDB_rootdatabase, vhMGDB_pattern: VhMGDB_pattern, vhMGDB_database: VhMGDB_database, vhMGDB_image: VhMGDB_image);
19688
+ /**
19689
+ * @example:
19690
+ * this.vhDevAutoWeb.addPatternBlock({name:'Danh mục 1'})
19691
+ .then((block)=>{
19692
+ console.log('addPatternBlock', block);
19693
+ },(error:any)=>{
19694
+ console.log('error', error);
19695
+ })
19696
+ * @param data
19697
+ * @return Promise => obj = {}
19698
+ * Luu ý: chỉ có 2 trường hợp, hoặc là thêm thành công, hoặc là báo lỗi error
19699
+ */
19700
+ private addPatternBlock;
19701
+ /**
19702
+ * @example:
19703
+ * this.vhDevAutoWeb.addPatternBlock_byID('nvliw974854hf848ugrgh3498', {name:'camera 2', quantity:20, price:200000})
19704
+ .then((block)=>{
19705
+ console.log('addPatternBlock_byID', block);
19706
+ }, error=>{
19707
+ console.log('error', error);
19708
+ })
19709
+ * @param colname
19710
+ * @param data
19711
+ * @return Promise => obj = {}
19712
+ * Luu y: truong hop trung _id nó sẽ báo lỗi error
19713
+ */
19714
+ addPatternBlock_byID(_id: string, data: object): Promise<unknown>;
19715
+ /**
19716
+ * @example:
19717
+ * this.vhDevAutoWeb.updatePatternBlock('5fb6780ca2148e09806c5b01', {quantity:400})
19718
+ .then((bool:any)=>{
19719
+ console.log('updatePatternBlock', bool);
19720
+ }, error=>{
19721
+ console.log('error', error);
19722
+ })
19723
+ * @param colname
19724
+ * @param _id
19725
+ * @param data
19726
+ * @return Promise => bool = true or false
19727
+ */
19728
+ updatePatternBlock(_id: string, data: object): Promise<unknown>;
19729
+ /**
19730
+ * @example:
19731
+ * this.vhDevAutoWeb.deletePatternBlock('5fb67fda87c0f21d484cbdf3')
19732
+ .then(bool=>{
19733
+ console.log('deletePatternBlock', bool);
19734
+ })
19735
+ * @param colname
19736
+ * @param _id
19737
+ * @return Promise => bool = true or false
19738
+ */
19739
+ deletePatternBlock(_id: string): Promise<unknown>;
19740
+ /**
19741
+ * @example
19742
+ * this.vhDevAutoWeb.getPatternBlock('5fb67fda87c0f21d484cbdf3')
19743
+ .then((product)=>{
19744
+ console.log('getPatternBlock', product);
19745
+ },(error:any)=>{
19746
+ console.log('error', error);
19747
+ })
19748
+ * @param colname
19749
+ * @param _id
19750
+ * @return Promise => obj ={} or null
19751
+ */
19752
+ getPatternBlock(_id: string): Promise<unknown>;
19753
+ /**
19754
+ * @example:
19755
+ * this.vhDevAutoWeb.getPBlocksByFields({group_type:{$eq:10}}, {})
19756
+ .then((pblocks)=>{
19757
+ console.log('getPBlocksByFields', pblocks);
19758
+ },error=>{
19759
+ console.log('error', error);
19760
+ })
19761
+ * @param colname
19762
+ * @param query : {}
19763
+ * @param projection {} đang tìm hiểu
19764
+ * @param sort null hoặc {}:không sắp xếp; {date:1}: sắp xếp theo ASC; {date:-1}: sắp xếp theo DESC
19765
+ * @param limit null hoặc 0: không giới hạn record get về; 2: get về 2 record
19766
+ * @return Array -> array = [{},{},...]
19767
+ * @notice : trường hợp ko get đc data thì array.length = 0;
19768
+ */
19769
+ private getPatternBlocksByFields;
19770
+ /**
19771
+ * @example:
19772
+ * this.vhDevAutoWeb.getPatternBlocks_byFields_byPages('webapp_abouts', {name:{$eq:'name abc'}}, {},{},6,1)
19773
+ .then(response=>{
19774
+ console.log('response', response);
19775
+ if(response.vcode === 0){
19776
+ //-----------your code-----------
19777
+ let products = response.data;
19778
+ }
19779
+ },(error:any)=>{
19780
+ console.log('error', error)
19781
+ })
19782
+ * @param colname
19783
+ * @param query
19784
+ * @param projection — đang tìm hiểu, tạm thời để giá trị là {}
19785
+ * @param sort — null hoặc {}:không sắp xếp; {date:1}: sắp xếp theo ASC; {date:-1}: sắp xếp theo DESC
19786
+ * @param limit — null hoặc 0: không giới hạn record get về; 2: get về 2 record
19787
+ * @param page — null hoặc 0 hoặc 1: get về trang đầu tiên; 2: get về trang thứ 2
19788
+ * @return Promise object => response = {vcode, message, data(array), limit, page, totalpages}
19789
+ */
19790
+ getPatternBlocks_byFields_byPages(query: any, projection?: object, sort?: any, limit?: number, page?: number): Promise<unknown>;
19791
+ /**
19792
+ * @example:
19793
+ * this.vhDevAutoWeb.addPatternBlock_Thumbnail_byID('nvliw974854hf848ugrgh3498', {name:'camera 2', quantity:20, price:200000})
19794
+ .then((block)=>{
19795
+ console.log('addPatternBlock_Thumbnail_byID', block);
19796
+ }, error=>{
19797
+ console.log('error', error);
19798
+ })
19799
+ * @param colname
19800
+ * @param data
19801
+ * @return Promise => obj = {}
19802
+ * Luu y: truong hop trung _id nó sẽ báo lỗi error
19803
+ */
19804
+ addPatternBlock_Thumbnail_byID(_id: string, data: object): Promise<unknown>;
19805
+ /**
19369
19806
  * @example:
19370
19807
  * this.vhDevAutoWeb.updatePatternBlock_Thumbnail('5fb6780ca2148e09806c5b01', {quantity:400})
19371
19808
  .then((bool:any)=>{
@@ -19381,703 +19818,998 @@ export declare class VhDevAutoWeb {
19381
19818
  updatePatternBlock_Thumbnail(_id: string, data: object): Promise<unknown>;
19382
19819
  /**
19383
19820
  * @example:
19384
- * this.vhDevAutoWeb.deletePatternBlock_Thumbnail('5fb67fda87c0f21d484cbdf3')
19385
- .then(bool=>{
19386
- console.log('deletePatternBlock_Thumbnail', bool);
19387
- })
19388
- * @param colname
19389
- * @param _id
19390
- * @return Promise => bool = true or false
19821
+ * this.vhDevAutoWeb.deletePatternBlock_Thumbnail('5fb67fda87c0f21d484cbdf3')
19822
+ .then(bool=>{
19823
+ console.log('deletePatternBlock_Thumbnail', bool);
19824
+ })
19825
+ * @param colname
19826
+ * @param _id
19827
+ * @return Promise => bool = true or false
19828
+ */
19829
+ deletePatternBlock_Thumbnail(_id: string): Promise<unknown>;
19830
+ /**
19831
+ * @example:
19832
+ * this.vhDevAutoWeb.getPatternBlocks_Thumbnail_byFields_byPages('webapp_abouts', {name:{$eq:'name abc'}}, {},{},6,1)
19833
+ .then(response=>{
19834
+ console.log('response', response);
19835
+ if(response.vcode === 0){
19836
+ //-----------your code-----------
19837
+ let products = response.data;
19838
+ }
19839
+ },(error:any)=>{
19840
+ console.log('error', error)
19841
+ })
19842
+ * @param colname
19843
+ * @param query
19844
+ * @param projection — đang tìm hiểu, tạm thời để giá trị là {}
19845
+ * @param sort — null hoặc {}:không sắp xếp; {date:1}: sắp xếp theo ASC; {date:-1}: sắp xếp theo DESC
19846
+ * @param limit — null hoặc 0: không giới hạn record get về; 2: get về 2 record
19847
+ * @param page — null hoặc 0 hoặc 1: get về trang đầu tiên; 2: get về trang thứ 2
19848
+ * @return Promise object => response = {vcode, message, data(array), limit, page, totalpages}
19849
+ */
19850
+ getPatternBlocks_Thumbnail_byFields_byPages(query: any, projection?: object, sort?: any, limit?: number, page?: number): Promise<unknown>;
19851
+ /**
19852
+ * @example:
19853
+ * this.vhDevAutoWeb.getSubProject_byEmail('email@gmail.com')
19854
+ .then((subprojects)=>{
19855
+ console.log('getSubProject_byEmail', subprojects);
19856
+ }, error=>{
19857
+ console.log(error, error);
19858
+ })
19859
+ * @param email
19860
+ * @return Promise => array =[{},{},...] / error
19861
+ */
19862
+ getSubProject_byEmail(email: string): Promise<unknown>;
19863
+ /**
19864
+ * @example
19865
+ * this.vhDevAutoWeb.getSubProject_byID('5fb67fda87c0f21d484cbdf3')
19866
+ .then((subproject)=>{
19867
+ console.log('getSubProject_byID', subproject);
19868
+ })
19869
+ * @param id_subproject
19870
+ * @return Promise => obj ={} or null
19871
+ */
19872
+ getSubProject_byID(id_subproject: string): Promise<unknown>;
19873
+ /**
19874
+ * @example:Lấy hình ảnh từ DOM
19875
+ * let html = document.getElementById('my-node')
19876
+ * this.vhDevAutoWeb.getThumbnailPatternFromHtml(html, 128, 128, id_block, "blocks/thumbnails").then(
19877
+ photoURL => {
19878
+ this.img = photoURL;
19879
+ this.vhComponent.showToast(2000, (this.languageService.translate("Image was loaded successfully")));
19880
+ },
19881
+ () => {
19882
+ this.vhComponent.showToast(2000, (this.languageService.translate("Image was failed")));
19883
+ }
19884
+ );
19885
+ * @param w
19886
+ * @param h
19887
+ * @param folder
19888
+ * @param oldthumbnailURL
19889
+ * @returns
19890
+ */
19891
+ getThumbnailPatternFromHtml(html: any, w: any, h: any, filename: string, folder: string): Promise<any>;
19892
+ private createImageFromDiv;
19893
+ /**
19894
+ *@example
19895
+ this.vhDevAutoWeb.deleteThumbnail([url_img, url_img1])
19896
+ .then(()=>{
19897
+ //-----------your code here-----------
19898
+ },(error:any)=>{
19899
+ console.log('error', error)
19900
+ })
19901
+ * @param thumbnailURL : Array
19902
+ * @returns Promise => true or false : xóa thành công tất cả hình trong mảng về true, xóa không thành công hoặc link một hình sai trả về false
19903
+ */
19904
+ deleteThumbnail(thumbnailURL: any): Promise<any>;
19905
+ static ɵfac: i0.ɵɵFactoryDeclaration<VhDevAutoWeb, never>;
19906
+ static ɵprov: i0.ɵɵInjectableDeclaration<VhDevAutoWeb>;
19907
+ }
19908
+ export declare class VhDesignAutoWeb {
19909
+ private vhAlgorithm;
19910
+ private vhAuth;
19911
+ private vhMGDB_auth;
19912
+ private socket;
19913
+ private signedin;
19914
+ private enduser;
19915
+ private branchs;
19916
+ private database_RAM;
19917
+ private memoryPageZY;
19918
+ private memory_Ctrl_Z;
19919
+ private memory_Ctrl_Y;
19920
+ private database_Ctrl_C;
19921
+ private code_Ctrl_Z;
19922
+ constructor(vhAlgorithm: VhAlgorithm, vhAuth: VhAuth, vhMGDB_auth: VhMGDB_auth);
19923
+ getProjectName(): string;
19924
+ /**
19925
+ * Hàm tính toán và tìm kiếm các block bị ảnh hưởng khi nó dịch chuyển theo hướng direction, sau đó dịch chuyển nó và các block bị ảnh hưởng theo hướng direction
19926
+ * Lưu ý: các block không bị ảnh hưởng sẽ ko bị dịch theo hướng direction, mà đứng im
19927
+ * @example:
19928
+ * this.vhDesignAutoWeb.shiftingBlocks(this, 'bottom', 20)
19929
+ * @param block: khối được chọn và cần dịch chuyển
19930
+ * @param direction: 'top', 'bottom', 'left' or 'right'
19931
+ * @param distance: khoảng cách cần dịch chuyển theo hướng direction
19932
+ * @returns
19933
+ */
19934
+ shiftingBlocks(_this: any, direction: any, distance: any): any;
19935
+ /**
19936
+ * Hàm tính toán và tìm kiếm các block bị ảnh hưởng khi nó dịch chuyển xuống dưới, sau đó dịch chuyển nó và các block bị ảnh hưởng xuống dưới
19937
+ * Lưu ý: các block không bị ảnh hưởng sẽ ko bị dịch xuống dưới
19938
+ * @param block: khối được chọn và cần dịch chuyển
19939
+ * @param blocks_of_page: các khối đang ở trong trang hiện hữu
19940
+ * @param distance: khoảng cách cần dịch chuyển xuống dưới
19941
+ * @returns
19942
+ */
19943
+ private findLimitBottomBlocks_andShifting;
19944
+ /**
19945
+ * Hàm tính toán và tìm kiếm các block bị ảnh hưởng khi nó dịch chuyển lên trên, sau đó dịch chuyển nó và các block bị ảnh hưởng lên trên
19946
+ * Lưu ý: các block không bị ảnh hưởng sẽ ko bị dịch lên trên
19947
+ * @param block: khối được chọn và cần dịch chuyển
19948
+ * @param blocks_of_page: các khối đang ở trong trang hiện hữu
19949
+ * @param distance: khoảng cách cần dịch chuyển lên trên
19950
+ * @returns
19951
+ */
19952
+ private findLimitTopBlocks_andShifting;
19953
+ /**
19954
+ * Hàm dùng đệ quy để tìm kiếm khối cuối cùng (gần đỉnh nhất) mà có ảnh hưởng bởi khối cần dịch chuyển lên trên.
19955
+ * Tìm đc khối này (có trường hợp ko có) sẽ tính được khối dịch chuyển với distance bao nhiêu là hợp lý
19956
+ * @param _this
19957
+ * @param block: khối được chọn và cần dịch chuyển
19958
+ * @param blocks_of_page: các khối đang ở trong trang hiện hữu
19959
+ * @param distance: khoảng cách cần dịch chuyển lên trên
19960
+ * @param last_limittop_block: vì đệ quy nhiều lần để tìm giá trị mới, lúc đầu truyền vào hàm giá trị null
19961
+ * @returns
19962
+ */
19963
+ private findLastLimitTopBlock;
19964
+ /**
19965
+ * Hàm tính toán và tìm kiếm các block bị ảnh hưởng khi nó dịch chuyển sang trái, sau đó dịch chuyển nó và các block bị ảnh hưởng sang trái
19966
+ * Lưu ý: các block không bị ảnh hưởng sẽ ko bị dịch sang trái
19967
+ * @param block: khối được chọn và cần dịch chuyển
19968
+ * @param blocks_of_page: các khối đang ở trong trang hiện hữu
19969
+ * @param distance: khoảng cách cần dịch chuyển sang trái
19970
+ * @returns
19971
+ */
19972
+ private findLimitLeftBlocks_andShifting;
19973
+ /**
19974
+ * Hàm dùng đệ quy để tìm kiếm khối cuối cùng (gần đỉnh nhất) mà có ảnh hưởng bởi khối cần dịch chuyển sang trái.
19975
+ * Tìm đc khối này (có trường hợp ko có) sẽ tính được khối dịch chuyển với distance bao nhiêu là hợp lý
19976
+ * @param _this
19977
+ * @param block: khối được chọn và cần dịch chuyển
19978
+ * @param blocks_of_page: các khối đang ở trong trang hiện hữu
19979
+ * @param distance: khoảng cách cần dịch chuyển sang trái
19980
+ * @param last_limittop_block: vì đệ quy nhiều lần để tìm giá trị mới, lúc đầu truyền vào hàm giá trị null
19981
+ * @returns
19982
+ */
19983
+ private findLastLimitLeftBlock;
19984
+ /**
19985
+ * Hàm tính toán và tìm kiếm các block bị ảnh hưởng khi nó dịch chuyển sang phải, sau đó dịch chuyển nó và các block bị ảnh hưởng sang phải
19986
+ * Lưu ý: các block không bị ảnh hưởng sẽ ko bị dịch sang phải
19987
+ * @param block: khối được chọn và cần dịch chuyển
19988
+ * @param blocks_of_page: các khối đang ở trong trang hiện hữu
19989
+ * @param distance: khoảng cách cần dịch chuyển sang phải
19990
+ * @returns
19991
+ */
19992
+ private findLimitRightBlocks_andShifting;
19993
+ /**
19994
+ * Hàm dùng đệ quy để tìm kiếm khối cuối cùng (gần đỉnh nhất) mà có ảnh hưởng bởi khối cần dịch chuyển sang phải.
19995
+ * Tìm đc khối này (có trường hợp ko có) sẽ tính được khối dịch chuyển với distance bao nhiêu là hợp lý
19996
+ * @param _this
19997
+ * @param block: khối được chọn và cần dịch chuyển
19998
+ * @param blocks_of_page: các khối đang ở trong trang hiện hữu
19999
+ * @param distance: khoảng cách cần dịch chuyển sang phải
20000
+ * @param last_limittop_block: vì đệ quy nhiều lần để tìm giá trị mới, lúc đầu truyền vào hàm giá trị null
20001
+ * @returns
20002
+ */
20003
+ private findLastLimitRightBlock;
20004
+ /**
20005
+ * Hàm tính toán và dịch chuyển khối đã chọn theo hướng direction
20006
+ * Lưu ý: các block khác sẽ ko bị dịch theo hướng direction, mà đứng im
20007
+ * @example:
20008
+ * this.vhDesignAutoWeb.shiftingBlock(this, 'bottom', 20)
20009
+ * @param block: khối được chọn và cần dịch chuyển
20010
+ * @param direction: 'top', 'bottom', 'left' or 'right'
20011
+ * @param distance: khoảng cách cần dịch chuyển theo hướng direction
20012
+ * @returns
19391
20013
  */
19392
- deletePatternBlock_Thumbnail(_id: string): Promise<unknown>;
20014
+ shiftingBlock(_this: any, direction: any, distance: any): any;
20015
+ private findLimitTopBlock;
20016
+ private findLimitBottomBlock;
20017
+ private findLimitLeftBlock;
20018
+ private findLimitRightBlock;
20019
+ /****************************************************************************************/
20020
+ /**
20021
+ *Hàm này thực hiện tăng hoặc giảm z-index của object, frame được chọn
20022
+ */
20023
+ changeZIndex(_this: any, layer_type: any): any;
20024
+ /**
20025
+ *Hàm này thực hiện tăng hoặc giảm z-index của block
20026
+ */
20027
+ private changeZindexBlock;
20028
+ /**
20029
+ *Hàm này thực hiện tăng hoặc giảm z-index của object
20030
+ */
20031
+ private changeZindexObject;
20032
+ /**
20033
+ * Khi di chuyển một object trong block hoặc object trong frame đến 1 vị trí nào đó, hàm này sẽ trả về hoặc là giá trị của object nó đè lên
20034
+ * hoặc là null (vị trí đè lên là vị trí trông)
20035
+ * @param id_block
20036
+ * @param x
20037
+ * @param y
20038
+ * @returns
20039
+ */
20040
+ private calculateOverlapObjects;
20041
+ /**
20042
+ * Hàm lấy về mảng tất cả các phần tử object trong block, hoặc tất cả các phần tử object trong object
20043
+ * @returns
20044
+ */
20045
+ private queryElementAllObjectsInBlockOrObject;
20046
+ /**
20047
+ * khi zindex đã xuống lớp thấp nhất (zindex=1) thị cập nhật lại zindex của tất cả các object trong cùng object hoặc cùng block
20048
+ * cha lên 10
20049
+ * @param _this
20050
+ * @returns
20051
+ */
20052
+ private updateZindexOfElementAllInBlockOrObject;
20053
+ /****************************************************************************************/
20054
+ /**
20055
+ * object trong block, object trong object, và có thể qua rất nhiều cấp, do đó cần hàm này để tìm ra object đó,
20056
+ * cách tìm là duyệt qua từng block đến từng object
20057
+ * @param block
20058
+ * @param id_frame
20059
+ * @returns Promise => trả về object có _id là id_object hoặc null(ko tìm thấy)
20060
+ */
20061
+ private findObjectInBlock;
20062
+ /**
20063
+ * Hàm này tìm object trong các block trên page và xóa nó đi
20064
+ * object trong block, object trong object, và có thể qua rất nhiều cấp, do đó cần hàm này để tìm ra object đó,
20065
+ * cách tìm là duyệt qua từng block đến từng object
20066
+ * @param block
20067
+ * @param id_object
20068
+ * @returns Promise => trả về object có _id là id_object hoặc null(ko tìm thấy)
20069
+ */
20070
+ findObjectInBlockAndDelete(block: any, id_object: any): any;
20071
+ /**
20072
+ * @example:
20073
+ * this.vhDesignAutoWeb.deployWebAppsource_toBuild_byEmail('nlQaKuDIMi6M7XtwmNMk', 'devdomain01@gmail.com', '******')
20074
+ .then(response=>{
20075
+ console.log('response', response);
20076
+ if(response.vcode === 0){
20077
+ //-----------your code 0-----------
20078
+ }else if(response.vcode === 1){
20079
+ //-----------your code 1-----------
20080
+ }
20081
+ },(error:any)=>{
20082
+ console.log('error', error)
20083
+ })
20084
+ * @param email
20085
+ * @param password
20086
+ * @return Promise object => response = {vcode, msg}
20087
+ * vcode == 0: Message sent to email address successfully
20088
+ * vcode == 1: Email address does not exist
20089
+ */
20090
+ deployWebAppsource_toBuild_byEmail(database: string, build_email: string, build_password: string): Promise<any>;
20091
+ /**
20092
+ * @example:
20093
+ * this.vhDesignAutoWeb.deployWebAppsource_toMySqlHosting_byEndUser('664483e744da7a03b4d5e1a2', 'domain07.webappgiare.vn')
20094
+ .then(response=>{
20095
+ console.log('response', response);
20096
+ if(response.vcode === 0){
20097
+ //-----------your code 0-----------
20098
+ }else if(response.vcode === 1){
20099
+ //-----------your code 1-----------
20100
+ }
20101
+ },(error:any)=>{
20102
+ console.log('error', error)
20103
+ })
20104
+ * @param db_webapp
20105
+ * @param hosting
20106
+ * @return Promise object => response = {vcode, msg}
20107
+ * vcode == 0: Message sent to email address successfully
20108
+ * vcode == 1: Email address does not exist
20109
+ * vcode == 11: 'not logged in'
20110
+ */
20111
+ deployWebAppsource_toMySqlHosting_byEndUser(db_webapp: string, hosting: string, cloning_options: any): Promise<any>;
20112
+ /**
20113
+ * @example:
20114
+ * this.vhDesignAutoWeb.deployWebAppsource_toMongoHosting_byEmail('nlQaKuDIMi6M7XtwmNMk', 'domain05', 'devhosting@gmail.com', '***')
20115
+ .then((response:any)=>{
20116
+ console.log('response', response);
20117
+ if(response.vcode === 0){
20118
+ //-----------your code 0-----------
20119
+ }else if(response.vcode === 1){
20120
+ //-----------your code 1-----------
20121
+ }
20122
+ },(error:any)=>{
20123
+ console.log('error', error)
20124
+ })
20125
+ * @param email
20126
+ * @param password
20127
+ * @param cloning_options = {source_webapp:none/renew/overwrite, template_webapp: none/renew/overwrite, database_webapp: none/renew/overwrite}
20128
+ * @return Promise object => response = {vcode, msg}
20129
+ * vcode == 0: Message sent to email address successfully
20130
+ * vcode == 1: Email address does not exist
20131
+ */
20132
+ deployWebAppsource_toMongoHosting_byEmail(database: string, hosting: string, hosting_email: string, hosting_password: string, cloning_options: any): Promise<any>;
20133
+ deployWebAppsource_toPackage(database: string): Promise<any>;
19393
20134
  /**
19394
20135
  * @example:
19395
- * this.vhDevAutoWeb.getPatternBlocks_Thumbnail_byFields_byPages('webapp_abouts', {name:{$eq:'name abc'}}, {},{},6,1)
19396
- .then(response=>{
20136
+ * this.vhDesignAutoWeb.forgotPasswordEndUser_byEmail('salesf110@gmail.com','h674567')
20137
+ .then(response=>{
19397
20138
  console.log('response', response);
19398
20139
  if(response.vcode === 0){
19399
- //-----------your code-----------
19400
- let products = response.data;
20140
+ //-----------your code 0-----------
20141
+ let user = response.data;
20142
+ }else if(response.vcode === 1){
20143
+ //-----------your code 1-----------
19401
20144
  }
19402
- },(error:any)=>{
19403
- console.log('error', error)
19404
- })
19405
- * @param colname
19406
- * @param query
19407
- * @param projection đang tìm hiểu, tạm thời để giá trị là {}
19408
- * @param sort — null hoặc {}:không sắp xếp; {date:1}: sắp xếp theo ASC; {date:-1}: sắp xếp theo DESC
19409
- * @param limit — null hoặc 0: không giới hạn record get về; 2: get về 2 record
19410
- * @param page — null hoặc 0 hoặc 1: get về trang đầu tiên; 2: get về trang thứ 2
19411
- * @return Promise object => response = {vcode, message, data(array), limit, page, totalpages}
19412
- */
19413
- getPatternBlocks_Thumbnail_byFields_byPages(query: any, projection?: object, sort?: any, limit?: number, page?: number): Promise<unknown>;
20145
+ },(error:any)=>{
20146
+ console.log('error', error)
20147
+ })
20148
+ * @param email
20149
+ * @param password
20150
+ * @return Promise object => response = {vcode, msg}
20151
+ * vcode == 0: Message sent to email address successfully
20152
+ * vcode == 1: Email address does not exist
20153
+ */
20154
+ forgotPasswordEndUser_byEmail(database: string, email: string, password: string): Promise<any>;
19414
20155
  /**
19415
20156
  * @example:
19416
- * this.vhDevAutoWeb.getSubProject_byEmail('email@gmail.com')
19417
- .then((subprojects)=>{
19418
- console.log('getSubProject_byEmail', subprojects);
19419
- }, error=>{
19420
- console.log(error, error);
19421
- })
19422
- * @param email
19423
- * @return Promise => array =[{},{},...] / error
19424
- */
19425
- getSubProject_byEmail(email: string): Promise<unknown>;
20157
+ * this.vhDesignAutoWeb.changePasswordEndUser_byEmail('salesf110@gmail.com','h674567', 'V12345678')
20158
+ .then(response=>{
20159
+ console.log('response', response);
20160
+ if(response.vcode === 0){
20161
+ //-----------your code 0-----------
20162
+ let user = response.data;
20163
+ }else if(response.vcode === 1){
20164
+ //-----------your code 1-----------
20165
+ }else if(response.vcode === 2){
20166
+ //-----------your code 2-----------
20167
+ }else if(response.vcode === 3){
20168
+ //-----------your code 3-----------
20169
+ }
20170
+ },(error:any)=>{
20171
+ console.log('error', error)
20172
+ })
20173
+ * @param email
20174
+ * @param oldpassword
20175
+ * @param newpassword
20176
+ * @return Promise object => response = {vcode, msg}
20177
+ * vcode == 0: Message sent to email address successfully
20178
+ * vcode == 1: Email address does not exist
20179
+ * vcode == 2: wrong oldpassword
20180
+ * vcode == 3: please reset your password
20181
+ */
20182
+ changePasswordEndUser_byEmail(database: string, email: string, oldpassword: string, newpassword: string): Promise<any>;
20183
+ /**
20184
+ * @example:
20185
+ * this.vhDesignAutoWeb.signupEndUser_byEmail('salesf110@gmail.com','h674567',{})
20186
+ .then(rsp=>{
20187
+ console.log('signupEndUser_byEmail', rsp);
20188
+ if(rsp.vcode === 0){
20189
+ //-----------your code 1-----------
20190
+ let enduser = rsp.data;
20191
+ }else if(rsp.vcode === 1){
20192
+ //-----------your code 2-----------
20193
+ }
20194
+ },(error:any)=>{
20195
+ console.log('error', error)
20196
+ })
20197
+ * @param email
20198
+ * @param password
20199
+ * @param info : thông tin của enduser
20200
+ * @return Promise object => rsp = {vcode, msg, data}
20201
+ * vcode == 0: User account registered successful
20202
+ * vcode == 1: User Email already exists
20203
+ * @notice : sau khi đăng ký thành công, người dùng phải vào email xác nhận xác nhận việc đăng ký này
20204
+ */
20205
+ signupEndUser_byEmail(database: string, email: string, password: string, info: object): Promise<any>;
19426
20206
  /**
19427
- * @example
19428
- * this.vhDevAutoWeb.getSubProject_byID('5fb67fda87c0f21d484cbdf3')
19429
- .then((subproject)=>{
19430
- console.log('getSubProject_byID', subproject);
20207
+ * @example:
20208
+ * this.vhDesignAutoWeb.signinEndUser_byEmail('salesf110@gmail.com','h674567')
20209
+ .then(response=>{
20210
+ console.log('response', response);
20211
+ if(response.vcode === 0){
20212
+ //-----------your code 0-----------
20213
+ let user = response.data;
20214
+ }else if(response.vcode === 1){
20215
+ //-----------your code 1-----------
20216
+ }else if(response.vcode === 2){
20217
+ //-----------your code 2-----------
20218
+ }else if(response.vcode === 3){
20219
+ //-----------your code 3-----------
20220
+ }else if(response.vcode === 4){
20221
+ //-----------your code 4-----------
20222
+ }
20223
+ },(error:any)=>{
20224
+ console.log('error', error)
19431
20225
  })
19432
- * @param id_subproject
19433
- * @return Promise => obj ={} or null
19434
- */
19435
- getSubProject_byID(id_subproject: string): Promise<unknown>;
19436
- /**
19437
- * @example:Lấy hình ảnh từ DOM
19438
- * let html = document.getElementById('my-node')
19439
- * this.vhDevAutoWeb.getThumbnailPatternFromHtml(html, 128, 128, id_block, "blocks/thumbnails").then(
19440
- photoURL => {
19441
- this.img = photoURL;
19442
- this.vhComponent.showToast(2000, (this.languageService.translate("Image was loaded successfully")));
19443
- },
19444
- () => {
19445
- this.vhComponent.showToast(2000, (this.languageService.translate("Image was failed")));
19446
- }
19447
- );
19448
- * @param w
19449
- * @param h
19450
- * @param folder
19451
- * @param oldthumbnailURL
19452
- * @returns
19453
- */
19454
- getThumbnailPatternFromHtml(html: any, w: any, h: any, filename: string, folder: string): Promise<any>;
19455
- private createImageFromDiv;
20226
+ * @param email
20227
+ * @param password
20228
+ * @return Promise object => response = {vcode, msg, data}
20229
+ * vcode == 0: Signed in successfully
20230
+ * vcode == 1: Wrong email
20231
+ * vcode == 2: Please login into your email to confirm your account on my website or APP
20232
+ * vcode == 3: Please reset your password
20233
+ * vcode == 4: Wrong password
20234
+ */
20235
+ signinEndUser_byEmail(database: string, email: string, password: string): Promise<any>;
19456
20236
  /**
19457
- *@example
19458
- this.vhDevAutoWeb.deleteThumbnail([url_img, url_img1])
19459
- .then(()=>{
19460
- //-----------your code here-----------
20237
+ * @example:
20238
+ * this.vhDesignAutoWeb.onAuthStateChangedEndUser()
20239
+ .then(response=>{
20240
+ console.log('response', response);
20241
+ if(response.vcode === 0){
20242
+ //-----------your code 0-----------
20243
+ let user = response.data;
20244
+ }else if(response.vcode === 1){
20245
+ //-----------your code 1-----------
20246
+ }else if(response.vcode === 2){
20247
+ //-----------your code 2-----------
20248
+ }else if(response.vcode === 3){
20249
+ //-----------your code 3-----------
20250
+ }else if(response.vcode === 4){
20251
+ //-----------your code 4-----------
20252
+ }
19461
20253
  },(error:any)=>{
19462
- console.log('error', error)
20254
+ console.log('error', error)
19463
20255
  })
19464
- * @param thumbnailURL : Array
19465
- * @returns Promise => true or false : xóa thành công tất cả hình trong mảng về true, xóa không thành công hoặc link một hình sai trả về false
20256
+ * @return Promise object => response = {vcode, msg}
20257
+ * vcode == 0: Signed in successfully
20258
+ * vcode == 1: wrong access_token->email
20259
+ * vcode == 2: wrong access_token->password
20260
+ * vcode == 3: Please login into your email to confirm your account on my website or APP
20261
+ * vcode == 4: Please reset your password
19466
20262
  */
19467
- deleteThumbnail(thumbnailURL: any): Promise<any>;
19468
- static ɵfac: i0.ɵɵFactoryDeclaration<VhDevAutoWeb, never>;
19469
- static ɵprov: i0.ɵɵInjectableDeclaration<VhDevAutoWeb>;
19470
- }
19471
- export declare class VhDesignAutoWeb {
19472
- private vhAlgorithm;
19473
- private vhAuth;
19474
- private vhMGDB_auth;
19475
- private socket;
19476
- private signedin;
19477
- private enduser;
19478
- private branchs;
19479
- private database_RAM;
19480
- private memoryPageZY;
19481
- private memory_Ctrl_Z;
19482
- private memory_Ctrl_Y;
19483
- private database_Ctrl_C;
19484
- private code_Ctrl_Z;
19485
- constructor(vhAlgorithm: VhAlgorithm, vhAuth: VhAuth, vhMGDB_auth: VhMGDB_auth);
19486
- getProjectName(): string;
19487
- /**
19488
- * Hàm tính toán và tìm kiếm các block bị ảnh hưởng khi nó dịch chuyển theo hướng direction, sau đó dịch chuyển nó và các block bị ảnh hưởng theo hướng direction
19489
- * Lưu ý: các block không bị ảnh hưởng sẽ ko bị dịch theo hướng direction, mà đứng im
19490
- * @example:
19491
- * this.vhDesignAutoWeb.shiftingBlocks(this, 'bottom', 20)
19492
- * @param block: khối được chọn và cần dịch chuyển
19493
- * @param direction: 'top', 'bottom', 'left' or 'right'
19494
- * @param distance: khoảng cách cần dịch chuyển theo hướng direction
19495
- * @returns
19496
- */
19497
- shiftingBlocks(_this: any, direction: any, distance: any): any;
20263
+ onAuthStateChangedEndUser(database: string): Promise<any>;
20264
+ getHostings_byEndUser(database: string): Promise<any>;
19498
20265
  /**
19499
- * Hàm tính toán và tìm kiếm các block bị ảnh hưởng khi nó dịch chuyển xuống dưới, sau đó dịch chuyển nó và các block bị ảnh hưởng xuống dưới
19500
- * Lưu ý: các block không bị ảnh hưởng sẽ ko bị dịch xuống dưới
19501
- * @param block: khối được chọn và cần dịch chuyển
19502
- * @param blocks_of_page: các khối đang ở trong trang hiện hữu
19503
- * @param distance: khoảng cách cần dịch chuyển xuống dưới
20266
+ * vhDesignAutoWeb
20267
+ * @param hosting
19504
20268
  * @returns
19505
20269
  */
19506
- private findLimitBottomBlocks_andShifting;
19507
- /**
19508
- * Hàm tính toán và tìm kiếm các block bị ảnh hưởng khi nó dịch chuyển lên trên, sau đó dịch chuyển nó và các block bị ảnh hưởng lên trên
19509
- * Lưu ý: các block không bị ảnh hưởng sẽ ko bị dịch lên trên
19510
- * @param block: khối được chọn và cần dịch chuyển
19511
- * @param blocks_of_page: các khối đang ở trong trang hiện hữu
19512
- * @param distance: khoảng cách cần dịch chuyển lên trên
19513
- * @returns
19514
- */
19515
- private findLimitTopBlocks_andShifting;
20270
+ createHosting_byEndUser(hosting: string): Promise<any>;
20271
+ removeHosting_byEndUser(hosting: string): Promise<any>;
19516
20272
  /**
19517
- * Hàm dùng đệ quy để tìm kiếm khối cuối cùng (gần đỉnh nhất) mà có ảnh hưởng bởi khối cần dịch chuyển lên trên.
19518
- * Tìm đc khối này (có trường hợp ko có) sẽ tính được khối dịch chuyển với distance bao nhiêu là hợp lý
19519
- * @param _this
19520
- * @param block: khối được chọn và cần dịch chuyển
19521
- * @param blocks_of_page: các khối đang ở trong trang hiện hữu
19522
- * @param distance: khoảng cách cần dịch chuyển lên trên
19523
- * @param last_limittop_block: vì đệ quy nhiều lần để tìm giá trị mới, lúc đầu truyền vào hàm giá trị null
19524
- * @returns
20273
+ * @example
20274
+ * this.vhDesignAutoWeb.signoutEndUser();
20275
+ * @return void
19525
20276
  */
19526
- private findLastLimitTopBlock;
20277
+ signoutEndUser(database: string): void;
19527
20278
  /**
19528
- * Hàm tính toán và tìm kiếm các block bị ảnh hưởng khi nó dịch chuyển sang trái, sau đó dịch chuyển nó và các block bị ảnh hưởng sang trái
19529
- * Lưu ý: các block không bị ảnh hưởng sẽ ko bị dịch sang trái
19530
- * @param block: khối được chọn và cần dịch chuyển
19531
- * @param blocks_of_page: các khối đang ở trong trang hiện hữu
19532
- * @param distance: khoảng cách cần dịch chuyển sang trái
19533
- * @returns
19534
- */
19535
- private findLimitLeftBlocks_andShifting;
20279
+ * @example
20280
+ * let bool = this.vhDesignAutoWeb.checkSigninEndUser();
20281
+ * @return Boolean => true or false
20282
+ */
20283
+ checkSigninEndUser(): any;
19536
20284
  /**
19537
- * Hàm dùng đệ quy để tìm kiếm khối cuối cùng (gần đỉnh nhất) mà có ảnh hưởng bởi khối cần dịch chuyển sang trái.
19538
- * Tìm đc khối này (có trường hợp ko có) sẽ tính được khối dịch chuyển với distance bao nhiêu là hợp lý
19539
- * @param _this
19540
- * @param block: khối được chọn và cần dịch chuyển
19541
- * @param blocks_of_page: các khối đang ở trong trang hiện hữu
19542
- * @param distance: khoảng cách cần dịch chuyển sang trái
19543
- * @param last_limittop_block: vì đệ quy nhiều lần để tìm giá trị mới, lúc đầu truyền vào hàm giá trị null
19544
- * @returns
19545
- */
19546
- private findLastLimitLeftBlock;
20285
+ * @example:
20286
+ * let enduser = this.vhDesignAutoWeb.getlocalEndUser();
20287
+ * @return object => obj = {}
20288
+ */
20289
+ getlocalEndUser(): any;
19547
20290
  /**
19548
- * Hàm tính toán tìm kiếm các block bị ảnh hưởng khi dịch chuyển sang phải, sau đó dịch chuyển nó và các block bị ảnh hưởng sang phải
19549
- * Lưu ý: các block không bị ảnh hưởng sẽ ko bị dịch sang phải
19550
- * @param block: khối được chọn và cần dịch chuyển
19551
- * @param blocks_of_page: các khối đang ở trong trang hiện hữu
19552
- * @param distance: khoảng cách cần dịch chuyển sang phải
19553
- * @returns
19554
- */
19555
- private findLimitRightBlocks_andShifting;
20291
+ * Hàm này cập nhật thông tin người dùng webapp (người dùng đã nhập vào webapp mới cập nhật được)
20292
+ * @example:
20293
+ * this.vhDesignAutoWeb.updateEndUser('5fb6780ca2148e09806c5b01', {name:'Nguyễn Văn A'})
20294
+ .then(rsp=>{
20295
+ console.log('updateEndUser', rsp);
20296
+ if(rsp.vcode === 0){
20297
+ //-----------your code-----------
20298
+ }
20299
+ },(error:any)=>{
20300
+ console.log('error', error)
20301
+ })
20302
+ * @param value : object
20303
+ * @return Promise => rsp ={vcode, msg, data(undefined)} / error
20304
+ * @notice : hàm này chỉ get được dữ liệu sau khi khách hàng hoặc nhân viên đã đăng nhập, ở giao diện thiết kế dùng thư viện vhDesignAutoWeb
20305
+ * chưa thấy cần thiết kiểm tra bảo mật này nên chưa thêm dòng lệnh kiểm tra và trả về vcode=11
20306
+ * vcode == 0: success
20307
+ * vcode == 2: wrong projectname
20308
+ */
20309
+ updateEndUser(database: string, value: object): Promise<unknown>;
19556
20310
  /**
19557
- * Hàm dùng đệ quy để tìm kiếm khối cuối cùng (gần đỉnh nhất) ảnh hưởng bởi khối cần dịch chuyển sang phải.
19558
- * Tìm đc khối này (có trường hợp ko có) sẽ tính được khối dịch chuyển với distance bao nhiêu là hợp lý
19559
- * @param _this
19560
- * @param block: khối được chọn và cần dịch chuyển
19561
- * @param blocks_of_page: các khối đang ở trong trang hiện hữu
19562
- * @param distance: khoảng cách cần dịch chuyển sang phải
19563
- * @param last_limittop_block: vì đệ quy nhiều lần để tìm giá trị mới, lúc đầu truyền vào hàm giá trị null
19564
- * @returns
20311
+ * Hàm này xóa email người dùng webapp (người dùng đã nhập vào webapp mới xóa được)
20312
+ * @example:
20313
+ * this.vhDesignAutoWeb.deleteEndUser()
20314
+ .then(response=>{
20315
+ console.log('response', response);
20316
+ if(response.vcode === 0){
20317
+ //-----------your code-----------
20318
+ //thoat ra trang chưa đăng nhập
20319
+ }
20320
+ },(error:any)=>{
20321
+ console.log('error', error)
20322
+ })
20323
+ * @return Promise object => response = {vcode, msg}
20324
+ * vcode == 0: Deleted successfully
19565
20325
  */
19566
- private findLastLimitRightBlock;
20326
+ deleteEndUser(database: string): Promise<unknown>;
19567
20327
  /**
19568
- * Hàm tính toán dịch chuyển khối đã chọn theo hướng direction
19569
- * Lưu ý: các block khác sẽ ko bị dịch theo hướng direction, mà đứng im
19570
- * @example:
19571
- * this.vhDesignAutoWeb.shiftingBlock(this, 'bottom', 20)
19572
- * @param block: khối được chọn và cần dịch chuyển
19573
- * @param direction: 'top', 'bottom', 'left' or 'right'
19574
- * @param distance: khoảng cách cần dịch chuyển theo hướng direction
19575
- * @returns
19576
- */
19577
- shiftingBlock(_this: any, direction: any, distance: any): any;
19578
- private findLimitTopBlock;
19579
- private findLimitBottomBlock;
19580
- private findLimitLeftBlock;
19581
- private findLimitRightBlock;
19582
- /****************************************************************************************/
20328
+ * Hàm này người thiết kế (vhuserweb) tạo tài khoản cho khách hàng của họ ở (vhdevweb)
20329
+ * @example:
20330
+ * this.vhDesignAutoWeb.signUpWebAppOwner('huyleduc92', '123456', '+84909925359',{})
20331
+ .then((owner)=>{
20332
+ console.log('signUpWebAppOwner', owner);
20333
+ },(error:any)=>{
20334
+ console.log('error', error);
20335
+ })
20336
+ * @param email
20337
+ * @param password
20338
+ * @param phoneNumber
20339
+ * @param info
20340
+ * @return Promise => owner={}
20341
+ */
20342
+ signUpWebAppOwner(email: string, password: string, phoneNumber: any, info: any): Promise<unknown>;
20343
+ detailPage: any;
20344
+ detailPage_byScroll: any;
20345
+ detailFreeBlock: any;
19583
20346
  /**
19584
- *Hàm này thực hiện tăng hoặc giảm z-index của object, frame được chọn
20347
+ * vhDesignAutoWeb
20348
+ * @param _this
20349
+ * @param scrollTop
19585
20350
  */
19586
- changeZIndex(_this: any, layer_type: any): any;
20351
+ displayBocksOfPage_byScroll(_this: any, scrollTop: number): void;
19587
20352
  /**
19588
- *Hàm này thực hiện tăng hoặc giảm z-index của block
20353
+ * vhDesignAutoWeb
20354
+ * @param _this
20355
+ * @param scrollTop
20356
+ * @param refresh
19589
20357
  */
19590
- private changeZindexBlock;
20358
+ displayBocksOfPage_byScroll_toEnd(_this: any, scrollTop: number, refresh: boolean): void;
19591
20359
  /**
19592
- *Hàm này thực hiện tăng hoặc giảm z-index của object
20360
+ * vhDesignAutoWeb
20361
+ * @param id_page
20362
+ * @returns
19593
20363
  */
19594
- private changeZindexObject;
20364
+ getDetailPage(id_page: any): Promise<unknown>;
20365
+ getDetailFreeBlocks(): Promise<unknown>;
19595
20366
  /**
19596
- * Khi di chuyển một object trong block hoặc object trong frame đến 1 vị trí nào đó, hàm này sẽ trả về hoặc là giá trị của object nó đè lên
19597
- * hoặc là null (vị trí đè lên là vị trí trông)
20367
+ * vhDesignAutoWeb
19598
20368
  * @param id_block
19599
- * @param x
19600
- * @param y
19601
20369
  * @returns
19602
20370
  */
19603
- private calculateOverlapObjects;
20371
+ getDetailFreeBlock(id_block: any): Promise<unknown>;
19604
20372
  /**
19605
- * Hàm lấy về mảng tất cả các phần tử object trong block, hoặc tất cả các phần tử object trong object
20373
+ * vhDesignAutoWeb
20374
+ * @param id_block
19606
20375
  * @returns
19607
20376
  */
19608
- private queryElementAllObjectsInBlockOrObject;
20377
+ getDetailBlock(id_block: any): Promise<unknown>;
19609
20378
  /**
19610
- * khi zindex đã xuống lớp thấp nhất (zindex=1) thị cập nhật lại zindex của tất cả các object trong cùng object hoặc cùng block
19611
- * cha lên 10
19612
- * @param _this
20379
+ * vhDesignAutoWeb
20380
+ * @param block
19613
20381
  * @returns
19614
20382
  */
19615
- private updateZindexOfElementAllInBlockOrObject;
19616
- /****************************************************************************************/
20383
+ getDetailBlock_byBlock(block: any): Promise<unknown>;
20384
+ getDetailObject(id_object: any): Promise<unknown>;
19617
20385
  /**
19618
- * object trong block, object trong object, thể qua rất nhiều cấp, do đó cần hàm này để tìm ra object đó,
19619
- * cách tìm là duyệt qua từng block đến từng object
19620
- * @param block
19621
- * @param id_frame
19622
- * @returns Promise => trả về object có _id là id_object hoặc null(ko tìm thấy)
20386
+ * Hàm này trả về 1 object (đủ thông tin object), trong mỗi object trường objects (có đủ thông tin từng object)
20387
+ * @example
20388
+ * this.vhDesignAutoWeb.getDetailObject_byObject('00Tm41GNYN0aYbAtuncH')
20389
+ .then((object)=>{
20390
+ console.log('getDetailObject', object);
20391
+ }, error=>{
20392
+ console.log('error', error);
20393
+ })
20394
+ * @param id_object
20395
+ * @return Promise => page = {}
20396
+ */
20397
+ getDetailObject_byObject(object: any): Promise<unknown>;
20398
+ /**
20399
+ * vhDesignAutoWeb
19623
20400
  */
19624
- private findObjectInBlock;
20401
+ startSocketDatabase(): void;
20402
+ private checkModifiedType;
20403
+ private addBlockOrObject_fromDetailPage;
19625
20404
  /**
19626
- * Hàm này tìm object trong các block trên page và xóa nó đi
19627
- * object trong block, object trong object, và có thể qua rất nhiều cấp, do đó cần hàm này để tìm ra object đó,
19628
- * cách tìm là duyệt qua từng block đến từng object
19629
- * @param block
19630
- * @param id_object
19631
- * @returns Promise => trả về object có _id là id_object hoặc null(ko tìm thấy)
20405
+ * Thên Block hoặc Object nhân bản vào detailpage
19632
20406
  */
19633
- findObjectInBlockAndDelete(block: any, id_object: any): any;
20407
+ private addCloneBlockOrObject_fromDetailPage;
20408
+ private deleteCloneBlockOrObject_fromDetailPage;
20409
+ private updateBlockOrObject_fromDetailPage;
20410
+ private deleteBlockOrObject_fromDetailPage;
20411
+ stopSocketDatabase(): void;
20412
+ /**
20413
+ * @example SET:
20414
+ * this.vhDesignAutoWeb.localStorageSET('local_name', {a=1, b='hai'});
20415
+ * this.vhDesignAutoWeb.localStorageSET('local_name', 15000);
20416
+ * this.vhDesignAutoWeb.localStorageSET('local_name', 'muoi lam nghin dong');
20417
+ * this.vhDesignAutoWeb.localStorageSET('local_name', null);
20418
+ * @returns
20419
+ */
20420
+ localStorageSET(name: string, value: any): void;
20421
+ /**
20422
+ * @example GET:
20423
+ * let object = this.vhDesignAutoWeb.localStorageGET('local_name');
20424
+ * @returns
20425
+ */
20426
+ localStorageGET(name: string): any;
19634
20427
  /**
19635
20428
  * @example:
19636
- * this.vhDesignAutoWeb.deployWebAppsource_toBuild_byEmail('nlQaKuDIMi6M7XtwmNMk', 'devdomain01@gmail.com', '******')
19637
- .then(response=>{
19638
- console.log('response', response);
19639
- if(response.vcode === 0){
19640
- //-----------your code 0-----------
19641
- }else if(response.vcode === 1){
19642
- //-----------your code 1-----------
19643
- }
19644
- },(error:any)=>{
19645
- console.log('error', error)
19646
- })
19647
- * @param email
19648
- * @param password
19649
- * @return Promise object => response = {vcode, msg}
19650
- * vcode == 0: Message sent to email address successfully
19651
- * vcode == 1: Email address does not exist
20429
+ * this.vhDesignAutoWeb.createIndexes('atw_products', {name_textsearch:'text'})
20430
+ .then((obj:any)=>{
20431
+ console.log('createIndexes', obj);
20432
+ }, error=>{
20433
+ reject(error)
20434
+ })
20435
+ * @param colname
20436
+ * @param index
20437
+ * @return null or object
20438
+ */
20439
+ createIndexes(colname: string, index: any): Promise<unknown>;
20440
+ /**
20441
+ * @example:
20442
+ * this.vhDesignAutoWeb.addBranch({name:'Chi nhánh 2'})
20443
+ .then((rsp:any)=>{
20444
+ if(rsp.vcode === 0){
20445
+ let branch = rsp.data;
20446
+ }
20447
+ }, error=>{
20448
+ reject(error)
20449
+ })
20450
+ * @param data
20451
+ * @return Promise => rsp ={vcode, msg, data(object)} / error
20452
+ * @notice : hàm này chỉ add được dữ liệu sau khi khách hàng hoặc nhân viên đã đăng nhập
20453
+ * vcode == 0: success
20454
+ * vcode == 11: 'not logged in'
20455
+ */
20456
+ addBranch(data: any): Promise<unknown>;
20457
+ /**
20458
+ * @example
20459
+ * this.vhDesignAutoWeb.getbranchs()
20460
+ .then((branchs)=>{
20461
+ console.log('getbranchs', branchs);
20462
+ })
20463
+ * @return Promise => array(object) = [{},{},..]
20464
+ */
20465
+ getbranchs(): Promise<unknown>;
20466
+ /**
20467
+ * @example:
20468
+ * let branch = this.vhDesignAutoWeb.getlocalBranch('5fb6780ca2148e09806c5b01');
20469
+ * @param id_branch
20470
+ * @return Object => obj = {} or null
19652
20471
  */
19653
- deployWebAppsource_toBuild_byEmail(database: string, build_email: string, build_password: string): Promise<any>;
20472
+ getlocalBranch(id_branch: any): any;
19654
20473
  /**
19655
20474
  * @example:
19656
- * this.vhDesignAutoWeb.deployWebAppsource_toMySqlHosting_byEndUser('664483e744da7a03b4d5e1a2', 'domain07.webappgiare.vn')
19657
- .then(response=>{
19658
- console.log('response', response);
19659
- if(response.vcode === 0){
19660
- //-----------your code 0-----------
19661
- }else if(response.vcode === 1){
19662
- //-----------your code 1-----------
19663
- }
19664
- },(error:any)=>{
19665
- console.log('error', error)
19666
- })
19667
- * @param db_webapp
19668
- * @param hosting
19669
- * @return Promise object => response = {vcode, msg}
19670
- * vcode == 0: Message sent to email address successfully
19671
- * vcode == 1: Email address does not exist
19672
- * vcode == 11: 'not logged in'
20475
+ * let branchs = this.vhDesignAutoWeb.getlocalBranchs();
20476
+ * @return Array(object) => array = [{},{},...]
19673
20477
  */
19674
- deployWebAppsource_toMySqlHosting_byEndUser(db_webapp: string, hosting: string, cloning_options: any): Promise<any>;
20478
+ getlocalBranchs(): any[];
20479
+ /**
20480
+ * @example:
20481
+ * this.vhDesignAutoWeb.vietqr_generateQR({})
20482
+ .then((rsp)=>{
20483
+ if(rsp.vcode === 0){
20484
+ console.log('dynamic_addDoc_fromDatabase', rsp.data);
20485
+ }
20486
+ }, error=>{
20487
+ console.log('error', error);
20488
+ })
20489
+ * @param colname
20490
+ * @param data
20491
+ * @return Promise => rsp ={vcode, msg, data(img_base64)} / error
20492
+ * @notice : hàm này chỉ get được dữ liệu sau khi khách hàng hoặc nhân viên đã đăng nhập, ở giao diện thiết kế dùng thư viện vhDesignAutoWeb
20493
+ * chưa thấy cần thiết kiểm tra bảo mật này nên chưa thêm dòng lệnh kiểm tra và trả về vcode=11
20494
+ * vcode == 0: success
20495
+ */
20496
+ vietqr_generateQR(data: any): Promise<unknown>;
20497
+ /**
20498
+ * @example:
20499
+ * this.vhDesignAutoWeb.admin_dynamic_addDoc('atw_pages',{name:name: 'Quảng cáo 1'})
20500
+ .then((rsp)=>{
20501
+ if(rsp.vcode === 0){
20502
+ console.log('admin_dynamic_addDoc', rsp.data);
20503
+ }
20504
+ }, error=>{
20505
+ console.log('error', error);
20506
+ })
20507
+ * @param colname
20508
+ * @param data
20509
+ * @return Promise => rsp ={vcode, msg, data(object)} / error
20510
+ * @notice : hàm này chỉ get được dữ liệu sau khi khách hàng hoặc nhân viên đã đăng nhập, ở giao diện thiết kế dùng thư viện vhDesignAutoWeb
20511
+ * chưa thấy cần thiết kiểm tra bảo mật này nên chưa thêm dòng lệnh kiểm tra và trả về vcode=11
20512
+ * vcode == 0: success
20513
+ * vcode == 11: 'not logged in'
20514
+ */
20515
+ admin_dynamic_addDoc(colname: string, data: object): Promise<unknown>;
20516
+ /**
20517
+ * @example:
20518
+ * this.vhDesignAutoWeb.admin_dynamic_updateDoc('categories', '5fb6780ca2148e09806c5b01', {name: 'Quảng cáo 1'})
20519
+ .then((rsp:any)=>{
20520
+ if(rsp.vcode === 0){
20521
+ console.log('admin_dynamic_updateDoc succeed');
20522
+ }
20523
+ }, error=>{
20524
+ reject(error)
20525
+ })
20526
+ * @param colname
20527
+ * @param id_doc
20528
+ * @param data
20529
+ * @return Promise => rsp ={vcode, msg, data(true or false)} / error
20530
+ * @notice : hàm này chỉ get được dữ liệu sau khi khách hàng hoặc nhân viên đã đăng nhập, ở giao diện thiết kế dùng thư viện vhDesignAutoWeb
20531
+ * chưa thấy cần thiết kiểm tra bảo mật này nên chưa thêm dòng lệnh kiểm tra và trả về vcode=11
20532
+ * vcode == 0: success
20533
+ * vcode == 11: 'not logged in'
20534
+ */
20535
+ admin_dynamic_updateDoc(colname: string, id_doc: string, value: object): Promise<unknown>;
20536
+ /**
20537
+ * @example:
20538
+ * this.vhDesignAutoWeb.admin_dynamic_deleteDoc('categories', '5fb67fda87c0f21d484cbdf3')
20539
+ .then((rsp:any)=>{
20540
+ if(rsp.vcode === 0){
20541
+ console.log('admin_dynamic_deleteDoc succeed');
20542
+ }
20543
+ }, error=>{
20544
+ reject(error)
20545
+ })
20546
+ * @param colname
20547
+ * @param id_doc
20548
+ * @return Promise => response.data ={vcode, msg, data(true or false)} / error
20549
+ * @notice : hàm này chỉ get được dữ liệu sau khi khách hàng hoặc nhân viên đã đăng nhập, ở giao diện thiết kế dùng thư viện vhDesignAutoWeb
20550
+ * chưa thấy cần thiết kiểm tra bảo mật này nên chưa thêm dòng lệnh kiểm tra và trả về vcode=11
20551
+ * vcode == 0: success
20552
+ * vcode == 11: 'not logged in'
20553
+ */
20554
+ admin_dynamic_deleteDoc(colname: string, id_doc: string): Promise<unknown>;
20555
+ /**
20556
+ * Hàm này lấy về dữ liệu động trong database (ko có sẳn trong service(RAM)) như: khách hàng, đơn hàng...
20557
+ * Dữ liệu này quan trọng nên nhân viên quản trị hoặc khách hàng phải đăng nhập mới get về được
20558
+ * @example
20559
+ * this.vhDesignAutoWeb.admin_dynamic_getDoc('atw_customers', '5fb67fda87c0f21d484cbdf3')
20560
+ .then((rsp)=>{
20561
+ if(rsp.vcode === 0){
20562
+ console.log('admin_dynamic_getDoc', rsp.data);
20563
+ }
20564
+ },(error:any)=>{
20565
+ console.log('error', error)
20566
+ })
20567
+ * @param colname
20568
+ * @param id_doc
20569
+ * @return Promise => response.data ={vcode, msg, data(object or null)} / error
20570
+ * @notice : hàm này chỉ get được dữ liệu sau khi khách hàng hoặc nhân viên đã đăng nhập, ở giao diện thiết kế dùng thư viện vhDesignAutoWeb
20571
+ * chưa thấy cần thiết kiểm tra bảo mật này nên chưa thêm dòng lệnh kiểm tra và trả về vcode=11
20572
+ * vcode == 0: success
20573
+ * vcode == 11: 'not logged in'
20574
+ */
20575
+ admin_dynamic_getDoc(colname: string, id_doc: string): Promise<unknown>;
19675
20576
  /**
19676
20577
  * @example:
19677
- * this.vhDesignAutoWeb.deployWebAppsource_toMongoHosting_byEmail('nlQaKuDIMi6M7XtwmNMk', 'domain05', 'devhosting@gmail.com', '***')
19678
- .then((response:any)=>{
19679
- console.log('response', response);
19680
- if(response.vcode === 0){
19681
- //-----------your code 0-----------
19682
- }else if(response.vcode === 1){
19683
- //-----------your code 1-----------
20578
+ * this.vhDesignAutoWeb.admin_dynamic_getDocs_byFields('webapp_abouts', {name:{$eq:'name abc'}}, {},{},0)
20579
+ .then(rsp=>{
20580
+ console.log('admin_dynamic_getDocs_byFields', rsp);
20581
+ if(rsp.vcode === 0){
20582
+ //-----------your code-----------
20583
+ let products = rsp.data;
19684
20584
  }
19685
- },(error:any)=>{
19686
- console.log('error', error)
19687
- })
19688
- * @param email
19689
- * @param password
19690
- * @param cloning_options = {source_webapp:none/renew/overwrite, template_webapp: none/renew/overwrite, database_webapp: none/renew/overwrite}
19691
- * @return Promise object => response = {vcode, msg}
19692
- * vcode == 0: Message sent to email address successfully
19693
- * vcode == 1: Email address does not exist
19694
- */
19695
- deployWebAppsource_toMongoHosting_byEmail(database: string, hosting: string, hosting_email: string, hosting_password: string, cloning_options: any): Promise<any>;
19696
- /**
19697
- * @example:
19698
- * this.vhDesignAutoWeb.deployWebAppsource_toMySqlHosting_byEmail('nlQaKuDIMi6M7XtwmNMk', 'domain05', 'devhosting@gmail.com', '***')
19699
- .then((response:any)=>{
19700
- console.log('response', response);
19701
- if(response.vcode === 0){
19702
- //-----------your code 0-----------
19703
- }else if(response.vcode === 1){
19704
- //-----------your code 1-----------
19705
- }
19706
- },(error:any)=>{
19707
- console.log('error', error)
19708
- })
19709
- * @param email
19710
- * @param password
19711
- * @param cloning_options = {source_webapp:none/renew/overwrite, template_webapp: none/renew/overwrite, database_webapp: none/renew/overwrite}
19712
- * @return Promise object => response = {vcode, msg}
19713
- * vcode == 0: Message sent to email address successfully
19714
- * vcode == 1: Email address does not exist
19715
- */
19716
- deployWebAppsource_toMySqlHosting_byEmail(database: string, hosting: string, hosting_email: string, hosting_password: string, cloning_options: any): Promise<any>;
19717
- deployWebAppsource_toPackage(database: string): Promise<any>;
19718
- /**
19719
- * @example:
19720
- * this.vhDesignAutoWeb.forgotPasswordEndUser_byEmail('salesf110@gmail.com','h674567')
19721
- .then(response=>{
19722
- console.log('response', response);
19723
- if(response.vcode === 0){
19724
- //-----------your code 0-----------
19725
- let user = response.data;
19726
- }else if(response.vcode === 1){
19727
- //-----------your code 1-----------
19728
- }
19729
- },(error:any)=>{
20585
+ },(error:any)=>{
19730
20586
  console.log('error', error)
19731
- })
19732
- * @param email
19733
- * @param password
19734
- * @return Promise object => response = {vcode, msg}
19735
- * vcode == 0: Message sent to email address successfully
19736
- * vcode == 1: Email address does not exist
19737
- */
19738
- forgotPasswordEndUser_byEmail(database: string, email: string, password: string): Promise<any>;
20587
+ })
20588
+ * @param colname
20589
+ * @param query
20590
+ * @param projection đang tìm hiểu, tạm thời để giá trị là {}
20591
+ * @param sort — null hoặc {}:không sắp xếp; {date:1}: sắp xếp theo ASC; {date:-1}: sắp xếp theo DESC
20592
+ * @param limit — null hoặc 0: không giới hạn record get về; 2: get về 2 record
20593
+ * @return Promise => response.data ={vcode, msg, data(array(object) = [{},{},..])} / error
20594
+ * @notice : hàm này chỉ get được dữ liệu sau khi khách hàng hoặc nhân viên đã đăng nhập, giao diện thiết kế dùng thư viện vhDesignAutoWeb
20595
+ * chưa thấy cần thiết kiểm tra bảo mật này nên chưa thêm dòng lệnh kiểm tra và trả về vcode=11
20596
+ * vcode == 0: success
20597
+ * vcode == 11: 'not logged in'
20598
+ */
20599
+ admin_dynamic_getDocs_byFields(colname: string, query: any, projection?: object, sort?: any, limit?: number): Promise<unknown>;
19739
20600
  /**
19740
20601
  * @example:
19741
- * this.vhDesignAutoWeb.changePasswordEndUser_byEmail('salesf110@gmail.com','h674567', 'V12345678')
19742
- .then(response=>{
20602
+ * this.vhDesignAutoWeb.admin_dynamic_getDocs_byFields_byPages('webapp_abouts', {name:{$eq:'name abc'}}, {},{},6,1)
20603
+ .then(response=>{
19743
20604
  console.log('response', response);
19744
20605
  if(response.vcode === 0){
19745
- //-----------your code 0-----------
19746
- let user = response.data;
19747
- }else if(response.vcode === 1){
19748
- //-----------your code 1-----------
19749
- }else if(response.vcode === 2){
19750
- //-----------your code 2-----------
19751
- }else if(response.vcode === 3){
19752
- //-----------your code 3-----------
20606
+ //-----------your code-----------
20607
+ let products = response.data;
19753
20608
  }
19754
20609
  },(error:any)=>{
19755
- console.log('error', error)
19756
- })
19757
- * @param email
19758
- * @param oldpassword
19759
- * @param newpassword
19760
- * @return Promise object => response = {vcode, msg}
19761
- * vcode == 0: Message sent to email address successfully
19762
- * vcode == 1: Email address does not exist
19763
- * vcode == 2: wrong oldpassword
19764
- * vcode == 3: please reset your password
19765
- */
19766
- changePasswordEndUser_byEmail(database: string, email: string, oldpassword: string, newpassword: string): Promise<any>;
19767
- /**
19768
- * @example:
19769
- * this.vhDesignAutoWeb.signupEndUser_byEmail('salesf110@gmail.com','h674567',{})
19770
- .then(rsp=>{
19771
- console.log('signupEndUser_byEmail', rsp);
19772
- if(rsp.vcode === 0){
19773
- //-----------your code 1-----------
19774
- let enduser = rsp.data;
19775
- }else if(rsp.vcode === 1){
19776
- //-----------your code 2-----------
19777
- }
19778
- },(error:any)=>{
19779
- console.log('error', error)
19780
- })
19781
- * @param email
19782
- * @param password
19783
- * @param info : thông tin của enduser
19784
- * @return Promise object => rsp = {vcode, msg, data}
19785
- * vcode == 0: User account registered successful
19786
- * vcode == 1: User Email already exists
19787
- * @notice : sau khi đăng ký thành công, người dùng phải vào email xác nhận xác nhận việc đăng ký này
19788
- */
19789
- signupEndUser_byEmail(database: string, email: string, password: string, info: object): Promise<any>;
19790
- /**
19791
- * @example:
19792
- * this.vhDesignAutoWeb.signinEndUser_byEmail('salesf110@gmail.com','h674567')
19793
- .then(response=>{
19794
- console.log('response', response);
19795
- if(response.vcode === 0){
19796
- //-----------your code 0-----------
19797
- let user = response.data;
19798
- }else if(response.vcode === 1){
19799
- //-----------your code 1-----------
19800
- }else if(response.vcode === 2){
19801
- //-----------your code 2-----------
19802
- }else if(response.vcode === 3){
19803
- //-----------your code 3-----------
19804
- }else if(response.vcode === 4){
19805
- //-----------your code 4-----------
19806
- }
19807
- },(error:any)=>{
19808
20610
  console.log('error', error)
19809
- })
19810
- * @param email
19811
- * @param password
19812
- * @return Promise object => response = {vcode, msg, data}
19813
- * vcode == 0: Signed in successfully
19814
- * vcode == 1: Wrong email
19815
- * vcode == 2: Please login into your email to confirm your account on my website or APP
19816
- * vcode == 3: Please reset your password
19817
- * vcode == 4: Wrong password
19818
- */
19819
- signinEndUser_byEmail(database: string, email: string, password: string): Promise<any>;
20611
+ })
20612
+ * @param colname
20613
+ * @param query
20614
+ * @param projection đang tìm hiểu, tạm thời để giá trị là {}
20615
+ * @param sort — null hoặc {}:không sắp xếp; {date:1}: sắp xếp theo ASC; {date:-1}: sắp xếp theo DESC
20616
+ * @param limit — null hoặc 0: không giới hạn record get về; 2: get về 2 record
20617
+ * @param page null hoặc 0 hoặc 1: get về trang đầu tiên; 2: get về trang thứ 2
20618
+ * @return Promise object => response = {vcode, msg, data(array), limit, page, totalpages}
20619
+ * vcode == 0: success
20620
+ * vcode == 11: 'not logged in'
20621
+ */
20622
+ admin_dynamic_getDocs_byFields_byPages(colname: string, query: any, projection?: object, sort?: any, limit?: number, page?: number): Promise<unknown>;
19820
20623
  /**
19821
- * @example:
19822
- * this.vhDesignAutoWeb.onAuthStateChangedEndUser()
19823
- .then(response=>{
19824
- console.log('response', response);
19825
- if(response.vcode === 0){
19826
- //-----------your code 0-----------
19827
- let user = response.data;
19828
- }else if(response.vcode === 1){
19829
- //-----------your code 1-----------
19830
- }else if(response.vcode === 2){
19831
- //-----------your code 2-----------
19832
- }else if(response.vcode === 3){
19833
- //-----------your code 3-----------
19834
- }else if(response.vcode === 4){
19835
- //-----------your code 4-----------
20624
+ * @example:
20625
+ * this.vhDesignAutoWeb.enduser_dynamic_addDoc('atw_pages',{name:name: 'Quảng cáo 1'})
20626
+ .then((rsp)=>{
20627
+ if(rsp.vcode === 0){
20628
+ console.log('enduser_dynamic_addDoc', rsp.data);
19836
20629
  }
19837
- },(error:any)=>{
19838
- console.log('error', error)
20630
+ }, error=>{
20631
+ console.log('error', error);
19839
20632
  })
19840
- * @return Promise object => response = {vcode, msg}
19841
- * vcode == 0: Signed in successfully
19842
- * vcode == 1: wrong access_token->email
19843
- * vcode == 2: wrong access_token->password
19844
- * vcode == 3: Please login into your email to confirm your account on my website or APP
19845
- * vcode == 4: Please reset your password
20633
+ * @param colname
20634
+ * @param data
20635
+ * @return Promise => rsp ={vcode, msg, data(object)} / error
20636
+ * @notice : hàm này chỉ get được dữ liệu sau khi khách hàng hoặc nhân viên đã đăng nhập, ở giao diện thiết kế dùng thư viện vhDesignAutoWeb
20637
+ * chưa thấy cần thiết kiểm tra bảo mật này nên chưa thêm dòng lệnh kiểm tra và trả về vcode=11
20638
+ * vcode == 0: success
20639
+ * vcode == 11: 'not logged in'
19846
20640
  */
19847
- onAuthStateChangedEndUser(database: string): Promise<any>;
19848
- getHostings_byEndUser(database: string): Promise<any>;
19849
- /**
19850
- * vhDesignAutoWeb
19851
- * @param hosting
19852
- * @returns
19853
- */
19854
- createHosting_byEndUser(hosting: string): Promise<any>;
19855
- removeHosting_byEndUser(hosting: string): Promise<any>;
20641
+ enduser_dynamic_addDoc(colname: string, data: object): Promise<unknown>;
19856
20642
  /**
19857
- * @example
19858
- * this.vhDesignAutoWeb.signoutEndUser();
19859
- * @return void
19860
- */
19861
- signoutEndUser(database: string): void;
20643
+ * @example:
20644
+ * this.vhDesignAutoWeb.enduser_dynamic_updateDoc('categories', '5fb6780ca2148e09806c5b01', {name: 'Quảng cáo 1'})
20645
+ .then((rsp:any)=>{
20646
+ if(rsp.vcode === 0){
20647
+ console.log('enduser_dynamic_updateDoc succeed');
20648
+ }
20649
+ }, error=>{
20650
+ reject(error)
20651
+ })
20652
+ * @param colname
20653
+ * @param id_doc
20654
+ * @param data
20655
+ * @return Promise => rsp ={vcode, msg, data(true or false)} / error
20656
+ * @notice : hàm này chỉ get được dữ liệu sau khi khách hàng hoặc nhân viên đã đăng nhập, ở giao diện thiết kế dùng thư viện vhDesignAutoWeb
20657
+ * chưa thấy cần thiết kiểm tra bảo mật này nên chưa thêm dòng lệnh kiểm tra và trả về vcode=11
20658
+ * vcode == 0: success
20659
+ * vcode == 11: 'not logged in'
20660
+ */
20661
+ enduser_dynamic_updateDoc(colname: string, id_doc: string, value: object): Promise<unknown>;
19862
20662
  /**
19863
- * @example
19864
- * let bool = this.vhDesignAutoWeb.checkSigninEndUser();
19865
- * @return Boolean => true or false
20663
+ * @example:
20664
+ * this.vhDesignAutoWeb.enduser_dynamic_deleteDoc('categories', '5fb67fda87c0f21d484cbdf3')
20665
+ .then((rsp:any)=>{
20666
+ if(rsp.vcode === 0){
20667
+ console.log('enduser_dynamic_deleteDoc succeed');
20668
+ }
20669
+ }, error=>{
20670
+ reject(error)
20671
+ })
20672
+ * @param colname
20673
+ * @param id_doc
20674
+ * @return Promise => response.data ={vcode, msg, data(true or false)} / error
20675
+ * @notice : hàm này chỉ get được dữ liệu sau khi khách hàng hoặc nhân viên đã đăng nhập, ở giao diện thiết kế dùng thư viện vhDesignAutoWeb
20676
+ * chưa thấy cần thiết kiểm tra bảo mật này nên chưa thêm dòng lệnh kiểm tra và trả về vcode=11
20677
+ * vcode == 0: success
20678
+ * vcode == 11: 'not logged in'
19866
20679
  */
19867
- checkSigninEndUser(): any;
20680
+ enduser_dynamic_deleteDoc(colname: string, id_doc: string): Promise<unknown>;
19868
20681
  /**
19869
- * @example:
19870
- * let enduser = this.vhDesignAutoWeb.getlocalEndUser();
19871
- * @return object => obj = {}
20682
+ * Hàm này lấy về dữ liệu động trong database (ko có sẳn trong service(RAM)) như: khách hàng, đơn hàng...
20683
+ * Dữ liệu này quan trọng nên nhân viên quản trị hoặc khách hàng phải đăng nhập mới get về được
20684
+ * @example
20685
+ * this.vhDesignAutoWeb.enduser_dynamic_getDoc('atw_customers', '5fb67fda87c0f21d484cbdf3')
20686
+ .then((rsp)=>{
20687
+ if(rsp.vcode === 0){
20688
+ console.log('enduser_dynamic_getDoc', rsp.data);
20689
+ }
20690
+ },(error:any)=>{
20691
+ console.log('error', error)
20692
+ })
20693
+ * @param colname
20694
+ * @param id_doc
20695
+ * @return Promise => response.data ={vcode, msg, data(object or null)} / error
20696
+ * @notice : hàm này chỉ get được dữ liệu sau khi khách hàng hoặc nhân viên đã đăng nhập, ở giao diện thiết kế dùng thư viện vhDesignAutoWeb
20697
+ * chưa thấy cần thiết kiểm tra bảo mật này nên chưa thêm dòng lệnh kiểm tra và trả về vcode=11
20698
+ * vcode == 0: success
20699
+ * vcode == 11: 'not logged in'
19872
20700
  */
19873
- getlocalEndUser(): any;
20701
+ enduser_dynamic_getDoc(colname: string, id_doc: string): Promise<unknown>;
19874
20702
  /**
19875
- * Hàm này cập nhật thông tin người dùng webapp (người dùng đã nhập vào webapp mới cập nhật được)
19876
- * @example:
19877
- * this.vhDesignAutoWeb.updateEndUser('5fb6780ca2148e09806c5b01', {name:'Nguyễn Văn A'})
20703
+ * @example:
20704
+ * this.vhDesignAutoWeb.enduser_dynamic_getDocs_byFields('webapp_abouts', {name:{$eq:'name abc'}}, {},{},0)
19878
20705
  .then(rsp=>{
19879
- console.log('updateEndUser', rsp);
20706
+ console.log('enduser_dynamic_getDocs_byFields', rsp);
19880
20707
  if(rsp.vcode === 0){
19881
20708
  //-----------your code-----------
20709
+ let products = rsp.data;
19882
20710
  }
19883
20711
  },(error:any)=>{
19884
20712
  console.log('error', error)
19885
20713
  })
19886
- * @param value : object
19887
- * @return Promise => rsp ={vcode, msg, data(undefined)} / error
19888
- * @notice : hàm này chỉ get được dữ liệu sau khi khách hàng hoặc nhân viên đã đăng nhập, giao diện thiết kế dùng thư viện vhDesignAutoWeb
19889
- * chưa thấy cần thiết kiểm tra bảo mật này nên chưa thêm dòng lệnh kiểm tra trả về vcode=11
19890
- * vcode == 0: success
19891
- * vcode == 2: wrong projectname
19892
- */
19893
- updateEndUser(database: string, value: object): Promise<unknown>;
19894
- /**
19895
- * Hàm này xóa email người dùng webapp (người dùng đã nhập vào webapp mới xóa được)
19896
- * @example:
19897
- * this.vhDesignAutoWeb.deleteEndUser()
19898
- .then(response=>{
19899
- console.log('response', response);
19900
- if(response.vcode === 0){
19901
- //-----------your code-----------
19902
- //thoat ra trang chưa đăng nhập
19903
- }
19904
- },(error:any)=>{
19905
- console.log('error', error)
19906
- })
19907
- * @return Promise object => response = {vcode, msg}
19908
- * vcode == 0: Deleted successfully
20714
+ * @param colname
20715
+ * @param query
20716
+ * @param projection đang tìm hiểu, tạm thời để giá trị {}
20717
+ * @param sort null hoặc {}:không sắp xếp; {date:1}: sắp xếp theo ASC; {date:-1}: sắp xếp theo DESC
20718
+ * @param limit — null hoặc 0: không giới hạn record get về; 2: get về 2 record
20719
+ * @return Promise => response.data ={vcode, msg, data(array(object) = [{},{},..])} / error
20720
+ * @notice : hàm này chỉ get được dữ liệu sau khi khách hàng hoặc nhân viên đã đăng nhập, ở giao diện thiết kế dùng thư viện vhDesignAutoWeb
20721
+ * chưa thấy cần thiết kiểm tra bảo mật này nên chưa thêm dòng lệnh kiểm tra và trả về vcode=11
20722
+ * vcode == 0: success
20723
+ * vcode == 11: 'not logged in'
19909
20724
  */
19910
- deleteEndUser(database: string): Promise<unknown>;
20725
+ enduser_dynamic_getDocs_byFields(colname: string, query: any, projection?: object, sort?: any, limit?: number): Promise<unknown>;
19911
20726
  /**
19912
- * Hàm này người thiết kế ở (vhuserweb) tạo tài khoản cho khách hàng của họ ở (vhdevweb)
19913
- * @example:
19914
- * this.vhDesignAutoWeb.signUpWebAppOwner('huyleduc92', '123456', '+84909925359',{})
19915
- .then((owner)=>{
19916
- console.log('signUpWebAppOwner', owner);
20727
+ * @example:
20728
+ * this.vhDesignAutoWeb.enduser_dynamic_getDocs_byFields_byPages('webapp_abouts', {name:{$eq:'name abc'}}, {},{},6,1)
20729
+ .then(response=>{
20730
+ console.log('response', response);
20731
+ if(response.vcode === 0){
20732
+ //-----------your code-----------
20733
+ let products = response.data;
20734
+ }
19917
20735
  },(error:any)=>{
19918
- console.log('error', error);
20736
+ console.log('error', error)
19919
20737
  })
19920
- * @param email
19921
- * @param password
19922
- * @param phoneNumber
19923
- * @param info
19924
- * @return Promise => owner={}
19925
- */
19926
- signUpWebAppOwner(email: string, password: string, phoneNumber: any, info: any): Promise<unknown>;
19927
- detailPage: any;
19928
- detailPage_byScroll: any;
19929
- detailFreeBlock: any;
19930
- /**
19931
- * vhDesignAutoWeb
19932
- * @param _this
19933
- * @param scrollTop
19934
- */
19935
- displayBocksOfPage_byScroll(_this: any, scrollTop: number): void;
19936
- /**
19937
- * vhDesignAutoWeb
19938
- * @param _this
19939
- * @param scrollTop
19940
- * @param refresh
19941
- */
19942
- displayBocksOfPage_byScroll_toEnd(_this: any, scrollTop: number, refresh: boolean): void;
19943
- /**
19944
- * vhDesignAutoWeb
19945
- * @param id_page
19946
- * @returns
19947
- */
19948
- getDetailPage(id_page: any): Promise<unknown>;
19949
- getDetailFreeBlocks(): Promise<unknown>;
19950
- /**
19951
- * vhDesignAutoWeb
19952
- * @param id_block
19953
- * @returns
19954
- */
19955
- getDetailFreeBlock(id_block: any): Promise<unknown>;
19956
- /**
19957
- * vhDesignAutoWeb
19958
- * @param id_block
19959
- * @returns
19960
- */
19961
- getDetailBlock(id_block: any): Promise<unknown>;
19962
- /**
19963
- * vhDesignAutoWeb
19964
- * @param block
19965
- * @returns
19966
- */
19967
- getDetailBlock_byBlock(block: any): Promise<unknown>;
19968
- getDetailObject(id_object: any): Promise<unknown>;
19969
- /**
19970
- * Hàm này trả về 1 object (có đủ thông tin object), trong mỗi object có trường objects (có đủ thông tin từng object)
19971
- * @example
19972
- * this.vhDesignAutoWeb.getDetailObject_byObject('00Tm41GNYN0aYbAtuncH')
19973
- .then((object)=>{
19974
- console.log('getDetailObject', object);
19975
- }, error=>{
19976
- console.log('error', error);
19977
- })
19978
- * @param id_object
19979
- * @return Promise => page = {}
19980
- */
19981
- getDetailObject_byObject(object: any): Promise<unknown>;
19982
- /**
19983
- * vhDesignAutoWeb
19984
- */
19985
- startSocketDatabase(): void;
19986
- private checkModifiedType;
19987
- private addBlockOrObject_fromDetailPage;
19988
- /**
19989
- * Thên Block hoặc Object nhân bản vào detailpage
19990
- */
19991
- private addCloneBlockOrObject_fromDetailPage;
19992
- private deleteCloneBlockOrObject_fromDetailPage;
19993
- private updateBlockOrObject_fromDetailPage;
19994
- private deleteBlockOrObject_fromDetailPage;
19995
- stopSocketDatabase(): void;
19996
- /**
19997
- * @example SET:
19998
- * this.vhDesignAutoWeb.localStorageSET('local_name', {a=1, b='hai'});
19999
- * this.vhDesignAutoWeb.localStorageSET('local_name', 15000);
20000
- * this.vhDesignAutoWeb.localStorageSET('local_name', 'muoi lam nghin dong');
20001
- * this.vhDesignAutoWeb.localStorageSET('local_name', null);
20002
- * @returns
20003
- */
20004
- localStorageSET(name: string, value: any): void;
20005
- /**
20006
- * @example GET:
20007
- * let object = this.vhDesignAutoWeb.localStorageGET('local_name');
20008
- * @returns
20009
- */
20010
- localStorageGET(name: string): any;
20011
- /**
20012
- * @example:
20013
- * this.vhDesignAutoWeb.createIndexes('atw_products', {name_textsearch:'text'})
20014
- .then((obj:any)=>{
20015
- console.log('createIndexes', obj);
20016
- }, error=>{
20017
- reject(error)
20018
- })
20019
20738
  * @param colname
20020
- * @param index
20021
- * @return null or object
20739
+ * @param query
20740
+ * @param projection đang tìm hiểu, tạm thời để giá trị là {}
20741
+ * @param sort — null hoặc {}:không sắp xếp; {date:1}: sắp xếp theo ASC; {date:-1}: sắp xếp theo DESC
20742
+ * @param limit — null hoặc 0: không giới hạn record get về; 2: get về 2 record
20743
+ * @param page — null hoặc 0 hoặc 1: get về trang đầu tiên; 2: get về trang thứ 2
20744
+ * @return Promise object => response = {vcode, msg, data(array), limit, page, totalpages}
20745
+ * vcode == 0: success
20746
+ * vcode == 11: 'not logged in'
20022
20747
  */
20023
- createIndexes(colname: string, index: any): Promise<unknown>;
20748
+ enduser_dynamic_getDocs_byFields_byPages(colname: string, query: any, projection?: object, sort?: any, limit?: number, page?: number): Promise<unknown>;
20024
20749
  /**
20025
- * @example:
20026
- * this.vhDesignAutoWeb.addBranch({name:'Chi nhánh 2'})
20027
- .then((rsp:any)=>{
20750
+ * Hàm này lấy về dữ liệu động trong database (ko có sẳn trong service(RAM)) như: khách hàng, đơn hàng...
20751
+ * Dữ liệu này quan trọng nên nhân viên quản trị hoặc khách hàng phải đăng nhập mới get về được
20752
+ * @example
20753
+ * this.vhDesignAutoWeb.free_dynamic_getDoc('atw_customers', '5fb67fda87c0f21d484cbdf3')
20754
+ .then((rsp)=>{
20028
20755
  if(rsp.vcode === 0){
20029
- let branch = rsp.data;
20756
+ console.log('free_dynamic_getDoc', rsp.data);
20030
20757
  }
20031
- }, error=>{
20032
- reject(error)
20758
+ },(error:any)=>{
20759
+ console.log('error', error)
20033
20760
  })
20034
- * @param data
20035
- * @return Promise => rsp ={vcode, msg, data(object)} / error
20036
- * @notice : hàm này chỉ add được dữ liệu sau khi khách hàng hoặc nhân viên đã đăng nhập
20761
+ * @param colname
20762
+ * @param id_doc
20763
+ * @return Promise => response.data ={vcode, msg, data(object or null)} / error
20764
+ * @notice : hàm này khách hàng (enduser) hoặc nhân viên (admin) ko đăng nhập vẫn get dữ liệu về đc, dùng hàm lấy dữ liệu về cho người duyệt website xem
20037
20765
  * vcode == 0: success
20038
- * vcode == 11: 'not logged in'
20039
20766
  */
20040
- addBranch(data: any): Promise<unknown>;
20041
- /**
20042
- * @example
20043
- * this.vhDesignAutoWeb.getbranchs()
20044
- .then((branchs)=>{
20045
- console.log('getbranchs', branchs);
20046
- })
20047
- * @return Promise => array(object) = [{},{},..]
20048
- */
20049
- getbranchs(): Promise<unknown>;
20767
+ free_dynamic_getDoc(colname: string, id_doc: string): Promise<unknown>;
20050
20768
  /**
20051
20769
  * @example:
20052
- * let branch = this.vhDesignAutoWeb.getlocalBranch('5fb6780ca2148e09806c5b01');
20053
- * @param id_branch
20054
- * @return Object => obj = {} or null
20055
- */
20056
- getlocalBranch(id_branch: any): any;
20770
+ * this.vhDesignAutoWeb.free_dynamic_getDocs_byFields('webapp_abouts', {name:{$eq:'name abc'}}, {},{},0)
20771
+ .then(rsp=>{
20772
+ console.log('free_dynamic_getDocs_byFields', rsp);
20773
+ if(rsp.vcode === 0){
20774
+ //-----------your code-----------
20775
+ let products = rsp.data;
20776
+ }
20777
+ },(error:any)=>{
20778
+ console.log('error', error)
20779
+ })
20780
+ * @param colname
20781
+ * @param query
20782
+ * @param projection — đang tìm hiểu, tạm thời để giá trị là {}
20783
+ * @param sort — null hoặc {}:không sắp xếp; {date:1}: sắp xếp theo ASC; {date:-1}: sắp xếp theo DESC
20784
+ * @param limit — null hoặc 0: không giới hạn record get về; 2: get về 2 record
20785
+ * @return Promise => response.data ={vcode, msg, data(array(object) = [{},{},..])} / error
20786
+ * @notice : hàm này khách hàng (enduser) hoặc nhân viên (admin) ko đăng nhập vẫn get dữ liệu về đc, dùng hàm lấy dữ liệu về cho người duyệt website xem
20787
+ * vcode == 0: success
20788
+ */
20789
+ free_dynamic_getDocs_byFields(colname: string, query: any, projection?: object, sort?: any, limit?: number): Promise<unknown>;
20057
20790
  /**
20058
20791
  * @example:
20059
- * let branchs = this.vhDesignAutoWeb.getlocalBranchs();
20060
- * @return Array(object) => array = [{},{},...]
20061
- */
20062
- getlocalBranchs(): any[];
20063
- /**
20064
- * @example:
20065
- * this.vhDesignAutoWeb.vietqr_generateQR({})
20066
- .then((rsp)=>{
20067
- if(rsp.vcode === 0){
20068
- console.log('dynamic_addDoc_fromDatabase', rsp.data);
20069
- }
20070
- }, error=>{
20071
- console.log('error', error);
20072
- })
20792
+ * this.vhDesignAutoWeb.free_dynamic_getDocs_byFields_byPages('webapp_abouts', {name:{$eq:'name abc'}}, {},{},6,1)
20793
+ .then(response=>{
20794
+ console.log('response', response);
20795
+ if(response.vcode === 0){
20796
+ //-----------your code-----------
20797
+ let products = response.data;
20798
+ }
20799
+ },(error:any)=>{
20800
+ console.log('error', error)
20801
+ })
20073
20802
  * @param colname
20074
- * @param data
20075
- * @return Promise => rsp ={vcode, msg, data(img_base64)} / error
20076
- * @notice : hàm này chỉ get được dữ liệu sau khi khách hàng hoặc nhân viên đã đăng nhập, giao diện thiết kế dùng thư viện vhDesignAutoWeb
20077
- * chưa thấy cần thiết kiểm tra bảo mật này nên chưa thêm dòng lệnh kiểm tra và trả về vcode=11
20803
+ * @param query
20804
+ * @param projection đang tìm hiểu, tạm thời để giá trị là {}
20805
+ * @param sort null hoặc {}:không sắp xếp; {date:1}: sắp xếp theo ASC; {date:-1}: sắp xếp theo DESC
20806
+ * @param limit null hoặc 0: không giới hạn record get về; 2: get về 2 record
20807
+ * @param page — null hoặc 0 hoặc 1: get về trang đầu tiên; 2: get về trang thứ 2
20808
+ * @notice : hàm này khách hàng (enduser) hoặc nhân viên (admin) ko đăng nhập vẫn get dữ liệu về đc, dùng hàm lấy dữ liệu về cho người duyệt website xem
20809
+ * @return Promise object => response = {vcode, msg, data(array), limit, page, totalpages}
20078
20810
  * vcode == 0: success
20079
20811
  */
20080
- vietqr_generateQR(data: any): Promise<unknown>;
20812
+ free_dynamic_getDocs_byFields_byPages(colname: string, query: any, projection?: object, sort?: any, limit?: number, page?: number): Promise<unknown>;
20081
20813
  /**
20082
20814
  * @example:
20083
20815
  * this.vhDesignAutoWeb.dynamic_addDoc_fromDatabase('atw_pages',{name:name: 'Quảng cáo 1'})