@lodashventure/medusa-login-provider 0.1.0 → 0.1.1
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.
|
@@ -19,10 +19,10 @@ async function POST(req, res) {
|
|
|
19
19
|
const customerService = req.scope.resolve(utils_1.Modules.CUSTOMER);
|
|
20
20
|
// Extract JWT from Authorization header
|
|
21
21
|
const authHeader = req.headers.authorization;
|
|
22
|
-
if (!authHeader || !authHeader.startsWith(
|
|
22
|
+
if (!authHeader || !authHeader.startsWith("Bearer ")) {
|
|
23
23
|
return res.status(401).json({
|
|
24
24
|
success: false,
|
|
25
|
-
error: "Authorization header with Bearer token is required"
|
|
25
|
+
error: "Authorization header with Bearer token is required",
|
|
26
26
|
});
|
|
27
27
|
}
|
|
28
28
|
const token = authHeader.substring(7);
|
|
@@ -33,7 +33,7 @@ async function POST(req, res) {
|
|
|
33
33
|
if (!decoded || !decoded.auth_identity_id) {
|
|
34
34
|
return res.status(401).json({
|
|
35
35
|
success: false,
|
|
36
|
-
error: "Invalid token: auth_identity_id not found"
|
|
36
|
+
error: "Invalid token: auth_identity_id not found",
|
|
37
37
|
});
|
|
38
38
|
}
|
|
39
39
|
auth_identity_id = decoded.auth_identity_id;
|
|
@@ -43,7 +43,7 @@ async function POST(req, res) {
|
|
|
43
43
|
logger.error("Error decoding JWT:", error);
|
|
44
44
|
return res.status(401).json({
|
|
45
45
|
success: false,
|
|
46
|
-
error: "Invalid token"
|
|
46
|
+
error: "Invalid token",
|
|
47
47
|
});
|
|
48
48
|
}
|
|
49
49
|
// Get Redis URL from environment
|
|
@@ -51,7 +51,7 @@ async function POST(req, res) {
|
|
|
51
51
|
if (!redisUrl) {
|
|
52
52
|
return res.status(503).json({
|
|
53
53
|
success: false,
|
|
54
|
-
error: "Redis is not configured"
|
|
54
|
+
error: "Redis is not configured",
|
|
55
55
|
});
|
|
56
56
|
}
|
|
57
57
|
const redis = new ioredis_1.default(redisUrl);
|
|
@@ -63,7 +63,7 @@ async function POST(req, res) {
|
|
|
63
63
|
logger.warn(`No pending customer data found for auth_identity_id: ${auth_identity_id}`);
|
|
64
64
|
return res.status(404).json({
|
|
65
65
|
success: false,
|
|
66
|
-
error: "No pending customer data found for this auth_identity_id"
|
|
66
|
+
error: "No pending customer data found for this auth_identity_id",
|
|
67
67
|
});
|
|
68
68
|
}
|
|
69
69
|
const pendingData = JSON.parse(pendingDataStr);
|
|
@@ -71,7 +71,7 @@ async function POST(req, res) {
|
|
|
71
71
|
// Step 2: Check if customer already exists with this email
|
|
72
72
|
if (pendingData.email) {
|
|
73
73
|
const existingCustomers = await customerService.listCustomers({
|
|
74
|
-
email: pendingData.email
|
|
74
|
+
email: pendingData.email,
|
|
75
75
|
});
|
|
76
76
|
if (existingCustomers?.length > 0) {
|
|
77
77
|
// Update existing customer with LINE data
|
|
@@ -84,16 +84,16 @@ async function POST(req, res) {
|
|
|
84
84
|
line_picture_url: pendingData.picture_url,
|
|
85
85
|
line_status_message: pendingData.status_message,
|
|
86
86
|
line_linked_at: new Date().toISOString(),
|
|
87
|
-
auth_identity_id: auth_identity_id
|
|
88
|
-
}
|
|
87
|
+
auth_identity_id: auth_identity_id,
|
|
88
|
+
},
|
|
89
89
|
});
|
|
90
90
|
// Step 3: Update auth identity with customer ID
|
|
91
91
|
const authService = req.scope.resolve(utils_1.Modules.AUTH);
|
|
92
92
|
await authService.updateAuthIdentities({
|
|
93
93
|
id: auth_identity_id,
|
|
94
94
|
app_metadata: {
|
|
95
|
-
customer_id: customer.id
|
|
96
|
-
}
|
|
95
|
+
customer_id: customer.id,
|
|
96
|
+
},
|
|
97
97
|
});
|
|
98
98
|
// Step 4: Delete from Redis after successful creation
|
|
99
99
|
await redis.del(key);
|
|
@@ -102,7 +102,7 @@ async function POST(req, res) {
|
|
|
102
102
|
success: true,
|
|
103
103
|
customer: updated,
|
|
104
104
|
message: "Existing customer linked with LINE account",
|
|
105
|
-
action: "linked"
|
|
105
|
+
action: "linked",
|
|
106
106
|
});
|
|
107
107
|
}
|
|
108
108
|
}
|
|
@@ -116,17 +116,17 @@ async function POST(req, res) {
|
|
|
116
116
|
display_name: pendingData.display_name,
|
|
117
117
|
picture_url: pendingData.picture_url,
|
|
118
118
|
name: pendingData.name,
|
|
119
|
-
auth_identity_id: auth_identity_id
|
|
120
|
-
}
|
|
121
|
-
}
|
|
119
|
+
auth_identity_id: auth_identity_id,
|
|
120
|
+
},
|
|
121
|
+
},
|
|
122
122
|
});
|
|
123
123
|
// Step 4: Update auth identity with customer ID
|
|
124
124
|
const authService = req.scope.resolve(utils_1.Modules.AUTH);
|
|
125
125
|
await authService.updateAuthIdentities({
|
|
126
126
|
id: auth_identity_id,
|
|
127
127
|
app_metadata: {
|
|
128
|
-
customer_id: result.customer.id
|
|
129
|
-
}
|
|
128
|
+
customer_id: result.customer.id,
|
|
129
|
+
},
|
|
130
130
|
});
|
|
131
131
|
// Step 5: Delete from Redis after successful creation
|
|
132
132
|
await redis.del(key);
|
|
@@ -135,14 +135,14 @@ async function POST(req, res) {
|
|
|
135
135
|
success: true,
|
|
136
136
|
customer: result.customer,
|
|
137
137
|
message: "Customer created successfully from LINE data",
|
|
138
|
-
action: "created"
|
|
138
|
+
action: "created",
|
|
139
139
|
});
|
|
140
140
|
}
|
|
141
141
|
catch (error) {
|
|
142
142
|
logger.error("Error creating customer from pending LINE data:", error);
|
|
143
143
|
return res.status(500).json({
|
|
144
144
|
success: false,
|
|
145
|
-
error: error.message || "Failed to create customer"
|
|
145
|
+
error: error.message || "Failed to create customer",
|
|
146
146
|
});
|
|
147
147
|
}
|
|
148
148
|
finally {
|
|
@@ -157,10 +157,10 @@ async function GET(req, res) {
|
|
|
157
157
|
const logger = req.scope.resolve(utils_1.ContainerRegistrationKeys.LOGGER);
|
|
158
158
|
// Extract JWT from Authorization header
|
|
159
159
|
const authHeader = req.headers.authorization;
|
|
160
|
-
if (!authHeader || !authHeader.startsWith(
|
|
160
|
+
if (!authHeader || !authHeader.startsWith("Bearer ")) {
|
|
161
161
|
return res.status(401).json({
|
|
162
162
|
success: false,
|
|
163
|
-
error: "Authorization header with Bearer token is required"
|
|
163
|
+
error: "Authorization header with Bearer token is required",
|
|
164
164
|
});
|
|
165
165
|
}
|
|
166
166
|
const token = authHeader.substring(7);
|
|
@@ -171,7 +171,7 @@ async function GET(req, res) {
|
|
|
171
171
|
if (!decoded || !decoded.auth_identity_id) {
|
|
172
172
|
return res.status(401).json({
|
|
173
173
|
success: false,
|
|
174
|
-
error: "Invalid token: auth_identity_id not found"
|
|
174
|
+
error: "Invalid token: auth_identity_id not found",
|
|
175
175
|
});
|
|
176
176
|
}
|
|
177
177
|
auth_identity_id = decoded.auth_identity_id;
|
|
@@ -180,14 +180,14 @@ async function GET(req, res) {
|
|
|
180
180
|
logger.error("Error decoding JWT:", error);
|
|
181
181
|
return res.status(401).json({
|
|
182
182
|
success: false,
|
|
183
|
-
error: "Invalid token"
|
|
183
|
+
error: "Invalid token",
|
|
184
184
|
});
|
|
185
185
|
}
|
|
186
186
|
const redisUrl = process.env.MEDUSA_REDIS_URL || process.env.REDIS_URL;
|
|
187
187
|
if (!redisUrl) {
|
|
188
188
|
return res.status(503).json({
|
|
189
189
|
success: false,
|
|
190
|
-
error: "Redis is not configured"
|
|
190
|
+
error: "Redis is not configured",
|
|
191
191
|
});
|
|
192
192
|
}
|
|
193
193
|
const redis = new ioredis_1.default(redisUrl);
|
|
@@ -198,25 +198,25 @@ async function GET(req, res) {
|
|
|
198
198
|
return res.json({
|
|
199
199
|
success: true,
|
|
200
200
|
has_pending_data: false,
|
|
201
|
-
message: "No pending customer data found"
|
|
201
|
+
message: "No pending customer data found",
|
|
202
202
|
});
|
|
203
203
|
}
|
|
204
204
|
const pendingData = JSON.parse(pendingDataStr);
|
|
205
205
|
return res.json({
|
|
206
206
|
success: true,
|
|
207
207
|
has_pending_data: true,
|
|
208
|
-
pending_customer: pendingData
|
|
208
|
+
pending_customer: pendingData,
|
|
209
209
|
});
|
|
210
210
|
}
|
|
211
211
|
catch (error) {
|
|
212
212
|
logger.error("Error retrieving pending customer data:", error);
|
|
213
213
|
return res.status(500).json({
|
|
214
214
|
success: false,
|
|
215
|
-
error: "Failed to retrieve pending customer data"
|
|
215
|
+
error: "Failed to retrieve pending customer data",
|
|
216
216
|
});
|
|
217
217
|
}
|
|
218
218
|
finally {
|
|
219
219
|
await redis.quit();
|
|
220
220
|
}
|
|
221
221
|
}
|
|
222
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
222
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2xpbmUtcGVuZGluZy1jdXN0b21lcnMvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUE0QkEsb0JBc0tDO0FBTUQsa0JBMkVDO0FBbFJELHFEQUErRTtBQUMvRSxzREFBNEI7QUFDNUIsZ0VBQStCO0FBQy9CLGtGQUFxRjtBQW1CckY7Ozs7R0FJRztBQUNJLEtBQUssVUFBVSxJQUFJLENBQUMsR0FBa0IsRUFBRSxHQUFtQjtJQUNoRSxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuRSxNQUFNLGVBQWUsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFNUQsd0NBQXdDO0lBQ3hDLE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO0lBQzdDLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7UUFDckQsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUMxQixPQUFPLEVBQUUsS0FBSztZQUNkLEtBQUssRUFBRSxvREFBb0Q7U0FDNUQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEMsSUFBSSxnQkFBd0IsQ0FBQztJQUU3QixJQUFJLENBQUM7UUFDSCxvRUFBb0U7UUFDcEUsTUFBTSxPQUFPLEdBQUcsc0JBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFlLENBQUM7UUFFaEQsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLE9BQU8s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
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.lineCreateCustomerWorkflow = void 0;
|
|
4
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
5
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
6
|
+
const createCustomerStep = (0, workflows_sdk_1.createStep)("create-customer-from-line", async ({ data }, { container }) => {
|
|
7
|
+
const customerService = container.resolve(utils_1.Modules.CUSTOMER);
|
|
8
|
+
// Generate email if not provided
|
|
9
|
+
const email = data.email || `line_${data.line_user_id}@line.me`;
|
|
10
|
+
// Check if customer exists
|
|
11
|
+
const existingCustomers = await customerService.listCustomers({
|
|
12
|
+
email: email,
|
|
13
|
+
});
|
|
14
|
+
let customer;
|
|
15
|
+
if (existingCustomers?.length > 0) {
|
|
16
|
+
customer = existingCustomers[0];
|
|
17
|
+
// Update existing customer with LINE data
|
|
18
|
+
customer = await customerService.updateCustomers(customer.id, {
|
|
19
|
+
first_name: data.name?.split(" ")[0] || data.display_name,
|
|
20
|
+
last_name: data.name?.split(" ").slice(1).join(" ") || "",
|
|
21
|
+
metadata: {
|
|
22
|
+
...customer.metadata,
|
|
23
|
+
line_user_id: data.line_user_id,
|
|
24
|
+
line_display_name: data.display_name,
|
|
25
|
+
line_picture_url: data.picture_url,
|
|
26
|
+
line_linked_at: new Date().toISOString(),
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
// Create new customer
|
|
32
|
+
customer = await customerService.createCustomers({
|
|
33
|
+
email: email,
|
|
34
|
+
first_name: data.name?.split(" ")[0] || data.display_name,
|
|
35
|
+
last_name: data.name?.split(" ").slice(1).join(" ") || "",
|
|
36
|
+
metadata: {
|
|
37
|
+
line_user_id: data.line_user_id,
|
|
38
|
+
line_display_name: data.display_name,
|
|
39
|
+
line_picture_url: data.picture_url,
|
|
40
|
+
line_linked_at: new Date().toISOString(),
|
|
41
|
+
auth_identity_id: data.auth_identity_id,
|
|
42
|
+
},
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
return new workflows_sdk_1.StepResponse({ customer });
|
|
46
|
+
});
|
|
47
|
+
exports.lineCreateCustomerWorkflow = (0, workflows_sdk_1.createWorkflow)("line-create-customer", ({ data }) => {
|
|
48
|
+
const { customer } = createCustomerStep({ data });
|
|
49
|
+
return new workflows_sdk_1.WorkflowResponse({
|
|
50
|
+
customer,
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1jcmVhdGUtY3VzdG9tZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2xpbmUtY3JlYXRlLWN1c3RvbWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUsyQztBQUMzQyxxREFBb0Q7QUFXcEQsTUFBTSxrQkFBa0IsR0FBRyxJQUFBLDBCQUFVLEVBQ25DLDJCQUEyQixFQUMzQixLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQThCLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO0lBQzVELE1BQU0sZUFBZSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsZUFBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRTVELGlDQUFpQztJQUNqQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxJQUFJLFFBQVEsSUFBSSxDQUFDLFlBQVksVUFBVSxDQUFDO0lBRWhFLDJCQUEyQjtJQUMzQixNQUFNLGlCQUFpQixHQUFHLE1BQU0sZUFBZSxDQUFDLGFBQWEsQ0FBQztRQUM1RCxLQUFLLEVBQUUsS0FBSztLQUNiLENBQUMsQ0FBQztJQUVILElBQUksUUFBUSxDQUFDO0lBRWIsSUFBSSxpQkFBaUIsRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDbEMsUUFBUSxHQUFHLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRWhDLDBDQUEwQztRQUMxQyxRQUFRLEdBQUcsTUFBTSxlQUFlLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUU7WUFDNUQsVUFBVSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxZQUFZO1lBQ3pELFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUU7WUFDekQsUUFBUSxFQUFFO2dCQUNSLEdBQUcsUUFBUSxDQUFDLFFBQVE7Z0JBQ3BCLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtnQkFDL0IsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLFlBQVk7Z0JBQ3BDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxXQUFXO2dCQUNsQyxjQUFjLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUU7YUFDekM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO1NBQU0sQ0FBQztRQUNOLHNCQUFzQjtRQUN0QixRQUFRLEdBQUcsTUFBTSxlQUFlLENBQUMsZUFBZSxDQUFDO1lBQy9DLEtBQUssRUFBRSxLQUFLO1lBQ1osVUFBVSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxZQUFZO1lBQ3pELFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUU7WUFDekQsUUFBUSxFQUFFO2dCQUNSLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtnQkFDL0IsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLFlBQVk7Z0JBQ3BDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxXQUFXO2dCQUNsQyxjQUFjLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUU7Z0JBQ3hDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7YUFDeEM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsT0FBTyxJQUFJLDRCQUFZLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0FBQ3hDLENBQUMsQ0FDRixDQUFDO0FBRVcsUUFBQSwwQkFBMEIsR0FBRyxJQUFBLDhCQUFjLEVBQ3RELHNCQUFzQixFQUN0QixDQUFDLEVBQUUsSUFBSSxFQUE4QixFQUFFLEVBQUU7SUFDdkMsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLGtCQUFrQixDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUVsRCxPQUFPLElBQUksZ0NBQWdCLENBQUM7UUFDMUIsUUFBUTtLQUNULENBQUMsQ0FBQztBQUNMLENBQUMsQ0FDRixDQUFDIn0=
|