|
1 | 1 | import log from './logger'; |
| 2 | +import _ from 'lodash'; |
2 | 3 | var mongodb = require('mongodb'); |
3 | 4 | var Parse = require('parse/node').Parse; |
4 | 5 |
|
@@ -149,8 +150,6 @@ export function transformKeyValue(schema, className, restKey, restValue, options |
149 | 150 | throw 'There was a problem transforming an ACL.'; |
150 | 151 | } |
151 | 152 |
|
152 | | - |
153 | | - |
154 | 153 | // Handle arrays |
155 | 154 | if (restValue instanceof Array) { |
156 | 155 | if (options.query) { |
@@ -646,84 +645,50 @@ function untransformObject(schema, className, mongoObject, isNestedObject = fals |
646 | 645 |
|
647 | 646 | var restObject = untransformACL(mongoObject); |
648 | 647 | for (var key in mongoObject) { |
649 | | - // TODO: This could use some cleanup. Default case handling still needs to happen for some nested keys. |
| 648 | + const specialKeys = [ |
| 649 | + '_id', |
| 650 | + '_hashed_password', |
| 651 | + '_acl', |
| 652 | + '_email_verify_token', |
| 653 | + '_perishable_token', |
| 654 | + '_tombstone', |
| 655 | + '_session_token', |
| 656 | + 'updatedAt', |
| 657 | + '_updated_at', |
| 658 | + 'createdAt', |
| 659 | + '_created_at', |
| 660 | + 'expiresAt', |
| 661 | + '_expiresAt', |
| 662 | + ]; |
| 663 | + if (_.includes(specialKeys, key) && isNestedObject) { |
| 664 | + restObject[key] = untransformObject(schema, className, mongoObject[key], true); |
| 665 | + continue; |
| 666 | + } |
650 | 667 | switch(key) { |
651 | 668 | case '_id': |
652 | | - if (isNestedObject) { |
653 | | - restObject[key] = untransformObject(schema, className, mongoObject[key], true); |
654 | | - break; |
655 | | - } |
656 | 669 | restObject['objectId'] = '' + mongoObject[key]; |
657 | 670 | break; |
658 | 671 | case '_hashed_password': |
659 | | - if (isNestedObject) { |
660 | | - restObject[key] = untransformObject(schema, className, mongoObject[key], true); |
661 | | - break; |
662 | | - } |
663 | 672 | restObject['password'] = mongoObject[key]; |
664 | 673 | break; |
665 | 674 | case '_acl': |
666 | | - if (isNestedObject) { |
667 | | - restObject[key] = untransformObject(schema, className, mongoObject[key], true); |
668 | | - break; |
669 | | - } |
670 | 675 | case '_email_verify_token': |
671 | | - if (isNestedObject) { |
672 | | - restObject[key] = untransformObject(schema, className, mongoObject[key], true); |
673 | | - break; |
674 | | - } |
675 | 676 | case '_perishable_token': |
676 | | - if (isNestedObject) { |
677 | | - restObject[key] = untransformObject(schema, className, mongoObject[key], true); |
678 | | - break; |
679 | | - } |
680 | 677 | case '_tombstone': |
681 | | - if (isNestedObject) { |
682 | | - restObject[key] = untransformObject(schema, className, mongoObject[key], true); |
683 | | - break; |
684 | | - } |
685 | 678 | break; |
686 | 679 | case '_session_token': |
687 | | - if (isNestedObject) { |
688 | | - restObject[key] = untransformObject(schema, className, mongoObject[key], true); |
689 | | - break; |
690 | | - } |
691 | 680 | restObject['sessionToken'] = mongoObject[key]; |
692 | 681 | break; |
693 | 682 | case 'updatedAt': |
694 | | - if (isNestedObject) { |
695 | | - restObject[key] = untransformObject(schema, className, mongoObject[key], true); |
696 | | - break; |
697 | | - } |
698 | 683 | case '_updated_at': |
699 | | - if (isNestedObject) { |
700 | | - restObject[key] = untransformObject(schema, className, mongoObject[key], true); |
701 | | - break; |
702 | | - } |
703 | 684 | restObject['updatedAt'] = Parse._encode(new Date(mongoObject[key])).iso; |
704 | 685 | break; |
705 | 686 | case 'createdAt': |
706 | | - if (isNestedObject) { |
707 | | - restObject[key] = untransformObject(schema, className, mongoObject[key], true); |
708 | | - break; |
709 | | - } |
710 | 687 | case '_created_at': |
711 | | - if (isNestedObject) { |
712 | | - restObject[key] = untransformObject(schema, className, mongoObject[key], true); |
713 | | - break; |
714 | | - } |
715 | 688 | restObject['createdAt'] = Parse._encode(new Date(mongoObject[key])).iso; |
716 | 689 | break; |
717 | 690 | case 'expiresAt': |
718 | | - if (isNestedObject) { |
719 | | - restObject[key] = untransformObject(schema, className, mongoObject[key], true); |
720 | | - break; |
721 | | - } |
722 | 691 | case '_expiresAt': |
723 | | - if (isNestedObject) { |
724 | | - restObject[key] = untransformObject(schema, className, mongoObject[key], true); |
725 | | - break; |
726 | | - } |
727 | 692 | restObject['expiresAt'] = Parse._encode(new Date(mongoObject[key])); |
728 | 693 | break; |
729 | 694 | default: |
|
0 commit comments