w-web-api 1.0.42 → 1.0.43
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/db/wapis/apis/data.mdb +0 -0
- package/db/wapis/apis/lock.mdb +0 -0
- package/dist/w-web-api.umd.js +2 -2
- package/dist/w-web-api.umd.js.map +1 -1
- package/docs/WWebApi.html +2 -2
- package/docs/WWebApi.mjs.html +237 -156
- package/docs/index.html +1 -1
- package/g.provideApis.mjs +51 -0
- package/package.json +1 -1
- package/server/WWebApi.mjs +236 -155
- package/server/provideTabs.mjs +89 -0
- package/tableTags.json +1 -1
- package/server/provideApis.mjs +0 -74
package/server/WWebApi.mjs
CHANGED
|
@@ -2,6 +2,7 @@ import path from 'path'
|
|
|
2
2
|
import fs from 'fs'
|
|
3
3
|
import get from 'lodash-es/get.js'
|
|
4
4
|
import each from 'lodash-es/each.js'
|
|
5
|
+
import map from 'lodash-es/map.js'
|
|
5
6
|
import keys from 'lodash-es/keys.js'
|
|
6
7
|
import j2o from 'wsemi/src/j2o.mjs'
|
|
7
8
|
import iseobj from 'wsemi/src/iseobj.mjs'
|
|
@@ -18,6 +19,7 @@ import strright from 'wsemi/src/strright.mjs'
|
|
|
18
19
|
import strdelright from 'wsemi/src/strdelright.mjs'
|
|
19
20
|
import pm2resolve from 'wsemi/src/pm2resolve.mjs'
|
|
20
21
|
import b642str from 'wsemi/src/b642str.mjs'
|
|
22
|
+
import ltdtmapping from 'wsemi/src/ltdtmapping.mjs'
|
|
21
23
|
import fsIsFolder from 'wsemi/src/fsIsFolder.mjs'
|
|
22
24
|
import fsIsFile from 'wsemi/src/fsIsFile.mjs'
|
|
23
25
|
import replace from 'wsemi/src/replace.mjs'
|
|
@@ -378,129 +380,138 @@ function WWebApi(WOrm, url, db, getUserByToken, verifyClientUser, verifyAppUser,
|
|
|
378
380
|
}
|
|
379
381
|
|
|
380
382
|
|
|
381
|
-
//getAPIsList
|
|
382
|
-
let getAPIsList = async (query = {}) => {
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
}
|
|
383
|
+
// //getAPIsList
|
|
384
|
+
// let getAPIsList = async (query = {}) => {
|
|
385
|
+
// let rs = await woItems.apis.select(query)
|
|
386
|
+
// return rs
|
|
387
|
+
// }
|
|
386
388
|
|
|
387
389
|
|
|
388
390
|
//parsePayload
|
|
389
391
|
let parsePayload = async (req) => {
|
|
390
392
|
|
|
391
|
-
//
|
|
392
|
-
let
|
|
393
|
+
//payload
|
|
394
|
+
let payload = get(req, 'payload')
|
|
393
395
|
|
|
394
396
|
//to obj
|
|
395
|
-
if (isestr(
|
|
396
|
-
|
|
397
|
+
if (isestr(payload)) {
|
|
398
|
+
payload = j2o(payload)
|
|
397
399
|
}
|
|
398
400
|
|
|
399
401
|
//check
|
|
400
|
-
if (!iseobj(
|
|
401
|
-
console.log('
|
|
402
|
-
console.log(`invalid
|
|
403
|
-
return Promise.reject(`invalid
|
|
402
|
+
if (!iseobj(payload)) {
|
|
403
|
+
console.log('payload', payload)
|
|
404
|
+
console.log(`invalid payload in req`)
|
|
405
|
+
return Promise.reject(`invalid payload in req`)
|
|
404
406
|
}
|
|
405
407
|
|
|
406
408
|
//group
|
|
407
|
-
let group = get(
|
|
409
|
+
let group = get(payload, 'group', '')
|
|
408
410
|
|
|
409
411
|
//check
|
|
410
412
|
if (!isestr(group)) {
|
|
411
|
-
console.log('
|
|
412
|
-
console.log(
|
|
413
|
-
|
|
414
|
-
return Promise.reject(`invalid group from inp`)
|
|
413
|
+
console.log('payload', payload)
|
|
414
|
+
console.log(`invalid group in payload`)
|
|
415
|
+
return Promise.reject(`invalid group in payload`)
|
|
415
416
|
}
|
|
416
417
|
|
|
417
|
-
//
|
|
418
|
-
let
|
|
418
|
+
//rows
|
|
419
|
+
let rows = get(payload, 'rows', [])
|
|
419
420
|
|
|
420
421
|
//check
|
|
421
|
-
if (!isearr(
|
|
422
|
-
console.log('
|
|
423
|
-
console.log(
|
|
424
|
-
|
|
425
|
-
return Promise.reject(`invalid apis from inp`)
|
|
422
|
+
if (!isearr(rows)) {
|
|
423
|
+
console.log('payload', payload)
|
|
424
|
+
console.log(`invalid rows in payload`)
|
|
425
|
+
return Promise.reject(`invalid rows in payload`)
|
|
426
426
|
}
|
|
427
427
|
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
if (isestr(v)) {
|
|
434
|
-
if (strleft(v, 7) === 'base64:') {
|
|
435
|
-
// console.log(k, 'get base64')
|
|
436
|
-
v = strdelleft(v, 7)
|
|
437
|
-
v = b642str(v)
|
|
438
|
-
// console.log(v)
|
|
439
|
-
apis[kapi][k] = v
|
|
440
|
-
}
|
|
441
|
-
}
|
|
442
|
-
})
|
|
443
|
-
})
|
|
444
|
-
|
|
445
|
-
//save group
|
|
446
|
-
each(apis, (api, kapi) => {
|
|
447
|
-
apis[kapi].group = group
|
|
448
|
-
})
|
|
449
|
-
|
|
450
|
-
//resave
|
|
451
|
-
inp = { group, apis }
|
|
428
|
+
//r
|
|
429
|
+
let r = {
|
|
430
|
+
group,
|
|
431
|
+
rows,
|
|
432
|
+
}
|
|
452
433
|
|
|
453
|
-
return
|
|
434
|
+
return r
|
|
454
435
|
}
|
|
455
436
|
|
|
456
437
|
|
|
457
|
-
//updateAPIs
|
|
458
|
-
let updateAPIs = async (
|
|
438
|
+
// //updateAPIs
|
|
439
|
+
// let updateAPIs = async (inp = {}) => {
|
|
459
440
|
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
441
|
+
// //spread inp
|
|
442
|
+
// let { apis: rsApis } = inp
|
|
443
|
+
// // console.log('group', group)
|
|
444
|
+
// // console.log('rsApis', rsApis)
|
|
464
445
|
|
|
465
|
-
|
|
466
|
-
|
|
446
|
+
// //save
|
|
447
|
+
// let r = await woItems.apis.save(rsApis)
|
|
467
448
|
|
|
468
|
-
|
|
469
|
-
}
|
|
449
|
+
// return r
|
|
450
|
+
// }
|
|
470
451
|
|
|
471
452
|
|
|
472
|
-
//
|
|
473
|
-
let
|
|
453
|
+
//syncAndReplaceTabs
|
|
454
|
+
let syncAndReplaceTabs = async (userId, inp, keyTable) => {
|
|
474
455
|
|
|
475
456
|
//group
|
|
476
|
-
let group = get(
|
|
457
|
+
let group = get(inp, 'group', '')
|
|
477
458
|
// console.log('group', group)
|
|
478
459
|
|
|
479
460
|
//check
|
|
480
461
|
if (!isestr(group)) {
|
|
481
|
-
console.log('
|
|
462
|
+
console.log('inp', inp)
|
|
482
463
|
console.log('group', group)
|
|
483
464
|
console.log(`invalid group`)
|
|
484
465
|
return Promise.reject(`invalid group`)
|
|
485
466
|
}
|
|
486
467
|
|
|
487
|
-
//
|
|
488
|
-
let
|
|
489
|
-
// console.log('
|
|
468
|
+
//rows
|
|
469
|
+
let rows = get(inp, 'rows', [])
|
|
470
|
+
// console.log('rows', rows)
|
|
490
471
|
|
|
491
472
|
//check
|
|
492
|
-
if (!isearr(
|
|
493
|
-
console.log('
|
|
494
|
-
console.log('
|
|
495
|
-
|
|
496
|
-
|
|
473
|
+
if (!isearr(rows)) {
|
|
474
|
+
console.log('inp', inp)
|
|
475
|
+
console.log('keyTable', keyTable)
|
|
476
|
+
return Promise.reject(`invalid rows`)
|
|
477
|
+
}
|
|
478
|
+
|
|
479
|
+
//save from
|
|
480
|
+
rows = map(rows, (v, k) => {
|
|
481
|
+
// v.order = k + 1 //order大部分由外部給予, 不能複寫
|
|
482
|
+
v.group = group
|
|
483
|
+
return v
|
|
484
|
+
})
|
|
485
|
+
|
|
486
|
+
//偵測b64自動恢復
|
|
487
|
+
if (keyTable === 'apis') {
|
|
488
|
+
each(rows, (row, krow) => {
|
|
489
|
+
// console.log(kapi, row.name)
|
|
490
|
+
each(row, (v, k) => {
|
|
491
|
+
// console.log(k, v)
|
|
492
|
+
if (isestr(v)) {
|
|
493
|
+
if (strleft(v, 7) === 'base64:') {
|
|
494
|
+
// console.log(k, 'get base64')
|
|
495
|
+
v = strdelleft(v, 7)
|
|
496
|
+
v = b642str(v)
|
|
497
|
+
// console.log(v)
|
|
498
|
+
rows[krow][k] = v
|
|
499
|
+
}
|
|
500
|
+
}
|
|
501
|
+
})
|
|
502
|
+
})
|
|
497
503
|
}
|
|
498
504
|
|
|
505
|
+
//ltdtmapping
|
|
506
|
+
rows = ltdtmapping(rows, ds[keyTable].keys)
|
|
507
|
+
// console.log('ltdtmapping rows', rows)
|
|
508
|
+
|
|
499
509
|
//delAll group
|
|
500
|
-
await woItems.
|
|
510
|
+
await woItems[keyTable].delAll({ group })
|
|
501
511
|
|
|
502
512
|
//insert
|
|
503
|
-
let r = await woItems.
|
|
513
|
+
// let r = await woItems[keyTable].insert(rows)
|
|
514
|
+
let r = await procOrm(userId, keyTable, 'insert', rows) //須使用procOrm才有辦法自動給予相關欄位
|
|
504
515
|
|
|
505
516
|
return r
|
|
506
517
|
}
|
|
@@ -556,7 +567,7 @@ function WWebApi(WOrm, url, db, getUserByToken, verifyClientUser, verifyAppUser,
|
|
|
556
567
|
|
|
557
568
|
{
|
|
558
569
|
method: 'GET',
|
|
559
|
-
path: '/api/getUserByToken',
|
|
570
|
+
path: '/api/getUserByToken', //未登入主頁時需先檢測token, getUserByToken為w-ui-loginout預設值, 若要更改兩邊須同時修改
|
|
560
571
|
handler: async function (req, res) {
|
|
561
572
|
// console.log('getUserByToken', req)
|
|
562
573
|
|
|
@@ -565,6 +576,15 @@ function WWebApi(WOrm, url, db, getUserByToken, verifyClientUser, verifyAppUser,
|
|
|
565
576
|
//token
|
|
566
577
|
let token = get(req, 'query.token', '')
|
|
567
578
|
|
|
579
|
+
//check
|
|
580
|
+
if (!isestr(token)) {
|
|
581
|
+
console.log('req.query', get(req, 'query'))
|
|
582
|
+
console.log('token', token)
|
|
583
|
+
console.log('[API]getUserByToken/check token: invalid token')
|
|
584
|
+
console.log(`token does not have permission`)
|
|
585
|
+
return Promise.reject(`token does not have permission`)
|
|
586
|
+
}
|
|
587
|
+
|
|
568
588
|
//getAndVerifyClientUser
|
|
569
589
|
let user = await getAndVerifyClientUser(token, 'getUserByToken')
|
|
570
590
|
|
|
@@ -589,49 +609,112 @@ function WWebApi(WOrm, url, db, getUserByToken, verifyClientUser, verifyAppUser,
|
|
|
589
609
|
return r
|
|
590
610
|
},
|
|
591
611
|
},
|
|
592
|
-
{
|
|
593
|
-
method: 'GET',
|
|
594
|
-
path: '/getAPIsList',
|
|
595
|
-
handler: async function (req, res) {
|
|
596
|
-
// console.log('getAPIsList', req)
|
|
597
|
-
|
|
598
|
-
async function core() {
|
|
599
|
-
|
|
600
|
-
//token
|
|
601
|
-
let token = get(req, 'query.token', '')
|
|
602
|
-
|
|
603
|
-
//getAndVerifyClientUser
|
|
604
|
-
let user = await getAndVerifyClientUser(token, 'getAPIsList')
|
|
605
|
-
|
|
606
|
-
//check
|
|
607
|
-
if (!iseobj(user)) {
|
|
608
|
-
console.log('token', token)
|
|
609
|
-
console.log('[API]getAPIsList/check user: invalid user')
|
|
610
|
-
console.log(`token does not have permission`)
|
|
611
|
-
return Promise.reject(`token does not have permission`)
|
|
612
|
-
}
|
|
613
|
-
|
|
614
|
-
//getAPIsList
|
|
615
|
-
let r = await getAPIsList({ isActive: 'y' })
|
|
616
612
|
|
|
617
|
-
|
|
618
|
-
|
|
613
|
+
// {
|
|
614
|
+
// method: 'GET',
|
|
615
|
+
// path: '/getAPIsList',
|
|
616
|
+
// handler: async function (req, res) {
|
|
617
|
+
// // console.log('getAPIsList', req)
|
|
618
|
+
|
|
619
|
+
// async function core() {
|
|
620
|
+
|
|
621
|
+
// //token
|
|
622
|
+
// let token = get(req, 'query.token', '')
|
|
623
|
+
|
|
624
|
+
// //check
|
|
625
|
+
// if (!isestr(token)) {
|
|
626
|
+
// console.log('req.query', get(req, 'query'))
|
|
627
|
+
// console.log('token', token)
|
|
628
|
+
// console.log('[API]getAPIsList/check token: invalid token')
|
|
629
|
+
// console.log(`token does not have permission`)
|
|
630
|
+
// return Promise.reject(`token does not have permission`)
|
|
631
|
+
// }
|
|
632
|
+
|
|
633
|
+
// //getAndVerifyClientUser
|
|
634
|
+
// let user = await getAndVerifyClientUser(token, 'getAPIsList')
|
|
635
|
+
|
|
636
|
+
// //check
|
|
637
|
+
// if (!iseobj(user)) {
|
|
638
|
+
// console.log('token', token)
|
|
639
|
+
// console.log('[API]getAPIsList/check user: invalid user')
|
|
640
|
+
// console.log(`token does not have permission`)
|
|
641
|
+
// return Promise.reject(`token does not have permission`)
|
|
642
|
+
// }
|
|
643
|
+
|
|
644
|
+
// //getAPIsList
|
|
645
|
+
// let r = await getAPIsList({ isActive: 'y' })
|
|
646
|
+
|
|
647
|
+
// return r
|
|
648
|
+
// }
|
|
649
|
+
|
|
650
|
+
// //pm2resolve core
|
|
651
|
+
// let r = await pm2resolve(core)()
|
|
652
|
+
// if (isErr(r.msg)) {
|
|
653
|
+
// r.msg = r.msg.message
|
|
654
|
+
// }
|
|
655
|
+
// // console.log('getAPIsList', r)
|
|
656
|
+
|
|
657
|
+
// return r
|
|
658
|
+
// },
|
|
659
|
+
// },
|
|
619
660
|
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
661
|
+
// {
|
|
662
|
+
// method: 'POST',
|
|
663
|
+
// path: '/updateAPIs',
|
|
664
|
+
// handler: async function (req, res) {
|
|
665
|
+
// // console.log('updateAPIs', req)
|
|
666
|
+
// // console.log('payload', req.payload)
|
|
667
|
+
|
|
668
|
+
// async function core() {
|
|
669
|
+
|
|
670
|
+
// //token
|
|
671
|
+
// let token = get(req, 'query.token', '')
|
|
672
|
+
|
|
673
|
+
// //check
|
|
674
|
+
// if (!isestr(token)) {
|
|
675
|
+
// console.log('req.query', get(req, 'query'))
|
|
676
|
+
// console.log('token', token)
|
|
677
|
+
// console.log('[API]updateAPIs/check token: invalid token')
|
|
678
|
+
// console.log(`token does not have permission`)
|
|
679
|
+
// return Promise.reject(`token does not have permission`)
|
|
680
|
+
// }
|
|
681
|
+
|
|
682
|
+
// //getAndVerifyClientUser
|
|
683
|
+
// let user = await getAndVerifyClientUser(token, 'updateAPIs')
|
|
684
|
+
|
|
685
|
+
// //check
|
|
686
|
+
// if (!iseobj(user)) {
|
|
687
|
+
// console.log('token', token)
|
|
688
|
+
// console.log('[API]updateAPIs/check user: invalid user')
|
|
689
|
+
// console.log(`token does not have permission`)
|
|
690
|
+
// return Promise.reject(`token does not have permission`)
|
|
691
|
+
// }
|
|
692
|
+
|
|
693
|
+
// //parsePayload
|
|
694
|
+
// let inp = await parsePayload(req)
|
|
695
|
+
|
|
696
|
+
// //updateAPIs
|
|
697
|
+
// let r = await updateAPIs(inp)
|
|
698
|
+
|
|
699
|
+
// return r
|
|
700
|
+
// }
|
|
701
|
+
|
|
702
|
+
// //pm2resolve core
|
|
703
|
+
// let r = await pm2resolve(core)()
|
|
704
|
+
// if (isErr(r.msg)) {
|
|
705
|
+
// r.msg = r.msg.message
|
|
706
|
+
// }
|
|
707
|
+
// // console.log('updateAPIs', r)
|
|
708
|
+
|
|
709
|
+
// return r
|
|
710
|
+
// },
|
|
711
|
+
// },
|
|
626
712
|
|
|
627
|
-
return r
|
|
628
|
-
},
|
|
629
|
-
},
|
|
630
713
|
{
|
|
631
714
|
method: 'POST',
|
|
632
|
-
path: '/
|
|
715
|
+
path: '/syncAndReplaceTabs',
|
|
633
716
|
handler: async function (req, res) {
|
|
634
|
-
// console.log('
|
|
717
|
+
// console.log('syncAndReplaceTabs', req)
|
|
635
718
|
// console.log('payload', req.payload)
|
|
636
719
|
|
|
637
720
|
async function core() {
|
|
@@ -639,55 +722,53 @@ function WWebApi(WOrm, url, db, getUserByToken, verifyClientUser, verifyAppUser,
|
|
|
639
722
|
//token
|
|
640
723
|
let token = get(req, 'query.token', '')
|
|
641
724
|
|
|
642
|
-
//getAndVerifyClientUser
|
|
643
|
-
let user = await getAndVerifyClientUser(token, 'updateAPIs')
|
|
644
|
-
|
|
645
725
|
//check
|
|
646
|
-
if (!
|
|
726
|
+
if (!isestr(token)) {
|
|
727
|
+
console.log('req.query', get(req, 'query'))
|
|
647
728
|
console.log('token', token)
|
|
648
|
-
console.log('[API]
|
|
729
|
+
console.log('[API]syncAndReplaceTabs/check token: invalid token')
|
|
649
730
|
console.log(`token does not have permission`)
|
|
650
731
|
return Promise.reject(`token does not have permission`)
|
|
651
732
|
}
|
|
652
733
|
|
|
653
|
-
//
|
|
654
|
-
let
|
|
655
|
-
|
|
656
|
-
//updateAPIs
|
|
657
|
-
let r = await updateAPIs(inp)
|
|
734
|
+
//keyTable
|
|
735
|
+
let keyTable = get(req, 'query.keyTable', '')
|
|
658
736
|
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
// console.log('updateAPIs', r)
|
|
668
|
-
|
|
669
|
-
return r
|
|
670
|
-
},
|
|
671
|
-
},
|
|
672
|
-
{
|
|
673
|
-
method: 'POST',
|
|
674
|
-
path: '/syncAndReplaceApis',
|
|
675
|
-
handler: async function (req, res) {
|
|
676
|
-
// console.log('syncAndReplaceApis', req)
|
|
677
|
-
// console.log('payload', req.payload)
|
|
678
|
-
|
|
679
|
-
async function core() {
|
|
737
|
+
//check
|
|
738
|
+
if (!isestr(keyTable)) {
|
|
739
|
+
console.log('req.query', get(req, 'query'))
|
|
740
|
+
console.log('keyTable', keyTable)
|
|
741
|
+
console.log('[API]syncAndReplaceTabs/check keyTable: invalid keyTable')
|
|
742
|
+
console.log(`token does not have permission`)
|
|
743
|
+
return Promise.reject(`token does not have permission`)
|
|
744
|
+
}
|
|
680
745
|
|
|
681
|
-
//
|
|
682
|
-
let
|
|
746
|
+
//check keyTable
|
|
747
|
+
let allowedTables = ['apis']
|
|
748
|
+
if (!allowedTables.includes(keyTable)) {
|
|
749
|
+
console.log('[API]syncAndReplaceTabs/check keyTable: unexpected keyTable', keyTable)
|
|
750
|
+
return Promise.reject(`invalid keyTable: ${keyTable}`)
|
|
751
|
+
}
|
|
683
752
|
|
|
684
753
|
//getAndVerifyAppUser
|
|
685
|
-
let user = await getAndVerifyAppUser(token, '
|
|
754
|
+
let user = await getAndVerifyAppUser(token, 'syncAndReplaceTabs')
|
|
686
755
|
|
|
687
756
|
//check
|
|
688
757
|
if (!iseobj(user)) {
|
|
689
758
|
console.log('token', token)
|
|
690
|
-
console.log('[API]
|
|
759
|
+
console.log('[API]syncAndReplaceTabs/check user: invalid user')
|
|
760
|
+
console.log(`token does not have permission`)
|
|
761
|
+
return Promise.reject(`token does not have permission`)
|
|
762
|
+
}
|
|
763
|
+
|
|
764
|
+
//userId
|
|
765
|
+
let userId = get(user, 'id', '')
|
|
766
|
+
|
|
767
|
+
//check userId
|
|
768
|
+
if (!isestr(userId)) {
|
|
769
|
+
console.log('token', token)
|
|
770
|
+
console.log('user', user)
|
|
771
|
+
console.log('[API]syncAndReplaceTabs/check userId: invalid userId')
|
|
691
772
|
console.log(`token does not have permission`)
|
|
692
773
|
return Promise.reject(`token does not have permission`)
|
|
693
774
|
}
|
|
@@ -695,8 +776,8 @@ function WWebApi(WOrm, url, db, getUserByToken, verifyClientUser, verifyAppUser,
|
|
|
695
776
|
//parsePayload
|
|
696
777
|
let inp = await parsePayload(req)
|
|
697
778
|
|
|
698
|
-
//
|
|
699
|
-
let r = await
|
|
779
|
+
//syncAndReplaceTabs
|
|
780
|
+
let r = await syncAndReplaceTabs(userId, inp, keyTable)
|
|
700
781
|
|
|
701
782
|
return r
|
|
702
783
|
}
|
|
@@ -706,11 +787,12 @@ function WWebApi(WOrm, url, db, getUserByToken, verifyClientUser, verifyAppUser,
|
|
|
706
787
|
if (isErr(r.msg)) {
|
|
707
788
|
r.msg = r.msg.message
|
|
708
789
|
}
|
|
709
|
-
// console.log('
|
|
790
|
+
// console.log('syncAndReplaceTabs', r)
|
|
710
791
|
|
|
711
792
|
return r
|
|
712
793
|
},
|
|
713
794
|
},
|
|
795
|
+
|
|
714
796
|
]
|
|
715
797
|
|
|
716
798
|
|
|
@@ -772,11 +854,10 @@ function WWebApi(WOrm, url, db, getUserByToken, verifyClientUser, verifyAppUser,
|
|
|
772
854
|
|
|
773
855
|
getWebInfor,
|
|
774
856
|
|
|
775
|
-
getAPIsList: (userId, query = {}) => {
|
|
776
|
-
|
|
777
|
-
},
|
|
778
|
-
|
|
779
|
-
// updateApis: (userId, rows) => {
|
|
857
|
+
// getAPIsList: (userId, query = {}) => { //待提供api管理系統界面使用
|
|
858
|
+
// return getAPIsList(query)
|
|
859
|
+
// },
|
|
860
|
+
// updateApis: (userId, rows) => { //待提供api管理系統界面使用
|
|
780
861
|
// return updateApis(rows)
|
|
781
862
|
// },
|
|
782
863
|
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import axios from 'axios'
|
|
2
|
+
import get from 'lodash-es/get.js'
|
|
3
|
+
import genPm from 'wsemi/src/genPm.mjs'
|
|
4
|
+
import haskey from 'wsemi/src/haskey.mjs'
|
|
5
|
+
import ltdtpick from 'wsemi/src/ltdtpick.mjs'
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
//kpKs
|
|
9
|
+
let ks_apis = [
|
|
10
|
+
'id', //'id-for-apis-pets-guineapigs-1'
|
|
11
|
+
'order', //0
|
|
12
|
+
'name', //'取得天竺鼠清單資訊'
|
|
13
|
+
'description', //'取得天竺鼠清單資訊'
|
|
14
|
+
'url', //指api網址, 例如 http://localhost:11005/getDogsList
|
|
15
|
+
'method', //'get'
|
|
16
|
+
'version', //'v1'
|
|
17
|
+
'group', //'寵物'
|
|
18
|
+
'levels', //'寵物.天竺鼠'
|
|
19
|
+
'keywords', //'pets;guineapigs'
|
|
20
|
+
'state', //'ok'
|
|
21
|
+
'creator', //'pets-system'
|
|
22
|
+
'dataSource', //'pets-data'
|
|
23
|
+
'mdInputParams', //輸入方式說明, markdown格式
|
|
24
|
+
'inputExample', //輸入範例數據
|
|
25
|
+
'mdOutputParams', //輸出方式說明, markdown格式
|
|
26
|
+
'outputExample', //輸出範例數據, json格式
|
|
27
|
+
]
|
|
28
|
+
let kpKs = {
|
|
29
|
+
ks_apis,
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
async function provideTabs(url, keyTable, group, rows) {
|
|
34
|
+
//url: 伺服器提供的接入網址, 例如 http://localhost:11005/syncAndReplaceTabs?token={token}&keyTable={keyTable}
|
|
35
|
+
//keyTable: 資料表名
|
|
36
|
+
//group: 指陣列數據所屬群組
|
|
37
|
+
//rows: 陣列數據
|
|
38
|
+
|
|
39
|
+
//pm
|
|
40
|
+
let pm = genPm()
|
|
41
|
+
|
|
42
|
+
//ks
|
|
43
|
+
if (!haskey(kpKs, `ks_${keyTable}`)) {
|
|
44
|
+
return Promise.reject(`invalid keyTable[${keyTable}]`)
|
|
45
|
+
}
|
|
46
|
+
let ks = kpKs[`ks_${keyTable}`]
|
|
47
|
+
// console.log('ks', ks)
|
|
48
|
+
|
|
49
|
+
//ltdtpick
|
|
50
|
+
rows = ltdtpick(rows, ks)
|
|
51
|
+
// console.log('rows', rows)
|
|
52
|
+
|
|
53
|
+
//rin
|
|
54
|
+
let rin = {
|
|
55
|
+
group,
|
|
56
|
+
rows,
|
|
57
|
+
}
|
|
58
|
+
// console.log('rin', rin)
|
|
59
|
+
|
|
60
|
+
//axios
|
|
61
|
+
await axios({
|
|
62
|
+
method: 'post',
|
|
63
|
+
url,
|
|
64
|
+
headers: { 'Content-Type': 'application/json; charset=utf-8' },
|
|
65
|
+
data: rin,
|
|
66
|
+
})
|
|
67
|
+
.then((res) => {
|
|
68
|
+
// console.log('then', res)
|
|
69
|
+
let data = get(res, 'data')
|
|
70
|
+
let state = get(data, 'state')
|
|
71
|
+
let msg = get(data, 'msg', '')
|
|
72
|
+
if (state === 'success') {
|
|
73
|
+
pm.resolve(msg)
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
pm.reject(msg)
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
})
|
|
80
|
+
.catch((err) => {
|
|
81
|
+
// console.log('catch', err)
|
|
82
|
+
pm.reject(err)
|
|
83
|
+
})
|
|
84
|
+
|
|
85
|
+
return pm
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
export default provideTabs
|
package/tableTags.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"apis":"2025-07-
|
|
1
|
+
{"apis":"2025-07-20T22:07:21+08:00|DSiCoa"}
|