hotfix: customer address updates + mongo ids (#153)
This commit is contained in:
1 parent
5c98624c1b
commit
103749eb65
16 files changed
+63
-439
No files matched your search
@@ -39,7 +39,7 @@ describe("POST /admin/users", () => {
|
||||
})
|
||||
|
||||
it("returns the user", () => {
|
||||
expect(subject.body.user._id).toEqual(IdMap.getId("test-user"))
|
||||
expect(subject.body.user.id).toEqual(IdMap.getId("test-user"))
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ describe("GET /admin/users/:id", () => {
|
||||
})
|
||||
|
||||
it("returns the user", () => {
|
||||
expect(subject.body.user._id).toEqual(IdMap.getId("test-user"))
|
||||
expect(subject.body.user.id).toEqual(IdMap.getId("test-user"))
|
||||
})
|
||||
})
|
||||
})
|
||||
@@ -42,7 +42,7 @@ describe("POST /admin/users/reset-password", () => {
|
||||
})
|
||||
|
||||
it("returns updated user", () => {
|
||||
expect(subject.body.user._id).toEqual(IdMap.getId("vandijk"))
|
||||
expect(subject.body.user.id).toEqual(IdMap.getId("vandijk"))
|
||||
})
|
||||
it("returns 200", () => {
|
||||
expect(subject.status).toEqual(200)
|
||||
|
||||
@@ -17,7 +17,7 @@ export default async (req, res) => {
|
||||
const user = await userService.retrieveByEmail(value.email)
|
||||
|
||||
// Should call a email service provider that sends the token to the user
|
||||
await userService.generateResetPasswordToken(user._id)
|
||||
await userService.generateResetPasswordToken(user.id)
|
||||
|
||||
res.sendStatus(204)
|
||||
} catch (error) {
|
||||
|
||||
@@ -20,12 +20,12 @@ export default async (req, res) => {
|
||||
let user = await userService.retrieveByEmail(value.email)
|
||||
|
||||
const decodedToken = await jwt.verify(value.token, user.password_hash)
|
||||
if (!decodedToken || decodedToken.user_id !== user._id) {
|
||||
if (!decodedToken || decodedToken.user_id !== user.id) {
|
||||
res.status(401).send("Invalid or expired password reset token")
|
||||
return
|
||||
}
|
||||
|
||||
const data = await userService.setPassword(user._id, value.password)
|
||||
const data = await userService.setPassword(user.id, value.password)
|
||||
|
||||
res.status(200).json({ user: data })
|
||||
} catch (error) {
|
||||
|
||||
@@ -28,17 +28,16 @@ export default async (req, res) => {
|
||||
|
||||
// Add JWT to cookie
|
||||
req.session.jwt = jwt.sign(
|
||||
{ customer_id: result.customer._id },
|
||||
{ customer_id: result.customer.id },
|
||||
config.jwtSecret,
|
||||
{
|
||||
expiresIn: "30d",
|
||||
}
|
||||
)
|
||||
|
||||
const customer = await customerService.retrieve(result.customer.id, [
|
||||
"orders",
|
||||
"orders.items",
|
||||
])
|
||||
const customer = await customerService.retrieve(result.customer.id, {
|
||||
relations: ["orders", "orders.items"],
|
||||
})
|
||||
|
||||
res.json({ customer })
|
||||
}
|
||||
@@ -2,11 +2,9 @@ export default async (req, res) => {
|
||||
try {
|
||||
if (req.user && req.user.customer_id) {
|
||||
const customerService = req.scope.resolve("customerService")
|
||||
const customer = await customerService.retrieve(req.user.customer_id, [
|
||||
"shipping_addresses",
|
||||
"orders",
|
||||
"orders.items",
|
||||
])
|
||||
const customer = await customerService.retrieve(req.user.customer_id, {
|
||||
relations: ["shipping_addresses", "orders", "orders.items"],
|
||||
})
|
||||
res.json({ customer })
|
||||
} else {
|
||||
res.sendStatus(401)
|
||||
|
||||
@@ -34,7 +34,7 @@ describe("POST /store/customers", () => {
|
||||
expect(CustomerServiceMock.retrieve).toHaveBeenCalledTimes(1)
|
||||
expect(CustomerServiceMock.retrieve).toHaveBeenCalledWith(
|
||||
IdMap.getId("lebron"),
|
||||
["orders", "shipping_addresses"]
|
||||
{ relations: ["orders", "shipping_addresses"] }
|
||||
)
|
||||
})
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ describe("POST /store/customers/:id", () => {
|
||||
expect(CustomerServiceMock.retrieve).toHaveBeenCalledTimes(1)
|
||||
expect(CustomerServiceMock.retrieve).toHaveBeenCalledWith(
|
||||
IdMap.getId("lebron"),
|
||||
["orders", "shipping_addresses"]
|
||||
{ relations: ["orders", "shipping_addresses"] }
|
||||
)
|
||||
})
|
||||
|
||||
|
||||
@@ -22,18 +22,13 @@ export default async (req, res) => {
|
||||
let customer = await customerService.create(value)
|
||||
|
||||
// Add JWT to cookie
|
||||
req.session.jwt = jwt.sign(
|
||||
{ customer_id: customer._id },
|
||||
config.jwtSecret,
|
||||
{
|
||||
expiresIn: "30d",
|
||||
}
|
||||
)
|
||||
req.session.jwt = jwt.sign({ customer_id: customer.id }, config.jwtSecret, {
|
||||
expiresIn: "30d",
|
||||
})
|
||||
|
||||
customer = await customerService.retrieve(customer.id, [
|
||||
"orders",
|
||||
"shipping_addresses",
|
||||
])
|
||||
customer = await customerService.retrieve(customer.id, {
|
||||
relations: ["orders", "shipping_addresses"],
|
||||
})
|
||||
|
||||
res.status(200).json({ customer })
|
||||
} catch (err) {
|
||||
|
||||
@@ -19,10 +19,9 @@ export default async (req, res) => {
|
||||
const customerService = req.scope.resolve("customerService")
|
||||
let customer = await customerService.update(id, value)
|
||||
|
||||
customer = await customerService.retrieve(customer.id, [
|
||||
"orders",
|
||||
"shipping_addresses",
|
||||
])
|
||||
customer = await customerService.retrieve(customer.id, {
|
||||
relations: ["orders", "shipping_addresses"],
|
||||
})
|
||||
|
||||
res.status(200).json({ customer })
|
||||
} catch (err) {
|
||||
|
||||
@@ -4,22 +4,22 @@ import _ from "lodash"
|
||||
|
||||
export const users = {
|
||||
testUser: {
|
||||
_id: IdMap.getId("test-user"),
|
||||
id: IdMap.getId("test-user"),
|
||||
email: "oliver@test.dk",
|
||||
password_hash: "hashed123456789",
|
||||
},
|
||||
vanDijk: {
|
||||
_id: IdMap.getId("vandijk"),
|
||||
id: IdMap.getId("vandijk"),
|
||||
email: "vandijk@test.dk",
|
||||
password_hash: "hashed123456789",
|
||||
},
|
||||
jwtUser: {
|
||||
_id: "test-user-id",
|
||||
id: "test-user-id",
|
||||
email: "oliver@test.dk",
|
||||
password_hash: "123456789hash",
|
||||
},
|
||||
deleteUser: {
|
||||
_id: IdMap.getId("delete-user"),
|
||||
id: IdMap.getId("delete-user"),
|
||||
email: "oliver@deletetest.dk",
|
||||
password_hash: "hashed123456789",
|
||||
},
|
||||
@@ -86,7 +86,7 @@ export const UserServiceMock = {
|
||||
retrieveByEmail: jest.fn().mockImplementation(email => {
|
||||
if (email === "vandijk@test.dk") {
|
||||
return Promise.resolve({
|
||||
_id: IdMap.getId("vandijk"),
|
||||
id: IdMap.getId("vandijk"),
|
||||
email,
|
||||
password_hash: "1234",
|
||||
})
|
||||
|
||||
@@ -269,7 +269,7 @@ describe("CustomerService", () => {
|
||||
last_name: "Stark",
|
||||
address_1: "Hollywood Boulevard 1",
|
||||
city: "Los Angeles",
|
||||
country_code: "US",
|
||||
country_code: "us",
|
||||
postal_code: "90046",
|
||||
phone: "+1 (222) 333 4444",
|
||||
}
|
||||
@@ -282,7 +282,7 @@ describe("CustomerService", () => {
|
||||
last_name: "Stark",
|
||||
address_1: "Hollywood Boulevard 1",
|
||||
city: "Los Angeles",
|
||||
country_code: "US",
|
||||
country_code: "us",
|
||||
postal_code: "90046",
|
||||
phone: "+1 (222) 333 4444",
|
||||
})
|
||||
|
||||
@@ -326,6 +326,8 @@ class CustomerService extends BaseService {
|
||||
return this.atomicPhase_(async manager => {
|
||||
const addressRepo = manager.getCustomRepository(this.addressRepository_)
|
||||
|
||||
address.country_code = address.country_code.toLowerCase()
|
||||
|
||||
const toUpdate = await addressRepo.findOne({
|
||||
where: { id: addressId, customer_id: customerId },
|
||||
})
|
||||
@@ -364,6 +366,8 @@ class CustomerService extends BaseService {
|
||||
this.addressRepository_
|
||||
)
|
||||
|
||||
address.country_code = address.country_code.toLowerCase()
|
||||
|
||||
const customer = await this.retrieve(customerId, {
|
||||
relations: ["shipping_addresses"],
|
||||
})
|
||||
@@ -371,7 +375,7 @@ class CustomerService extends BaseService {
|
||||
|
||||
let shouldAdd = !customer.shipping_addresses.find(
|
||||
a =>
|
||||
a.country_code === address.country_code &&
|
||||
a.country_code.toLowerCase() === address.country_code.toLowerCase() &&
|
||||
a.address_1 === address.address_1 &&
|
||||
a.address_2 === address.address_2 &&
|
||||
a.city === address.city &&
|
||||
|
||||
@@ -1047,7 +1047,7 @@ class OrderService extends BaseService {
|
||||
async getFulfillmentItems_(order, items, transformer) {
|
||||
const toReturn = await Promise.all(
|
||||
items.map(async ({ item_id, quantity }) => {
|
||||
const item = order.items.find(i => i._id.equals(item_id))
|
||||
const item = order.items.find(i => i.id.equals(item_id))
|
||||
return transformer(item, quantity)
|
||||
})
|
||||
)
|
||||
|
||||
Reference in new issue
Block a user