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
- setAdminUsers(payload.users || []);
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
- setAdminUsers(payload.users || []);
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,6 +1,6 @@
1
1
  {
2
2
  "name": "medusa-contact-us",
3
- "version": "0.0.23",
3
+ "version": "0.0.25",
4
4
  "description": "Manage storefront email subscriptions (opt-ins and opt-outs) in Medusa Admin.",
5
5
  "author": "Medusa (https://medusajs.com)",
6
6
  "license": "MIT",
@@ -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==