I'm using node-mailjet sdk to add a new contact to a contactList to create a newsletter. Since I'm in a NextJS project Im using the ES6 import style like you can see bellow: according to the mailjet documentation a new contact is created on the fly for the contactlist. But I keep getting 404 Object not found error. I've already checked in postman with the same data and result is 201 OK. what I'm doing wrong here?
node-mailjet "^6.0.2" in package.json
Here is the code snippet:
import mailjet from 'node-mailjet'
const mailjetClient = mailjet.apiConnect(
process.env.MJ_APIKEY_PUBLIC,
process.env.MJ_APIKEY_PRIVATE);
//Some other code...
export async function addContactToContactList(listId, name, email) {
try {
const result = await mailjetClient.post("contactslist", { 'version': 'v3' })
.id(liatId)
.action("managecontact")
.request({
"Name": name,
"Action": "addnoforce",
"Email": email
})
console.log(result.body.Data); //Log the result for debugging
return result.body.Data;
} catch (error) {
console.error(error);
return false
}
}
Complete log error:
Error: Unsuccessful: Status Code: "404" Message: "Object not found"
at e.<anonymous> (D:\YOSLE\pymemarket\node_modules\node-mailjet\mailjet.node.js:2:37964)
at D:\YOSLE\pymemarket\node_modules\node-mailjet\mailjet.node.js:2:33895
at Object.throw (D:\YOSLE\pymemarket\node_modules\node-mailjet\mailjet.node.js:2:34000)
at r (D:\YOSLE\pymemarket\node_modules\node-mailjet\mailjet.node.js:2:32765)
at processTicksAndRejections (internal/process/task_queues.js:93:5)
{
code: 'ERR_BAD_REQUEST',
config: {
transitional: {
silentJSONParsing: true,
forcedJSONParsing: true,
clarifyTimeoutError: false
},
adapter: [Function (anonymous)],
transformRequest: [ [Function (anonymous)] ],
transformResponse: [Function: transformResponse],
timeout: 0,
xsrfCookieName: 'XSRF-TOKEN',
xsrfHeaderName: 'X-XSRF-TOKEN',
maxContentLength: -1,
maxBodyLength: -1,
env: { FormData: [Function] },
validateStatus: [Function: validateStatus],
headers: {
Accept: 'application/json, text/plain, */*',
'Content-Type': 'application/json',
'User-Agent': 'mailjet-api-v3-nodejs/6.0.2',
'Content-Length': 80
},
url: 'https://api.mailjet.com/v3/REST/contactslist/10249638/managecontact',
params: {},
data: '{"Name":"Chuck Parker","Action":"addnoforce","Email":"yosle007+chuck@gmail.com"}',
method: 'post',
responseType: 'json',
auth: {
username: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
password: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
}
},
response: {
status: 404,
statusText: 'Object not found',
headers: {
date: 'Wed, 31 May 2023 21:58:58 GMT',
'content-type': 'application/json',
'content-length': '77',
connection: 'close'
},
config: {
transitional: [Object],
adapter: [Function (anonymous)],
transformRequest: [Array],
transformResponse: [Function: transformResponse],
timeout: 0,
xsrfCookieName: 'XSRF-TOKEN',
xsrfHeaderName: 'X-XSRF-TOKEN',
maxContentLength: -1,
maxBodyLength: -1,
env: [Object],
validateStatus: [Function: validateStatus],
headers: [Object],
url: 'https://api.mailjet.com/v3/REST/contactslist/10249638/managecontact',
params: {},
data: '{"Name":"Chuck Parker","Action":"addnoforce","Email":"yosle007+chuck@gmail.com"}',
method: 'post',
responseType: 'json',
auth: [Object]
},
request: ClientRequest {
_events: [Object: null prototype],
_eventsCount: 7,
_maxListeners: undefined,
outputData: [],
outputSize: 0,
writable: true,
destroyed: false,
_last: true,
chunkedEncoding: false,
shouldKeepAlive: false,
useChunkedEncodingByDefault: true,
sendDate: false,
_removedConnection: false,
_removedContLen: false,
_removedTE: false,
_contentLength: null,
_hasBody: true,
_trailer: '',
finished: true,
_headerSent: true,
socket: [TLSSocket],
_header: 'POST /v3/REST/contactslist/10249638/managecontact HTTP/1.1\r\n' +
'Accept: application/json, text/plain, */*\r\n' +
'Content-Type: application/json\r\n' +
'User-Agent: mailjet-api-v3-nodejs/6.0.2\r\n' +
'Content-Length: 80\r\n' +
'Host: api.mailjet.com\r\n' +
'Authorization: Basic MTFmMDRiMjgxMjMzMzMwMTc1OGYxMDIwMzc2MGEwMjE6OWQxNWM2MDA5NmJjMjIxYjcxOTM1Y2M2OTU0OGRlNmQ=\r\n' +
'Connection: close\r\n' +
'\r\n',
_keepAliveTimeout: 0,
_onPendingData: [Function: noopPendingOutput],
agent: [Agent],
socketPath: undefined,
method: 'POST',
maxHeaderSize: undefined,
insecureHTTPParser: undefined,
path: '/v3/REST/contactslist/10249638/managecontact',
_ended: true,
res: [IncomingMessage],
aborted: false,
timeoutCb: null,
upgradeOrConnect: false,
parser: null,
maxHeadersCount: null,
reusedSocket: false,
host: 'api.mailjet.com',
protocol: 'https:',
_redirectable: [Writable],
[Symbol(kCapture)]: false,
[Symbol(kNeedDrain)]: false,
[Symbol(corked)]: 0,
[Symbol(kOutHeaders)]: [Object: null prototype]
},
data: [Object: null prototype] {
ErrorInfo: '',
ErrorMessage: 'Object not found',
StatusCode: 404
}
},
statusCode: 404,
statusText: 'Object not found',
originalMessage: 'Object not found',
ErrorMessage: 'Object not found'
}
addedcontact es false