@jd-data-limited/easy-fm 1.1.5-alpha1 → 1.1.6-alpha1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/index.js +48 -0
  2. package/index.ts +54 -1
  3. package/package.json +1 -1
package/index.js CHANGED
@@ -386,6 +386,54 @@ class record extends EventEmitter {
386
386
  getPortal(portal) {
387
387
  return this.portals.find(p => p.name === portal);
388
388
  }
389
+ delete() {
390
+ return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
391
+ this.layout.database.apiRequest(this.endpoint, {
392
+ port: 443,
393
+ method: "DELETE"
394
+ })
395
+ .then(res => {
396
+ if (typeof res.response.scriptError !== "undefined" && res.response.scriptError !== '0') {
397
+ reject(new FMError(res.response.scriptError, res.status, res));
398
+ }
399
+ else if (res.messages[0].code === "0") {
400
+ this.emit("deleted");
401
+ resolve();
402
+ }
403
+ else {
404
+ reject(new FMError(res.messages[0].code, res.status, res));
405
+ }
406
+ })
407
+ .catch(e => {
408
+ reject(e);
409
+ });
410
+ }));
411
+ }
412
+ duplicate() {
413
+ return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
414
+ this.layout.database.apiRequest(this.endpoint, {
415
+ port: 443,
416
+ method: "POST"
417
+ })
418
+ .then(res => {
419
+ if (typeof res.response.scriptError !== "undefined" && res.response.scriptError !== '0') {
420
+ reject(new FMError(res.response.scriptError, res.status, res));
421
+ }
422
+ else if (res.messages[0].code === "0") {
423
+ let data = this.toObject((a) => true, (a) => true, (a) => false, (a) => false);
424
+ let _res = new record(this.layout, res.response.recordId, res.response.modId, data.fieldData, data.portalData);
425
+ this.emit("duplicated");
426
+ resolve(_res);
427
+ }
428
+ else {
429
+ reject(new FMError(res.messages[0].code, res.status, res));
430
+ }
431
+ })
432
+ .catch(e => {
433
+ reject(e);
434
+ });
435
+ }));
436
+ }
389
437
  toObject(filter = (a) => a.edited, portalFilter = (a) => a.records.find(record => record.edited), portalRowFilter = (a) => a.edited, portalFieldFilter = (a) => a.edited) {
390
438
  let fields_processed = {};
391
439
  for (let field of this.fields.filter(field => filter(field))) {
package/index.ts CHANGED
@@ -85,7 +85,12 @@ interface Script {
85
85
  interface recordObject {
86
86
  recordId: number
87
87
  modId: number,
88
- fieldData: any
88
+ fieldData: any,
89
+ portalData: portalDataObject | undefined
90
+ }
91
+
92
+ interface portalDataObject {
93
+ [key: string]: recordObject
89
94
  }
90
95
 
91
96
  export default class FileMakerConnection extends EventEmitter {
@@ -482,6 +487,54 @@ class record extends EventEmitter {
482
487
  getPortal(portal) {
483
488
  return this.portals.find(p => p.name === portal)
484
489
  }
490
+
491
+ delete(): Promise<void> {
492
+ return new Promise(async (resolve, reject) => {
493
+ this.layout.database.apiRequest(this.endpoint, {
494
+ port: 443,
495
+ method: "DELETE"
496
+ })
497
+ .then(res => {
498
+ if (typeof res.response.scriptError !== "undefined" && res.response.scriptError !== '0') {
499
+ reject(new FMError(res.response.scriptError, res.status, res))
500
+ } else if (res.messages[0].code === "0") {
501
+ this.emit("deleted")
502
+ resolve()
503
+ } else {
504
+ reject(new FMError(res.messages[0].code, res.status, res))
505
+ }
506
+ })
507
+ .catch(e => {
508
+ reject(e)
509
+ })
510
+ })
511
+ }
512
+
513
+ duplicate(): Promise<record> {
514
+ return new Promise(async (resolve, reject) => {
515
+ this.layout.database.apiRequest(this.endpoint, {
516
+ port: 443,
517
+ method: "POST"
518
+ })
519
+ .then(res => {
520
+ if (typeof res.response.scriptError !== "undefined" && res.response.scriptError !== '0') {
521
+ reject(new FMError(res.response.scriptError, res.status, res))
522
+ } else if (res.messages[0].code === "0") {
523
+ let data = this.toObject((a) => true, (a) => true, (a) => false, (a) => false)
524
+ let _res = new record(this.layout, res.response.recordId, res.response.modId, data.fieldData, data.portalData)
525
+
526
+ this.emit("duplicated")
527
+ resolve(_res)
528
+ } else {
529
+ reject(new FMError(res.messages[0].code, res.status, res))
530
+ }
531
+ })
532
+ .catch(e => {
533
+ reject(e)
534
+ })
535
+ })
536
+ }
537
+
485
538
 
486
539
  toObject(filter = (a) => a.edited,
487
540
  portalFilter = (a) => a.records.find(record => record.edited),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jd-data-limited/easy-fm",
3
- "version": "1.1.5alpha1",
3
+ "version": "1.1.6alpha1",
4
4
  "dependencies": {
5
5
  "@types/btoa": "^1.2.3",
6
6
  "@types/events": "^3.0.0",