medusa-contact-us 0.0.23 → 0.0.25
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.
|
@@ -452,6 +452,8 @@ const ContactRequestDetailPage = () => {
|
|
|
452
452
|
try {
|
|
453
453
|
setIsLoadingAdmins(true);
|
|
454
454
|
const params = new URLSearchParams();
|
|
455
|
+
params.set("limit", "100");
|
|
456
|
+
params.set("fields", "id,email,first_name,last_name");
|
|
455
457
|
if (searchQuery) {
|
|
456
458
|
params.set("q", searchQuery);
|
|
457
459
|
}
|
|
@@ -462,7 +464,23 @@ const ContactRequestDetailPage = () => {
|
|
|
462
464
|
throw new Error("Unable to load admin users");
|
|
463
465
|
}
|
|
464
466
|
const payload = await response.json();
|
|
465
|
-
|
|
467
|
+
const users = (payload.users || []).map((user) => {
|
|
468
|
+
if (typeof user === "object" && user !== null) {
|
|
469
|
+
const u = user;
|
|
470
|
+
const firstName = u.first_name || "";
|
|
471
|
+
const lastName = u.last_name || "";
|
|
472
|
+
const name = [firstName, lastName].filter(Boolean).join(" ") || u.email || "";
|
|
473
|
+
return {
|
|
474
|
+
id: u.id || "",
|
|
475
|
+
email: u.email || "",
|
|
476
|
+
first_name: u.first_name || null,
|
|
477
|
+
last_name: u.last_name || null,
|
|
478
|
+
name
|
|
479
|
+
};
|
|
480
|
+
}
|
|
481
|
+
return null;
|
|
482
|
+
}).filter(Boolean);
|
|
483
|
+
setAdminUsers(users);
|
|
466
484
|
} catch (fetchError) {
|
|
467
485
|
console.error("Error fetching admin users:", fetchError);
|
|
468
486
|
setAdminUsers([]);
|
|
@@ -451,6 +451,8 @@ const ContactRequestDetailPage = () => {
|
|
|
451
451
|
try {
|
|
452
452
|
setIsLoadingAdmins(true);
|
|
453
453
|
const params = new URLSearchParams();
|
|
454
|
+
params.set("limit", "100");
|
|
455
|
+
params.set("fields", "id,email,first_name,last_name");
|
|
454
456
|
if (searchQuery) {
|
|
455
457
|
params.set("q", searchQuery);
|
|
456
458
|
}
|
|
@@ -461,7 +463,23 @@ const ContactRequestDetailPage = () => {
|
|
|
461
463
|
throw new Error("Unable to load admin users");
|
|
462
464
|
}
|
|
463
465
|
const payload = await response.json();
|
|
464
|
-
|
|
466
|
+
const users = (payload.users || []).map((user) => {
|
|
467
|
+
if (typeof user === "object" && user !== null) {
|
|
468
|
+
const u = user;
|
|
469
|
+
const firstName = u.first_name || "";
|
|
470
|
+
const lastName = u.last_name || "";
|
|
471
|
+
const name = [firstName, lastName].filter(Boolean).join(" ") || u.email || "";
|
|
472
|
+
return {
|
|
473
|
+
id: u.id || "",
|
|
474
|
+
email: u.email || "",
|
|
475
|
+
first_name: u.first_name || null,
|
|
476
|
+
last_name: u.last_name || null,
|
|
477
|
+
name
|
|
478
|
+
};
|
|
479
|
+
}
|
|
480
|
+
return null;
|
|
481
|
+
}).filter(Boolean);
|
|
482
|
+
setAdminUsers(users);
|
|
465
483
|
} catch (fetchError) {
|
|
466
484
|
console.error("Error fetching admin users:", fetchError);
|
|
467
485
|
setAdminUsers([]);
|
package/package.json
CHANGED
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.GET = void 0;
|
|
4
|
-
const GET = async (req, res) => {
|
|
5
|
-
try {
|
|
6
|
-
const { q } = req.query;
|
|
7
|
-
const searchQuery = q ? String(q).toLowerCase() : "";
|
|
8
|
-
let users = [];
|
|
9
|
-
try {
|
|
10
|
-
// Resolve the EntityManager to query the database
|
|
11
|
-
const manager = req.scope.resolve("manager");
|
|
12
|
-
if (manager) {
|
|
13
|
-
const knex = manager.getKnex();
|
|
14
|
-
if (knex) {
|
|
15
|
-
// Query auth_identity table for admin users
|
|
16
|
-
// In Medusa v2, admin users are stored in auth_identity with entity_type = 'user'
|
|
17
|
-
const result = await knex.raw(`
|
|
18
|
-
SELECT DISTINCT
|
|
19
|
-
ai.id,
|
|
20
|
-
ai.provider_metadata->>'email' as email,
|
|
21
|
-
ai.provider_metadata->>'first_name' as first_name,
|
|
22
|
-
ai.provider_metadata->>'last_name' as last_name
|
|
23
|
-
FROM auth_identity ai
|
|
24
|
-
WHERE ai.entity_type = 'user'
|
|
25
|
-
ORDER BY ai.created_at DESC
|
|
26
|
-
`);
|
|
27
|
-
// Handle different result formats from knex.raw()
|
|
28
|
-
const rows = result.rows || result[0] || [];
|
|
29
|
-
users = rows.map((row) => {
|
|
30
|
-
if (typeof row === "object" && row !== null) {
|
|
31
|
-
const r = row;
|
|
32
|
-
const firstName = r.first_name || "";
|
|
33
|
-
const lastName = r.last_name || "";
|
|
34
|
-
const name = [firstName, lastName].filter(Boolean).join(" ") || r.email || "";
|
|
35
|
-
return {
|
|
36
|
-
id: r.id || "",
|
|
37
|
-
email: r.email || "",
|
|
38
|
-
first_name: r.first_name || null,
|
|
39
|
-
last_name: r.last_name || null,
|
|
40
|
-
name,
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
return null;
|
|
44
|
-
}).filter(Boolean);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
catch (serviceError) {
|
|
49
|
-
// If service resolution fails, return empty array
|
|
50
|
-
console.warn("Could not fetch admin users from database:", serviceError);
|
|
51
|
-
}
|
|
52
|
-
// Filter by search query if provided
|
|
53
|
-
if (searchQuery && users.length > 0) {
|
|
54
|
-
users = users.filter((user) => {
|
|
55
|
-
const nameMatch = user.name.toLowerCase().includes(searchQuery);
|
|
56
|
-
const emailMatch = user.email.toLowerCase().includes(searchQuery);
|
|
57
|
-
const idMatch = user.id.toLowerCase().includes(searchQuery);
|
|
58
|
-
return nameMatch || emailMatch || idMatch;
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
res.status(200).json({ users });
|
|
62
|
-
}
|
|
63
|
-
catch (error) {
|
|
64
|
-
// On error, return empty array so UI doesn't break
|
|
65
|
-
console.error("Error fetching admin users:", error);
|
|
66
|
-
res.status(200).json({ users: [] });
|
|
67
|
-
}
|
|
68
|
-
};
|
|
69
|
-
exports.GET = GET;
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3VzZXJzL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQVdPLE1BQU0sR0FBRyxHQUFHLEtBQUssRUFBRSxHQUFrQixFQUFFLEdBQW1CLEVBQUUsRUFBRTtJQUNuRSxJQUFJLENBQUM7UUFDSCxNQUFNLEVBQUUsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQTtRQUN2QixNQUFNLFdBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO1FBRXBELElBQUksS0FBSyxHQUFnQixFQUFFLENBQUE7UUFFM0IsSUFBSSxDQUFDO1lBQ0gsa0RBQWtEO1lBQ2xELE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFnQixTQUFTLENBQUMsQ0FBQTtZQUUzRCxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNaLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQTtnQkFFOUIsSUFBSSxJQUFJLEVBQUUsQ0FBQztvQkFDVCw0Q0FBNEM7b0JBQzVDLGtGQUFrRjtvQkFDbEYsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDOzs7Ozs7Ozs7V0FTN0IsQ0FBQyxDQUFBO29CQUVGLGtEQUFrRDtvQkFDbEQsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFBO29CQUUzQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQVksRUFBRSxFQUFFO3dCQUNoQyxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUM7NEJBQzVDLE1BQU0sQ0FBQyxHQUFHLEdBS1QsQ0FBQTs0QkFDRCxNQUFNLFNBQVMsR0FBRyxDQUFDLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQTs0QkFDcEMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUE7NEJBQ2xDLE1BQU0sSUFBSSxHQUFHLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUE7NEJBRTdFLE9BQU87Z0NBQ0wsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRTtnQ0FDZCxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxFQUFFO2dDQUNwQixVQUFVLEVBQUUsQ0FBQyxDQUFDLFVBQVUsSUFBSSxJQUFJO2dDQUNoQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLFNBQVMsSUFBSSxJQUFJO2dDQUM5QixJQUFJOzZCQUNMLENBQUE7d0JBQ0gsQ0FBQzt3QkFDRCxPQUFPLElBQUksQ0FBQTtvQkFDYixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFnQixDQUFBO2dCQUNuQyxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLFlBQVksRUFBRSxDQUFDO1lBQ3RCLGtEQUFrRDtZQUNsRCxPQUFPLENBQUMsSUFBSSxDQUFDLDRDQUE0QyxFQUFFLFlBQVksQ0FBQyxDQUFBO1FBQzFFLENBQUM7UUFFRCxxQ0FBcUM7UUFDckMsSUFBSSxXQUFXLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNwQyxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUM1QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQTtnQkFDL0QsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUE7Z0JBQ2pFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFBO2dCQUMzRCxPQUFPLFNBQVMsSUFBSSxVQUFVLElBQUksT0FBTyxDQUFBO1lBQzNDLENBQUMsQ0FBQyxDQUFBO1FBQ0osQ0FBQztRQUVELEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQTtJQUNqQyxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLG1EQUFtRDtRQUNuRCxPQUFPLENBQUMsS0FBSyxDQUFDLDZCQUE2QixFQUFFLEtBQUssQ0FBQyxDQUFBO1FBQ25ELEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFDckMsQ0FBQztBQUNILENBQUMsQ0FBQTtBQTVFWSxRQUFBLEdBQUcsT0E0RWYifQ==
|