Skip to content

Commit

Permalink
fix: remove dependency from current customer token (#757) (#758)
Browse files Browse the repository at this point in the history
* fix: remove dependency from current customer token

* fix: remove storefrontLoginToken
  • Loading branch information
bc-marco authored Sep 22, 2023
1 parent 6dbd000 commit 91ce18d
Show file tree
Hide file tree
Showing 18 changed files with 89 additions and 142 deletions.
8 changes: 1 addition & 7 deletions apps/storefront/src/components/HeadlessController.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -222,18 +222,12 @@ export default function HeadlessController({
salesRepCompanyId: salesRepCompanyIdRef.current,
B3UserId: B3UserIdRef.current,
}),
logInWithStorefrontToken: (customerJWTToken: string) =>
getCurrentCustomerInfo(dispatch, customerJWTToken),
graphqlBCProxy: B3Request.graphqlBCProxy,
loginWithB2BStorefrontToken: async (
b2bStorefrontJWTToken: string
) => {
B3SStorage.set('B2BToken', b2bStorefrontJWTToken)
await getCurrentCustomerInfo(
dispatch,
undefined,
b2bStorefrontJWTToken
)
await getCurrentCustomerInfo(dispatch, b2bStorefrontJWTToken)
},
},
shoppingList: {
Expand Down
3 changes: 0 additions & 3 deletions apps/storefront/src/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,6 @@ declare interface Window {
getB2BToken: () => string
setMasqueradeCompany: (companyId: number) => Promise<void>
endMasquerade: () => Promise<void>
logInWithStorefrontToken: (
customerJWTToken: string
) => Promise<{ role: number; userType: string } | undefined>
graphqlBCProxy: typeof import('@/shared/service/request/b3Fetch').default.graphqlBCProxy
loginWithB2BStorefrontToken: (
b2bStorefrontJWTToken: string
Expand Down
33 changes: 17 additions & 16 deletions apps/storefront/src/pages/login/Login.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,12 @@ import {
getBCForcePasswordReset,
superAdminEndMasquerade,
} from '@/shared/service/b2b'
import {
bcLogin,
// bcLogoutLogin,
} from '@/shared/service/bc'
import { b2bLogin, customerLoginAPI } from '@/shared/service/bc'
import {
B3SStorage,
clearCurrentCustomerInfo,
getCurrentCustomerInfo,
storeHash,
} from '@/utils'

import LoginWidget from './component/LoginWidget'
Expand Down Expand Up @@ -70,6 +68,7 @@ export default function Login(props: RegisteredProps) {
const [flag, setLoginFlag] = useState<string>('')
const [loginAccount, setLoginAccount] = useState<LoginConfig>({
emailAddress: '',
password: '',
})
const location = useLocation()

Expand Down Expand Up @@ -243,21 +242,23 @@ export default function Login(props: RegisteredProps) {
}
} else {
try {
const getBCFieldsValue = {
const loginData = {
email: data.emailAddress,
pass: data.password,
password: data.password,
storeHash: storeHash as string,
channelId: B3SStorage.get('B3channelId'),
}
const { data: bcData, errors } = await bcLogin(getBCFieldsValue)
const {
login: {
result: { token, storefrontLoginToken },
errors,
},
} = await b2bLogin({ loginData })

if (bcData?.login?.customer) {
B3SStorage.set('loginCustomer', {
emailAddress: bcData.login.customer.email,
phoneNumber: bcData.login.customer.phone,
...bcData.login.customer,
})
}
B3SStorage.set('B2BToken', token)
customerLoginAPI(storefrontLoginToken)

if (errors?.length || !bcData) {
if (errors?.length || !token) {
if (errors?.length) {
const { message } = errors[0]
if (
Expand All @@ -271,7 +272,7 @@ export default function Login(props: RegisteredProps) {
}
getforcePasswordReset(data.emailAddress)
} else {
const info = await getCurrentCustomerInfo(dispatch)
const info = await getCurrentCustomerInfo(dispatch, token)

if (info?.userType === 3 && info?.role === 3) {
navigate('/dashboard')
Expand Down
2 changes: 1 addition & 1 deletion apps/storefront/src/pages/login/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ export interface QuoteConfig {

export type LoginConfig = {
emailAddress: string
password?: string
password: string
}

export interface LoginInfoInit {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ export const updateB2BAccountSettings = (
export const updateBCAccountSettings = (
data: CustomFieldItems
): CustomFieldItems =>
B3Request.graphqlB2BWithBCCustomerToken({
B3Request.graphqlB2B({
query: updateCustomerAccountSettings(data),
})

Expand All @@ -74,6 +74,6 @@ export const getB2BAccountSettings = (
})

export const getBCAccountSettings = (): CustomFieldItems =>
B3Request.graphqlB2BWithBCCustomerToken({
B3Request.graphqlB2B({
query: customerAccountSettings(),
})
8 changes: 4 additions & 4 deletions apps/storefront/src/shared/service/b2b/graphql/address.ts
Original file line number Diff line number Diff line change
Expand Up @@ -269,7 +269,7 @@ export const getB2BAddressConfig = (): CustomFieldItems =>
export const getBCCustomerAddress = (
data: CustomFieldItems = {}
): CustomFieldItems =>
B3Request.graphqlB2BWithBCCustomerToken({
B3Request.graphqlB2B({
query: getCustomerAddress(data),
})

Expand All @@ -283,7 +283,7 @@ export const deleteB2BAddress = (
export const deleteBCCustomerAddress = (
data: CustomFieldItems = {}
): CustomFieldItems =>
B3Request.graphqlB2BWithBCCustomerToken({
B3Request.graphqlB2B({
query: deleteCustomerAddress(data),
})

Expand All @@ -304,12 +304,12 @@ export const createB2BAddress = (
export const createBcAddress = (
data: CustomFieldItems = {}
): CustomFieldItems =>
B3Request.graphqlB2BWithBCCustomerToken({
B3Request.graphqlB2B({
query: createCustomerAddress(data),
})
export const updateBcAddress = (
data: CustomFieldItems = {}
): CustomFieldItems =>
B3Request.graphqlB2BWithBCCustomerToken({
B3Request.graphqlB2B({
query: updateCustomerAddress(data),
})
6 changes: 3 additions & 3 deletions apps/storefront/src/shared/service/b2b/graphql/orders.ts
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,7 @@ export const getB2BAllOrders = (data: CustomFieldItems): CustomFieldItems =>
})

export const getBCAllOrders = (data: CustomFieldItems): CustomFieldItems =>
B3Request.graphqlB2BWithBCCustomerToken({
B3Request.graphqlB2B({
query: allOrders(data, 'customerOrders'),
})

Expand All @@ -208,7 +208,7 @@ export const getB2BOrderDetails = (id: number): CustomFieldItems =>
})

export const getBCOrderDetails = (id: number): CustomFieldItems =>
B3Request.graphqlB2BWithBCCustomerToken({
B3Request.graphqlB2B({
query: orderDetail(id, 'customerOrder'),
})

Expand All @@ -218,7 +218,7 @@ export const getOrderStatusType = (): CustomFieldItems =>
})

export const getBcOrderStatusType = (): CustomFieldItems =>
B3Request.graphqlB2BWithBCCustomerToken({
B3Request.graphqlB2B({
query: getOrderStatusTypeQl('bcOrderStatuses'),
})

Expand Down
4 changes: 2 additions & 2 deletions apps/storefront/src/shared/service/b2b/graphql/product.ts
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ export const searchBcProducts = (
export const getBcVariantInfoBySkus = (
data: CustomFieldItems = {}
): CustomFieldItems =>
B3Request.graphqlB2BWithBCCustomerToken({
B3Request.graphqlB2B({
query: getVariantInfoBySkus(data),
})

Expand All @@ -155,7 +155,7 @@ export const B2BProductsBulkUploadCSV = (
export const BcProductsBulkUploadCSV = (
data: CustomFieldItems = {}
): CustomFieldItems =>
B3Request.graphqlB2BWithBCCustomerToken({
B3Request.graphqlB2B({
query: productsBulkUploadCSV(data),
})

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,6 @@ export const getOrderedProducts = (data: CustomFieldItems): CustomFieldItems =>
export const getBcOrderedProducts = (
data: CustomFieldItems
): CustomFieldItems =>
B3Request.graphqlB2BWithBCCustomerToken({
B3Request.graphqlB2B({
query: orderedProducts(data),
})
8 changes: 4 additions & 4 deletions apps/storefront/src/shared/service/b2b/graphql/quote.ts
Original file line number Diff line number Diff line change
Expand Up @@ -345,7 +345,7 @@ const getCreatedByUser = (companyId: number, module: number, fn: string) => `{
}`

export const getBCCustomerAddresses = (): CustomFieldItems =>
B3Request.graphqlB2BWithBCCustomerToken({
B3Request.graphqlB2B({
query: getCustomerAddresses(),
})

Expand All @@ -360,7 +360,7 @@ export const getB2BQuotesList = (data: CustomFieldItems): CustomFieldItems =>
})

export const getBCQuotesList = (data: CustomFieldItems): CustomFieldItems =>
B3Request.graphqlB2BWithBCCustomerToken({
B3Request.graphqlB2B({
query: getQuotesList(data, 'bc'),
})

Expand All @@ -373,7 +373,7 @@ export const createQuote = (data: CustomFieldItems): CustomFieldItems =>
)

export const createBCQuote = (data: CustomFieldItems): CustomFieldItems =>
B3Request.graphqlB2BWithBCCustomerToken(
B3Request.graphqlB2B(
{
query: quoteCreate(data),
},
Expand All @@ -386,7 +386,7 @@ export const updateB2BQuote = (data: CustomFieldItems): CustomFieldItems =>
})

export const updateBCQuote = (data: CustomFieldItems): CustomFieldItems =>
B3Request.graphqlB2BWithBCCustomerToken({
B3Request.graphqlB2B({
query: quoteUpdate(data),
})

Expand Down
6 changes: 0 additions & 6 deletions apps/storefront/src/shared/service/b2b/graphql/register.ts
Original file line number Diff line number Diff line change
Expand Up @@ -174,12 +174,6 @@ const getStoreChannelId = () => `{
}
}`

// const getB2bLogin = () => `mutation Login() {
// login(email: $email, password: $pass) {
// result
// }
// }`

export const getB2BAccountFormFields = (type: number): CustomFieldItems =>
B3Request.graphqlB2B({
query: getAccountFormFields(type),
Expand Down
18 changes: 9 additions & 9 deletions apps/storefront/src/shared/service/b2b/graphql/shoppingList.ts
Original file line number Diff line number Diff line change
Expand Up @@ -481,14 +481,14 @@ export const deleteB2BShoppingListItem = (
export const getBcShoppingList = (
data: CustomFieldItems = {}
): CustomFieldItems =>
B3Request.graphqlB2BWithBCCustomerToken({
B3Request.graphqlB2B({
query: getCustomerShoppingLists(data),
})

export const createBcShoppingList = (
data: CustomFieldItems = {}
): CustomFieldItems =>
B3Request.graphqlB2BWithBCCustomerToken({
B3Request.graphqlB2B({
query: createOrUpdateCustomerShoppingList(
'customerShoppingListsCreate',
data
Expand All @@ -498,7 +498,7 @@ export const createBcShoppingList = (
export const updateBcShoppingList = (
data: CustomFieldItems = {}
): CustomFieldItems =>
B3Request.graphqlB2BWithBCCustomerToken({
B3Request.graphqlB2B({
query: createOrUpdateCustomerShoppingList(
'customerShoppingListsUpdate',
data
Expand All @@ -508,43 +508,43 @@ export const updateBcShoppingList = (
export const duplicateBcShoppingList = (
data: CustomFieldItems = {}
): CustomFieldItems =>
B3Request.graphqlB2BWithBCCustomerToken({
B3Request.graphqlB2B({
query: createOrUpdateCustomerShoppingList(
'customerShoppingListsDuplicate',
data
),
})

export const deleteBcShoppingList = (id: number): CustomFieldItems =>
B3Request.graphqlB2BWithBCCustomerToken({
B3Request.graphqlB2B({
query: deleteCustomerShoppingList(id),
})

export const getBcShoppingListDetails = (
data: CustomFieldItems = {}
): CustomFieldItems =>
B3Request.graphqlB2BWithBCCustomerToken({
B3Request.graphqlB2B({
query: getCustomerShoppingListDetails(data),
})

export const addProductToBcShoppingList = (
data: CustomFieldItems = {}
): CustomFieldItems =>
B3Request.graphqlB2BWithBCCustomerToken({
B3Request.graphqlB2B({
query: addItemsToBcShoppingList(data),
})

export const updateBcShoppingListsItem = (
data: CustomFieldItems = {}
): CustomFieldItems =>
B3Request.graphqlB2BWithBCCustomerToken({
B3Request.graphqlB2B({
query: updateCustomerShoppingListsItem(data),
})

export const deleteBcShoppingListItem = (
data: CustomFieldItems = {}
): CustomFieldItems =>
B3Request.graphqlB2BWithBCCustomerToken({
B3Request.graphqlB2B({
query: deleteCustomerShoppingListItem(data),
})

Expand Down
3 changes: 3 additions & 0 deletions apps/storefront/src/shared/service/bc/api/login.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,6 @@ export const getBCForgotPassword = (data: CustomFieldItems): CustomFieldItems =>

export const getBcCurrentJWT = (data: CustomFieldItems) =>
B3Request.get(`${bcBaseUrl()}/customer/current.jwt`, RequestType.BCRest, data)

export const customerLoginAPI = (storefrontLoginToken: string) =>
fetch(`${bcBaseUrl()}/login/token/${storefrontLoginToken}`, { method: 'GET' })
34 changes: 34 additions & 0 deletions apps/storefront/src/shared/service/bc/graphql/login.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,24 @@
import B3Request from '../../request/b3Fetch'

interface LoginData {
loginData: {
storeHash: string
email: string
password: string
channelId: number
}
}

interface UserLoginResult {
login: {
result: {
token: string
storefrontLoginToken: string
}
errors?: { message: string }[]
}
}

const getbcLogin = () => `mutation Login($email: String!, $pass: String!) {
login(email: $email, password: $pass) {
result,
Expand All @@ -20,6 +39,21 @@ const logoutLogin = () => `mutation Logout {
}
}`

const getB2bLogin = `mutation Login($loginData: UserLoginType) {
login(loginData: $loginData) {
result{
storefrontLoginToken
token
}
}
}`

export const b2bLogin = (variables: LoginData): Promise<UserLoginResult> =>
B3Request.graphqlB2B({
query: getB2bLogin,
variables,
})

export const bcLogin = (data: CustomFieldItems): CustomFieldItems =>
B3Request.graphqlBC({
query: getbcLogin(),
Expand Down
2 changes: 1 addition & 1 deletion apps/storefront/src/shared/service/bc/graphql/user.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ const getCustomer = () => `query customer {
}`

const getCustomerInfo = (): CustomFieldItems =>
B3Request.graphqlBC({
B3Request.graphqlBCProxy({
query: getCustomer(),
})

Expand Down
Loading

0 comments on commit 91ce18d

Please sign in to comment.