Erro Cannot write in private fields ao gravar no Master Data

Boa tarde!
Estou testando a gravação de dados no Masterdata, utilizando uma tabela que já existe e funciona na loja em produção. Meu objetivo é desenvolver um middleware que grava dados trazidos do Sintegra. Através do Insomnia, eu consigo fazer o post e gravar, contudo pelo middleware, não consigo. Ele retorna a mensagem de erro acima.

import { ExternalClient, IOContext, InstanceOptions } from "@vtex/api";

export default class vtexCustomClient extends ExternalClient {
  constructor(context: IOContext, options?: InstanceOptions) {
    super('https://fujiokadistribuidor.vtexcommercestable.com.br', context, {
      ...options,
      headers: {
        "X-VTEX-API-AppKey": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
        "X-VTEX-API-AppToken": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
        "Content-Type": "application/json",
        "Accept": "application/vnd.vtex.ds.v10+json"
      }
    });
  }

  public async createNewCustomer() {
    return await this.http.post(`/api/dataentities/CL/documents`);
  }
}



export async function createNewUser(ctx: Context, next: () => Promise<void>) {
  ctx.set("Cache-Control", "no-cache");

  await ctx.clients.masterdata.createDocument({
    dataEntity: "CL",
    fields: {
      "businessPhone": "xxxxxxxxxxx",
      "corporateDocument": "",
      "email": "antonio.junior@gmail.com",
      "fieldOfStore": "",
      "email_boleto": "antonio.junior@gmail.com",
      "licitacao": false,
      "lastName": "Jr",
      "isCorporate": true,
      "firstName": "Antonio",
      "emailPrimary": "antonio.junior@gmail.com",
      "email_nf": "antonio.junior@gmail.com",
      "phone": "",
      "homePhone": "",
      "purchaseIntention": "",
      "isNewsletterOptIn": false
    }
  })

  ctx.body = {
    mensagem: "Deu tudo certo! :)"
  }

  ctx.status = 200;

  console.log(ctx.response);

  await next();
}

Olá!

Chutando aqui…

Tenta colocar estes 2 headers.

‘X-VTEX-Use-Https’: ‘true’,
‘Proxy-Authorization’: context.authToken,

Boa tarde!
@Saito eu consegui resolver aplicando algumas policies no manifest.json

{
      "name": "WorkflowAction"
    },
    {
      "name": "CancelAction"
    },
    {
      "name": "POWER_USER_DS"
    },
    {
      "name": "ADMIN_DS"
    },
    {
      "name": "vbase-read-write"
    },

Muito obrigado por responder!

1 Like

This topic was automatically closed 24 hours after the last reply. New replies are no longer allowed.