@faststore/api 4.0.1-dev.2 → 4.1.0-dev.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.
@@ -117,8 +117,10 @@ export declare const Query: {
117
117
  isValid: boolean;
118
118
  }>;
119
119
  userDetails: (_: unknown, __: unknown, ctx: GraphqlContext) => Promise<{
120
+ username: string;
120
121
  name: string;
121
122
  email: string;
123
+ phone: string;
122
124
  role: string[];
123
125
  orgUnit: string;
124
126
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../../../src/platforms/vtex/resolvers/query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,6BAA6B,EAC7B,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,uBAAuB,EACvB,qBAAqB,EACrB,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAEnB,MAAM,+BAA+B,CAAA;AAQtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAA;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAkB9C,eAAO,MAAM,KAAK;iBAEX,OAAO,eACG,gBAAgB,OACxB,cAAc;oBA+EhB,OAAO,YACA,mBAAmB,OACxB,cAAc;gBAShB,OAAO,6EAQP,eAAe,OACb,cAAc;;;;qBAuDhB,OAAO,gCACoB,oBAAoB,OAC7C,cAAc;;;;;;;;;;;;;kBAkChB,OAAO,kBACM,iBAAiB,OAC5B,cAAc;wBA0BhB,OAAO,gCACoB,uBAAuB,OAChD,cAAc;;;;;;;;;;;;;;;;;;uBAa6B,MAAM;;;;;kBA2CnD,OAAO,kCACsB,iBAAiB,OAC5C,cAAc;;;;;;;;;;;;;;;;;kBAkBhB,OAAO,4BACgB,iBAAiB,OACtC,cAAc;;;iBAqBhB,OAAO,yDAC6C,gBAAgB,OAClE,cAAc;;;;iBAqBhB,OAAO,UACF,gBAAgB,OACnB,cAAc;;;sBAyBhB,OAAO,YACA,qBAAqB,OAC1B,cAAc;mBAahB,OAAO,eACG,kBAAkB,OAC1B,cAAc;;;;;;;;;;;;;;;;;;;;;;;wBAqGhB,OAAO,WACD,uBAAuB,OAC3B,cAAc;;;;;;;;;;;;;;;sBAwBG,OAAO,MAAM,OAAO,QAAQ,cAAc;;;qBAQ3C,OAAO,MAAM,OAAO,OAAO,cAAc;;;;;;wBAmBtC,OAAO,MAAM,OAAO,OAAO,cAAc;;;;;sBAmD9D,OAAO,sBACU,qBAAqB,OACpC,cAAc;CAYtB,CAAA"}
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../../../src/platforms/vtex/resolvers/query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,6BAA6B,EAC7B,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,uBAAuB,EACvB,qBAAqB,EACrB,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAEnB,MAAM,+BAA+B,CAAA;AAQtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAA;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAkB9C,eAAO,MAAM,KAAK;iBAEX,OAAO,eACG,gBAAgB,OACxB,cAAc;oBA+EhB,OAAO,YACA,mBAAmB,OACxB,cAAc;gBAShB,OAAO,6EAQP,eAAe,OACb,cAAc;;;;qBAuDhB,OAAO,gCACoB,oBAAoB,OAC7C,cAAc;;;;;;;;;;;;;kBAkChB,OAAO,kBACM,iBAAiB,OAC5B,cAAc;wBA0BhB,OAAO,gCACoB,uBAAuB,OAChD,cAAc;;;;;;;;;;;;;;;;;;uBAa6B,MAAM;;;;;kBA2CnD,OAAO,kCACsB,iBAAiB,OAC5C,cAAc;;;;;;;;;;;;;;;;;kBAkBhB,OAAO,4BACgB,iBAAiB,OACtC,cAAc;;;iBAqBhB,OAAO,yDAC6C,gBAAgB,OAClE,cAAc;;;;iBAqBhB,OAAO,UACF,gBAAgB,OACnB,cAAc;;;sBAyBhB,OAAO,YACA,qBAAqB,OAC1B,cAAc;mBAahB,OAAO,eACG,kBAAkB,OAC1B,cAAc;;;;;;;;;;;;;;;;;;;;;;;wBAqGhB,OAAO,WACD,uBAAuB,OAC3B,cAAc;;;;;;;;;;;;;;;sBAwBG,OAAO,MAAM,OAAO,QAAQ,cAAc;;;qBAQ3C,OAAO,MAAM,OAAO,OAAO,cAAc;;;;;;;;wBAqCtC,OAAO,MAAM,OAAO,OAAO,cAAc;;;;;sBAmD9D,OAAO,sBACU,qBAAqB,OACpC,cAAc;CAYtB,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@faststore/api",
3
- "version": "4.0.1-dev.2",
3
+ "version": "4.1.0-dev.0",
4
4
  "license": "MIT",
5
5
  "main": "dist/cjs/index.js",
6
6
  "typings": "dist/src/index.d.ts",
@@ -55,7 +55,7 @@
55
55
  "@envelop/graphql-jit": "catalog:",
56
56
  "@envelop/parser-cache": "catalog:",
57
57
  "@envelop/validation-cache": "catalog:",
58
- "@faststore/diagnostics": "^4.0.1-dev.2",
58
+ "@faststore/diagnostics": "^4.1.0-dev.0",
59
59
  "@graphql-codegen/cli": "catalog:",
60
60
  "@graphql-codegen/typescript": "catalog:",
61
61
  "@parcel/watcher": "^2.5.1",
@@ -78,5 +78,5 @@
78
78
  "publishConfig": {
79
79
  "access": "public"
80
80
  },
81
- "gitHead": "78469e62248563c911ba449ea69fc1edacf7277e"
81
+ "gitHead": "e356beb2c1bfd3b06bc2a383c01d5957d18c8f34"
82
82
  }
