@faststore/api 3.44.0 → 3.45.0
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.
- package/dist/cjs/package.json +1 -1
- package/dist/cjs/src/__generated__/schema.d.ts +742 -0
- package/dist/cjs/src/__generated__/schema.js +1 -0
- package/dist/cjs/src/__generated__/schema.js.map +1 -1
- package/dist/cjs/src/index.d.ts +5 -1
- package/dist/cjs/src/platforms/errors.d.ts +5 -1
- package/dist/cjs/src/platforms/errors.js +9 -1
- package/dist/cjs/src/platforms/errors.js.map +1 -1
- package/dist/cjs/src/platforms/vtex/clients/commerce/Contract.d.ts +7 -0
- package/dist/cjs/src/platforms/vtex/clients/commerce/Contract.js +3 -0
- package/dist/cjs/src/platforms/vtex/clients/commerce/Contract.js.map +1 -0
- package/dist/cjs/src/platforms/vtex/clients/commerce/index.d.ts +39 -1
- package/dist/cjs/src/platforms/vtex/clients/commerce/index.js +117 -4
- package/dist/cjs/src/platforms/vtex/clients/commerce/index.js.map +1 -1
- package/dist/cjs/src/platforms/vtex/clients/commerce/types/Unit.d.ts +18 -0
- package/dist/cjs/src/platforms/vtex/clients/commerce/types/Unit.js +3 -0
- package/dist/cjs/src/platforms/vtex/clients/commerce/types/Unit.js.map +1 -0
- package/dist/cjs/src/platforms/vtex/clients/commerce/types/VtexId.d.ts +11 -0
- package/dist/cjs/src/platforms/vtex/clients/commerce/types/VtexId.js +3 -0
- package/dist/cjs/src/platforms/vtex/clients/commerce/types/VtexId.js.map +1 -0
- package/dist/cjs/src/platforms/vtex/clients/index.d.ts +35 -0
- package/dist/cjs/src/platforms/vtex/index.d.ts +6 -1
- package/dist/cjs/src/platforms/vtex/index.js +3 -0
- package/dist/cjs/src/platforms/vtex/index.js.map +1 -1
- package/dist/cjs/src/platforms/vtex/resolvers/cancelOrder.d.ts +3 -0
- package/dist/cjs/src/platforms/vtex/resolvers/cancelOrder.js +13 -0
- package/dist/cjs/src/platforms/vtex/resolvers/cancelOrder.js.map +1 -0
- package/dist/cjs/src/platforms/vtex/resolvers/mutation.d.ts +2 -1
- package/dist/cjs/src/platforms/vtex/resolvers/mutation.js +2 -0
- package/dist/cjs/src/platforms/vtex/resolvers/mutation.js.map +1 -1
- package/dist/cjs/src/platforms/vtex/resolvers/query.d.ts +3 -1
- package/dist/cjs/src/platforms/vtex/resolvers/query.js +28 -0
- package/dist/cjs/src/platforms/vtex/resolvers/query.js.map +1 -1
- package/dist/cjs/src/platforms/vtex/resolvers/userOrder.d.ts +7 -0
- package/dist/cjs/src/platforms/vtex/resolvers/userOrder.js +161 -0
- package/dist/cjs/src/platforms/vtex/resolvers/userOrder.js.map +1 -0
- package/dist/cjs/src/platforms/vtex/resolvers/validateSession.d.ts +1 -1
- package/dist/cjs/src/platforms/vtex/resolvers/validateSession.js +43 -7
- package/dist/cjs/src/platforms/vtex/resolvers/validateSession.js.map +1 -1
- package/dist/cjs/src/platforms/vtex/utils/cookies.d.ts +2 -0
- package/dist/cjs/src/platforms/vtex/utils/cookies.js +23 -1
- package/dist/cjs/src/platforms/vtex/utils/cookies.js.map +1 -1
- package/dist/cjs/src/typeDefs/mutation.graphql +4 -0
- package/dist/cjs/src/typeDefs/query.graphql +46 -0
- package/dist/cjs/src/typeDefs/session.graphql +16 -0
- package/dist/cjs/src/typeDefs/userOrder.graphql +714 -0
- package/dist/esm/package.json +1 -1
- package/dist/esm/src/__generated__/schema.d.ts +742 -0
- package/dist/esm/src/__generated__/schema.js +1 -0
- package/dist/esm/src/__generated__/schema.js.map +1 -1
- package/dist/esm/src/index.d.ts +5 -1
- package/dist/esm/src/platforms/errors.d.ts +5 -1
- package/dist/esm/src/platforms/errors.js +6 -0
- package/dist/esm/src/platforms/errors.js.map +1 -1
- package/dist/esm/src/platforms/vtex/clients/commerce/Contract.d.ts +7 -0
- package/dist/esm/src/platforms/vtex/clients/commerce/Contract.js +2 -0
- package/dist/esm/src/platforms/vtex/clients/commerce/Contract.js.map +1 -0
- package/dist/esm/src/platforms/vtex/clients/commerce/index.d.ts +39 -1
- package/dist/esm/src/platforms/vtex/clients/commerce/index.js +118 -5
- package/dist/esm/src/platforms/vtex/clients/commerce/index.js.map +1 -1
- package/dist/esm/src/platforms/vtex/clients/commerce/types/Unit.d.ts +18 -0
- package/dist/esm/src/platforms/vtex/clients/commerce/types/Unit.js +2 -0
- package/dist/esm/src/platforms/vtex/clients/commerce/types/Unit.js.map +1 -0
- package/dist/esm/src/platforms/vtex/clients/commerce/types/VtexId.d.ts +11 -0
- package/dist/esm/src/platforms/vtex/clients/commerce/types/VtexId.js +2 -0
- package/dist/esm/src/platforms/vtex/clients/commerce/types/VtexId.js.map +1 -0
- package/dist/esm/src/platforms/vtex/clients/index.d.ts +35 -0
- package/dist/esm/src/platforms/vtex/index.d.ts +6 -1
- package/dist/esm/src/platforms/vtex/index.js +3 -0
- package/dist/esm/src/platforms/vtex/index.js.map +1 -1
- package/dist/esm/src/platforms/vtex/resolvers/cancelOrder.d.ts +3 -0
- package/dist/esm/src/platforms/vtex/resolvers/cancelOrder.js +9 -0
- package/dist/esm/src/platforms/vtex/resolvers/cancelOrder.js.map +1 -0
- package/dist/esm/src/platforms/vtex/resolvers/mutation.d.ts +2 -1
- package/dist/esm/src/platforms/vtex/resolvers/mutation.js +2 -0
- package/dist/esm/src/platforms/vtex/resolvers/mutation.js.map +1 -1
- package/dist/esm/src/platforms/vtex/resolvers/query.d.ts +3 -1
- package/dist/esm/src/platforms/vtex/resolvers/query.js +29 -1
- package/dist/esm/src/platforms/vtex/resolvers/query.js.map +1 -1
- package/dist/esm/src/platforms/vtex/resolvers/userOrder.d.ts +7 -0
- package/dist/esm/src/platforms/vtex/resolvers/userOrder.js +158 -0
- package/dist/esm/src/platforms/vtex/resolvers/userOrder.js.map +1 -0
- package/dist/esm/src/platforms/vtex/resolvers/validateSession.d.ts +1 -1
- package/dist/esm/src/platforms/vtex/resolvers/validateSession.js +43 -7
- package/dist/esm/src/platforms/vtex/resolvers/validateSession.js.map +1 -1
- package/dist/esm/src/platforms/vtex/utils/cookies.d.ts +2 -0
- package/dist/esm/src/platforms/vtex/utils/cookies.js +20 -0
- package/dist/esm/src/platforms/vtex/utils/cookies.js.map +1 -1
- package/dist/esm/src/typeDefs/mutation.graphql +4 -0
- package/dist/esm/src/typeDefs/query.graphql +46 -0
- package/dist/esm/src/typeDefs/session.graphql +16 -0
- package/dist/esm/src/typeDefs/userOrder.graphql +714 -0
- package/package.json +2 -2
- package/src/__generated__/schema.ts +816 -0
- package/src/platforms/errors.ts +14 -1
- package/src/platforms/vtex/clients/commerce/Contract.ts +7 -0
- package/src/platforms/vtex/clients/commerce/index.ts +218 -8
- package/src/platforms/vtex/clients/commerce/types/Unit.ts +19 -0
- package/src/platforms/vtex/clients/commerce/types/VtexId.ts +11 -0
- package/src/platforms/vtex/index.ts +4 -0
- package/src/platforms/vtex/resolvers/cancelOrder.ts +20 -0
- package/src/platforms/vtex/resolvers/mutation.ts +2 -0
- package/src/platforms/vtex/resolvers/query.ts +57 -2
- package/src/platforms/vtex/resolvers/userOrder.ts +205 -0
- package/src/platforms/vtex/resolvers/validateSession.ts +53 -7
- package/src/platforms/vtex/utils/cookies.ts +25 -0
- package/src/typeDefs/mutation.graphql +4 -0
- package/src/typeDefs/query.graphql +46 -0
- package/src/typeDefs/session.graphql +16 -0
- package/src/typeDefs/userOrder.graphql +714 -0
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import deepEquals from 'fast-deep-equal'
|
|
2
2
|
|
|
3
|
+
import { parse } from 'cookie'
|
|
3
4
|
import type { Context } from '..'
|
|
4
5
|
import type {
|
|
5
6
|
MutationValidateSessionArgs,
|
|
@@ -7,6 +8,7 @@ import type {
|
|
|
7
8
|
StoreSession,
|
|
8
9
|
} from '../../../__generated__/schema'
|
|
9
10
|
import ChannelMarshal from '../utils/channel'
|
|
11
|
+
import { parseJwt } from '../utils/cookies'
|
|
10
12
|
|
|
11
13
|
async function getPreciseLocationData(
|
|
12
14
|
clients: Context['clients'],
|
|
@@ -33,7 +35,7 @@ async function getPreciseLocationData(
|
|
|
33
35
|
export const validateSession = async (
|
|
34
36
|
_: any,
|
|
35
37
|
{ session: oldSession, search }: MutationValidateSessionArgs,
|
|
36
|
-
{ clients }: Context
|
|
38
|
+
{ clients, headers, account }: Context
|
|
37
39
|
): Promise<StoreSession | null> => {
|
|
38
40
|
const channel = ChannelMarshal.parse(oldSession.channel ?? '')
|
|
39
41
|
const postalCode = String(oldSession.postalCode ?? '')
|
|
@@ -88,9 +90,38 @@ export const validateSession = async (
|
|
|
88
90
|
utmiPart: params.get('utmi_pc') ?? oldMarketingData?.utmiPart ?? '',
|
|
89
91
|
}
|
|
90
92
|
|
|
91
|
-
const
|
|
92
|
-
|
|
93
|
-
|
|
93
|
+
const authCookie = parse(headers?.cookie ?? '')?.[
|
|
94
|
+
'VtexIdclientAutCookie_' + account
|
|
95
|
+
]
|
|
96
|
+
const jwt = parseJwt(authCookie)
|
|
97
|
+
|
|
98
|
+
const isRepresentative = jwt?.isRepresentative
|
|
99
|
+
const userId = jwt?.userId
|
|
100
|
+
const customerId = jwt?.customerId
|
|
101
|
+
|
|
102
|
+
const [sessionData, vtexid, unit, contract, user] = await Promise.all([
|
|
103
|
+
clients.commerce.session(params.toString()).catch(() => null),
|
|
104
|
+
|
|
105
|
+
isRepresentative
|
|
106
|
+
? clients.commerce.vtexid.validate().catch(() => null)
|
|
107
|
+
: Promise.resolve(null),
|
|
108
|
+
|
|
109
|
+
isRepresentative
|
|
110
|
+
? clients.commerce.units.getUnitByUserId({ userId }).catch(() => null)
|
|
111
|
+
: Promise.resolve(null),
|
|
112
|
+
|
|
113
|
+
isRepresentative
|
|
114
|
+
? clients.commerce.masterData
|
|
115
|
+
.getContractById({ contractId: customerId })
|
|
116
|
+
.catch(() => null)
|
|
117
|
+
: Promise.resolve(null),
|
|
118
|
+
|
|
119
|
+
isRepresentative
|
|
120
|
+
? clients.commerce.licenseManager
|
|
121
|
+
.getUserById({ userId })
|
|
122
|
+
.catch(() => null)
|
|
123
|
+
: Promise.resolve(null),
|
|
124
|
+
])
|
|
94
125
|
|
|
95
126
|
const profile = sessionData?.namespaces.profile ?? null
|
|
96
127
|
const store = sessionData?.namespaces.store ?? null
|
|
@@ -123,9 +154,24 @@ export const validateSession = async (
|
|
|
123
154
|
seller: seller?.id,
|
|
124
155
|
hasOnlyDefaultSalesChannel: !store?.channel?.value,
|
|
125
156
|
}),
|
|
126
|
-
b2b:
|
|
127
|
-
|
|
128
|
-
|
|
157
|
+
b2b: isRepresentative
|
|
158
|
+
? {
|
|
159
|
+
customerId:
|
|
160
|
+
authentication?.customerId?.value ??
|
|
161
|
+
vtexid?.customerId ??
|
|
162
|
+
customerId ??
|
|
163
|
+
'',
|
|
164
|
+
isRepresentative:
|
|
165
|
+
vtexid?.isRepresentative ?? isRepresentative ?? false,
|
|
166
|
+
unitName: unit?.name ?? vtexid?.unitName ?? '',
|
|
167
|
+
unitId: unit?.id ?? '',
|
|
168
|
+
isCorporate: contract?.isCorporate ?? false,
|
|
169
|
+
corporateName: contract?.corporateName ?? '',
|
|
170
|
+
firstName: contract?.firstName ?? '',
|
|
171
|
+
lastName: contract?.lastName ?? '',
|
|
172
|
+
userName: user?.name ?? '',
|
|
173
|
+
}
|
|
174
|
+
: null,
|
|
129
175
|
marketingData,
|
|
130
176
|
person: profile?.id
|
|
131
177
|
? {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { parse } from 'cookie'
|
|
1
2
|
import type { Context } from '../index'
|
|
2
3
|
|
|
3
4
|
export interface ContextForCookies {
|
|
@@ -96,6 +97,23 @@ export const getWithCookie = (ctx: ContextForCookies) =>
|
|
|
96
97
|
}
|
|
97
98
|
}
|
|
98
99
|
|
|
100
|
+
export const getWithAutCookie = (ctx: ContextForCookies) => {
|
|
101
|
+
const withCookie = getWithCookie(ctx)
|
|
102
|
+
|
|
103
|
+
return function withAutCookie(forwardedHost: string, account: string) {
|
|
104
|
+
const headers: HeadersInit = withCookie({
|
|
105
|
+
'content-type': 'application/json',
|
|
106
|
+
'X-FORWARDED-HOST': forwardedHost,
|
|
107
|
+
})
|
|
108
|
+
|
|
109
|
+
const cookies = parse(ctx?.headers?.cookie ?? '')
|
|
110
|
+
const VtexIdclientAutCookie = cookies[`VtexIdclientAutCookie_${account}`]
|
|
111
|
+
headers['VtexIdclientAutCookie'] = VtexIdclientAutCookie
|
|
112
|
+
|
|
113
|
+
return headers
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
99
117
|
/**
|
|
100
118
|
* This function updates the cookie value based on its key
|
|
101
119
|
*
|
|
@@ -124,3 +142,10 @@ export const updatesCookieValueByKey = (
|
|
|
124
142
|
// add new storage cookie to the original list of cookies
|
|
125
143
|
return `${existingCookies};${storageCookieKey}=${storageCookieValue}`
|
|
126
144
|
}
|
|
145
|
+
|
|
146
|
+
export function parseJwt(token: string) {
|
|
147
|
+
if (!token) {
|
|
148
|
+
return null
|
|
149
|
+
}
|
|
150
|
+
return JSON.parse(Buffer.from(token.split('.')[1], 'base64').toString())
|
|
151
|
+
}
|
|
@@ -367,6 +367,52 @@ type Query {
|
|
|
367
367
|
term: String
|
|
368
368
|
): ProductCountResult
|
|
369
369
|
@cacheControl(scope: "public", sMaxAge: 120, staleWhileRevalidate: 3600)
|
|
370
|
+
|
|
371
|
+
"""
|
|
372
|
+
Returns information about the Details of an User Order.
|
|
373
|
+
"""
|
|
374
|
+
userOrder(
|
|
375
|
+
"""
|
|
376
|
+
Identifier for the order.
|
|
377
|
+
"""
|
|
378
|
+
orderId: String!
|
|
379
|
+
): UserOrder
|
|
380
|
+
@cacheControl(scope: "public", sMaxAge: 120, staleWhileRevalidate: 3600)
|
|
381
|
+
|
|
382
|
+
"""
|
|
383
|
+
Returns information about the list of Orders that the User can view.
|
|
384
|
+
"""
|
|
385
|
+
listUserOrders(
|
|
386
|
+
"""
|
|
387
|
+
Page number of the list of orders.
|
|
388
|
+
"""
|
|
389
|
+
page: Int
|
|
390
|
+
"""
|
|
391
|
+
Quantity of items per page of the list of orders.
|
|
392
|
+
"""
|
|
393
|
+
perPage: Int
|
|
394
|
+
"""
|
|
395
|
+
Status of the list of orders.
|
|
396
|
+
"""
|
|
397
|
+
status: [String]
|
|
398
|
+
"""
|
|
399
|
+
Initial date of the list of orders.
|
|
400
|
+
"""
|
|
401
|
+
dateInitial: String
|
|
402
|
+
"""
|
|
403
|
+
Final date of the list of orders.
|
|
404
|
+
"""
|
|
405
|
+
dateFinal: String
|
|
406
|
+
"""
|
|
407
|
+
Text used to full text filter of the list of orders.
|
|
408
|
+
"""
|
|
409
|
+
text: String
|
|
410
|
+
"""
|
|
411
|
+
Client email used to filter of the list of orders.
|
|
412
|
+
"""
|
|
413
|
+
clientEmail: String
|
|
414
|
+
): UserOrderListResult
|
|
415
|
+
@cacheControl(scope: "public", sMaxAge: 120, staleWhileRevalidate: 3600)
|
|
370
416
|
}
|
|
371
417
|
|
|
372
418
|
"""
|
|
@@ -186,10 +186,26 @@ type StoreSession {
|
|
|
186
186
|
|
|
187
187
|
type StoreB2B {
|
|
188
188
|
customerId: String!
|
|
189
|
+
isRepresentative: Boolean
|
|
190
|
+
unitName: String
|
|
191
|
+
unitId: String
|
|
192
|
+
isCorporate: Boolean
|
|
193
|
+
corporateName: String
|
|
194
|
+
firstName: String
|
|
195
|
+
lastName: String
|
|
196
|
+
userName: String
|
|
189
197
|
}
|
|
190
198
|
|
|
191
199
|
input IStoreB2B {
|
|
192
200
|
customerId: String!
|
|
201
|
+
isRepresentative: Boolean
|
|
202
|
+
unitName: String
|
|
203
|
+
unitId: String
|
|
204
|
+
isCorporate: Boolean
|
|
205
|
+
corporateName: String
|
|
206
|
+
firstName: String
|
|
207
|
+
lastName: String
|
|
208
|
+
userName: String
|
|
193
209
|
}
|
|
194
210
|
|
|
195
211
|
"""
|