Skip to content

Commit

Permalink
feat(iterable): user deletion improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
mihir-4116 committed Sep 18, 2023
1 parent f51a8c6 commit 35ea46a
Show file tree
Hide file tree
Showing 4 changed files with 276 additions and 2 deletions.
15 changes: 13 additions & 2 deletions src/v0/destinations/iterable/deleteUsers.js
Original file line number Diff line number Diff line change
Expand Up @@ -39,14 +39,25 @@ const userDeletionHandler = async (userAttributes, config) => {
});
const handledDelResponse = processAxiosResponse(resp);
if (!isHttpStatusSuccess(handledDelResponse.status) && handledDelResponse.status !== 404) {
failedUserDeletions.push(uId);
if (handledDelResponse.status !== 400) {
throw new NetworkError(
`User deletion request failed : ${handledDelResponse.response.msg}`,
handledDelResponse.status,
{
[tags.TAG_NAMES.ERROR_TYPE]: getDynamicErrorType(handledDelResponse.status),
},
handledDelResponse,
);
} else {
failedUserDeletions.push({ userId: uId, Reason: handledDelResponse.response.msg });
}
}
}),
);

if (failedUserDeletions.length > 0) {
throw new NetworkError(
`User deletion request failed for userIds : ${failedUserDeletions}`,
`User deletion request failed for userIds : ${JSON.stringify(failedUserDeletions)}`,
400,
{
[tags.TAG_NAMES.ERROR_TYPE]: getDynamicErrorType(400),
Expand Down
93 changes: 93 additions & 0 deletions test/deleteUsers/data/iterable/handler_input.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
[
{
"request": {
"body": [
{
"destType": "ITERABLE",
"userAttributes": [
{
"userId": "rudder1"
}
]
}
]
}
},
{
"request": {
"body": [
{
"destType": "ITERABLE",
"userAttributes": [
{
"userId": "rudder2"
}
],
"config": {
"apiToken": "dummyApiKey"
}
}
]
}
},
{
"request": {
"body": [
{
"destType": "ITERABLE",
"userAttributes": [
{
"userId": "rudder1"
},
{
"userId": "rudder2"
}
],
"config": {
"apiKey": "dummyApiKey"
}
}
]
}
},
{
"request": {
"body": [
{
"destType": "ITERABLE",
"userAttributes": [
{
"userId": "rudder3"
},
{
"userId": "rudder4"
}
],
"config": {
"apiKey": "invalidKey"
}
}
]
}
},
{
"request": {
"body": [
{
"destType": "ITERABLE",
"userAttributes": [
{
"userId": "rudder5"
},
{
"userId": "rudder6"
}
],
"config": {
"apiKey": "dummyApiKey"
}
}
]
}
}
]
32 changes: 32 additions & 0 deletions test/deleteUsers/data/iterable/handler_output.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
[
[
{
"statusCode": 400,
"error": "Config for deletion not present"
}
],
[
{
"statusCode": 400,
"error": "api key for deletion not present"
}
],
[
{
"statusCode": 400,
"error": "User deletion request failed for userIds : [{\"userId\":\"rudder2\",\"Reason\":\"User does not exist. Email: UserId: rudder2\"}]"
}
],
[
{
"error": "User deletion request failed : Invalid API key",
"statusCode": 401
}
],
[
{
"statusCode": 200,
"status": "successful"
}
]
]
138 changes: 138 additions & 0 deletions test/deleteUsers/data/iterable/nw_client_data.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
[
[
{
"type": "delete",
"reqParams": [
"https://api.iterable.com/api/users/byUserId/rudder1",
{},
{
"Accept": "application/json",
"api_key": "dummyApiKey"
}
],
"response": {
"response": {
"data": {
"msg": "All users associated with rudder1 were successfully deleted",
"code": "Success",
"params": null
},
"status": 200
}
}
},
{
"type": "delete",
"reqParams": [
"https://api.iterable.com/api/users/byUserId/rudder2",
{},
{
"Accept": "application/json",
"api_key": "dummyApiKey"
}
],
"response": {
"response": {
"data": {
"msg": "User does not exist. Email: UserId: rudder2",
"code": "BadParams",
"params": null
},
"status": 400
}
}
}
],
[
{
"type": "delete",
"reqParams": [
"https://api.iterable.com/api/users/byUserId/rudder3",
{},
{
"Accept": "application/json",
"api_key": "invalidKey"
}
],
"response": {
"response": {
"data": {
"msg": "Invalid API key",
"code": "Success",
"params": {
"endpoint": "/api/users/byUserId/rudder3"
}
},
"status": 401
}
}
},
{
"type": "delete",
"reqParams": [
"https://api.iterable.com/api/users/byUserId/rudder4",
{},
{
"Accept": "application/json",
"api_key": "invalidKey"
}
],
"response": {
"response": {
"data": {
"msg": "Invalid API key",
"code": "Success",
"params": {
"endpoint": "/api/users/byUserId/rudder3"
}
},
"status": 401
}
}
}
],
[
{
"type": "delete",
"reqParams": [
"https://api.iterable.com/api/users/byUserId/rudder5",
{},
{
"Accept": "application/json",
"api_key": "dummyApiKey"
}
],
"response": {
"response": {
"data": {
"msg": "All users associated with rudder5 were successfully deleted",
"code": "Success",
"params": null
},
"status": 200
}
}
},
{
"type": "delete",
"reqParams": [
"https://api.iterable.com/api/users/byUserId/rudder6",
{},
{
"Accept": "application/json",
"api_key": "dummyApiKey"
}
],
"response": {
"response": {
"data": {
"msg": "All users associated with rudder6 were successfully deleted",
"code": "Success",
"params": null
},
"status": 200
}
}
}
]
]

0 comments on commit 35ea46a

Please sign in to comment.