@@ -1749,8 +1749,12 @@ export type StoreUserDetails = {
1749
1749
  name?: Maybe<Scalars['String']['output']>;
1750
1750
  /** User's organizational unit. */
1751
1751
  orgUnit?: Maybe<Scalars['String']['output']>;
1752
+ /** User's phone number. */
1753
+ phone?: Maybe<Scalars['String']['output']>;
1752
1754
  /** User's role. */
1753
1755
  role?: Maybe<Array<Maybe<Scalars['String']['output']>>>;
1756
+ /** User's username (login). May differ from email when Alternative Login is enabled. */
1757
+ username?: Maybe<Scalars['String']['output']>;
1754
1758
  };
1755
1759
 
1756
1760
  export type UserOrder = {
@@ -453,7 +453,7 @@ export const VtexCommerce = (
453
453
 
454
454
  params.set(
455
455
  'items',
456
- 'profile.id,profile.email,profile.firstName,profile.lastName,shopper.firstName,shopper.lastName,shopper.organizationManager,store.channel,store.countryCode,store.cultureInfo,store.currencyCode,store.currencySymbol,authentication.customerId,authentication.storeUserId,authentication.storeUserEmail,authentication.unitId,authentication.unitName,checkout.regionId,public.postalCode'
456
+ 'profile.id,profile.email,profile.firstName,profile.lastName,profile.phone,shopper.firstName,shopper.lastName,shopper.organizationManager,store.channel,store.countryCode,store.cultureInfo,store.currencyCode,store.currencySymbol,authentication.customerId,authentication.storeUserId,authentication.storeUserEmail,authentication.unitId,authentication.unitName,checkout.regionId,public.postalCode'
457
457
  )
458
458
 
459
459
  const headers: HeadersInit = withCookie({
@@ -704,6 +704,23 @@ export const VtexCommerce = (
704
704
  {}
705
705
  )
706
706
  },
707
+ getUserRoles: ({
708
+ userId,
709
+ }: { userId: string }): Promise<{
710
+ Email: string
711
+ Roles: Array<{ Id: number; Name: string }>
712
+ }> => {
713
+ const headers: HeadersInit = withAutCookie(forwardedHost, account)
714
+
715
+ return fetchAPI(
716
+ `${base}/api/license-manager/storefront/users/${userId}/roles`,
717
+ {
718
+ method: 'GET',
719
+ headers,
720
+ },
721
+ {}
722
+ )
723
+ },
707
724
  },
708
725
  masterData: {
709
726
  getContractById: ({
@@ -37,6 +37,7 @@ export interface Profile {
37
37
  email?: Value
38
38
  firstName?: Value
39
39
  lastName?: Value
40
+ phone?: Value
40
41
  }
41
42
 
42
43
  export interface Shopper {
@@ -571,18 +571,36 @@ export const Query = {
571
571
  // only b2b users
572
572
  userDetails: async (_: unknown, __: unknown, ctx: GraphqlContext) => {
573
573
  const {
574
+ account,
575
+ headers,
574
576
  clients: { commerce },
575
577
  } = ctx
576
578
 
577
- const sessionData = await commerce.session('').catch(() => null)
579
+ const jwt = parseJwt(getAuthCookie(headers?.cookie ?? '', account))
580
+ const userId = jwt?.userId ?? ''
581
+
582
+ const [sessionData, shopperResult, lmRoles] = await Promise.all([
583
+ commerce.session('').catch(() => null),
584
+ userId
585
+ ? commerce.masterData.getShopperById({ userId }).catch(() => null)
586
+ : Promise.resolve(null),
587
+ userId
588
+ ? commerce.licenseManager.getUserRoles({ userId }).catch(() => null)
589
+ : Promise.resolve(null),
590
+ ])
578
591
 
579
- const shopper = sessionData?.namespaces.shopper ?? null
592
+ const shopper = shopperResult?.[0]
580
593
  const authentication = sessionData?.namespaces.authentication ?? null
581
594
 
595
+ const fullName =
596
+ `${(shopper?.firstName ?? '').trim()} ${(shopper?.lastName ?? '').trim()}`.trim()
597
+
582
598
  return {
583
- name: shopper?.firstName?.value ?? '',
584
- email: authentication?.storeUserEmail.value ?? '',
585
- role: ['Admin'], // TODO change when implemented roles,
599
+ username: authentication?.storeUserEmail?.value ?? '',
600
+ name: fullName,
601
+ email: authentication?.storeUserEmail?.value ?? '',
602
+ phone: shopper?.phone ?? '',
603
+ role: lmRoles?.Roles?.map((r) => r.Name) ?? [],
586
604
  orgUnit: authentication?.unitName?.value ?? '',
587
605
  }
588
606
  },
@@ -517,6 +517,10 @@ type SellerInfo {
517
517
  User details information.
518
518
  """
519
519
  type StoreUserDetails {
520
+ """
521
+ User's username (login). May differ from email when Alternative Login is enabled.
522
+ """
523
+ username: String
520
524
  """
521
525
  User's name.
522
526
  """
@@ -526,6 +530,10 @@ type StoreUserDetails {
526
530
  """
527
531
  email: String
528
532
  """
533
+ User's phone number.
534
+ """
535
+ phone: String
536
+ """
529
537
  User's role.
530
538
  """
531
539
  role: [String]