appwrite-utils-cli 0.0.58 → 0.0.59
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.
@@ -577,9 +577,22 @@ export class DataLoader {
|
|
577
577
|
prepareUserData(item, attributeMappings, primaryKeyField, newId) {
|
578
578
|
let transformedItem = this.transformData(item, attributeMappings);
|
579
579
|
const userData = AuthUserCreateSchema.safeParse(transformedItem);
|
580
|
-
if (!userData.success) {
|
581
|
-
logger.error(`Invalid user data: ${JSON.stringify(userData.error
|
582
|
-
|
580
|
+
if (!userData.success || !(userData.data.email && userData.data.phone)) {
|
581
|
+
logger.error(`Invalid user data: ${JSON.stringify(userData.error?.errors, undefined, 2)} or missing email/phone`);
|
582
|
+
const userKeys = ["email", "phone", "name", "labels", "prefs"];
|
583
|
+
userKeys.forEach((key) => {
|
584
|
+
if (transformedItem.hasOwnProperty(key)) {
|
585
|
+
delete transformedItem[key];
|
586
|
+
}
|
587
|
+
});
|
588
|
+
return {
|
589
|
+
transformedItem,
|
590
|
+
existingId: undefined,
|
591
|
+
userData: {
|
592
|
+
rawData: item,
|
593
|
+
finalData: transformedItem,
|
594
|
+
},
|
595
|
+
};
|
583
596
|
}
|
584
597
|
const email = userData.data.email;
|
585
598
|
const phone = userData.data.phone;
|
@@ -718,7 +731,11 @@ export class DataLoader {
|
|
718
731
|
if (!existingId) {
|
719
732
|
// No existing user ID, generate a new unique ID
|
720
733
|
existingId = this.getTrueUniqueId(this.getCollectionKey("users"));
|
721
|
-
transformedItem
|
734
|
+
transformedItem = {
|
735
|
+
...transformedItem,
|
736
|
+
userId: existingId,
|
737
|
+
docId: existingId,
|
738
|
+
};
|
722
739
|
}
|
723
740
|
// Create a context object for the item, including the new ID
|
724
741
|
let context = this.createContext(db, collection, item, existingId);
|
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "appwrite-utils-cli",
|
3
3
|
"description": "Appwrite Utility Functions to help with database management, data conversion, data import, migrations, and much more. Meant to be used as a CLI tool, I do not recommend installing this in frontend environments.",
|
4
|
-
"version": "0.0.
|
4
|
+
"version": "0.0.59",
|
5
5
|
"main": "src/main.ts",
|
6
6
|
"type": "module",
|
7
7
|
"repository": {
|
@@ -754,15 +754,29 @@ export class DataLoader {
|
|
754
754
|
} {
|
755
755
|
let transformedItem = this.transformData(item, attributeMappings);
|
756
756
|
const userData = AuthUserCreateSchema.safeParse(transformedItem);
|
757
|
-
if (!userData.success) {
|
757
|
+
if (!userData.success || !(userData.data.email && userData.data.phone)) {
|
758
758
|
logger.error(
|
759
759
|
`Invalid user data: ${JSON.stringify(
|
760
|
-
userData.error
|
760
|
+
userData.error?.errors,
|
761
761
|
undefined,
|
762
762
|
2
|
763
|
-
)}`
|
763
|
+
)} or missing email/phone`
|
764
764
|
);
|
765
|
-
|
765
|
+
|
766
|
+
const userKeys = ["email", "phone", "name", "labels", "prefs"];
|
767
|
+
userKeys.forEach((key) => {
|
768
|
+
if (transformedItem.hasOwnProperty(key)) {
|
769
|
+
delete transformedItem[key];
|
770
|
+
}
|
771
|
+
});
|
772
|
+
return {
|
773
|
+
transformedItem,
|
774
|
+
existingId: undefined,
|
775
|
+
userData: {
|
776
|
+
rawData: item,
|
777
|
+
finalData: transformedItem,
|
778
|
+
},
|
779
|
+
};
|
766
780
|
}
|
767
781
|
const email = userData.data.email;
|
768
782
|
const phone = userData.data.phone;
|
@@ -929,7 +943,11 @@ export class DataLoader {
|
|
929
943
|
if (!existingId) {
|
930
944
|
// No existing user ID, generate a new unique ID
|
931
945
|
existingId = this.getTrueUniqueId(this.getCollectionKey("users"));
|
932
|
-
transformedItem
|
946
|
+
transformedItem = {
|
947
|
+
...transformedItem,
|
948
|
+
userId: existingId,
|
949
|
+
docId: existingId,
|
950
|
+
};
|
933
951
|
}
|
934
952
|
|
935
953
|
// Create a context object for the item, including the new ID
|