|
@@ -33,7 +33,7 @@ export class MessageAuditorService implements MessageAuditorServiceInterface {
|
|
if (!this.settings.filters) {
|
|
if (!this.settings.filters) {
|
|
console.log(`No filters applies`)
|
|
console.log(`No filters applies`)
|
|
} else {
|
|
} else {
|
|
- console.log(`Synchronizating with filters: ${Object.keys(this.settings.filters)}: ${Object.values(this.settings.filters)}`)
|
|
|
|
|
|
+ console.log(`Synchronizating with filters: '${Object.keys(this.settings.filters)}': '${Object.values(this.settings.filters)}'`)
|
|
}
|
|
}
|
|
let missingMsg: Observable<MessageLog> = this.synchronize()
|
|
let missingMsg: Observable<MessageLog> = this.synchronize()
|
|
missingMsg.subscribe({
|
|
missingMsg.subscribe({
|
|
@@ -54,33 +54,6 @@ export class MessageAuditorService implements MessageAuditorServiceInterface {
|
|
let response: boolean = true //Just using this like a statemanagement
|
|
let response: boolean = true //Just using this like a statemanagement
|
|
let payload: BaseMessage = JSON.parse(message.appData.msgPayload as string) // Extract the payload from the messageLog first
|
|
let payload: BaseMessage = JSON.parse(message.appData.msgPayload as string) // Extract the payload from the messageLog first
|
|
// Making a separate function to cater to different multi filters conditions are coded below
|
|
// Making a separate function to cater to different multi filters conditions are coded below
|
|
- function checkValues(filters): boolean { //FYI, all parameters are string
|
|
|
|
- let key = Object.keys(filters)
|
|
|
|
- // console.log(Object.values(filters))
|
|
|
|
- let value = Object.values(filters)[0]
|
|
|
|
- let res = _.get(payload, key[0])
|
|
|
|
- // Check first if the payload has the filtering properties/path
|
|
|
|
- if (_.has(payload, key[0])) {
|
|
|
|
- // check if value is equal to fitler's
|
|
|
|
- let strarray: string[]
|
|
|
|
- // check array
|
|
|
|
- if (Array.isArray(value)) {
|
|
|
|
- strarray = value as string[]
|
|
|
|
- }
|
|
|
|
- else {
|
|
|
|
- strarray = [value as string]
|
|
|
|
- }
|
|
|
|
- // compare array with that string
|
|
|
|
- if (strarray.includes(res)) {
|
|
|
|
- return true
|
|
|
|
- } else {
|
|
|
|
- return false
|
|
|
|
- }
|
|
|
|
- } else {
|
|
|
|
- console.log(`${key} does not exists in payload`)
|
|
|
|
- return false
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
if (filters) { // if filters is not null
|
|
if (filters) { // if filters is not null
|
|
if (Object.keys(filters).length > 1) {
|
|
if (Object.keys(filters).length > 1) {
|
|
let totalCount = Object.keys(filters).length
|
|
let totalCount = Object.keys(filters).length
|
|
@@ -88,21 +61,21 @@ export class MessageAuditorService implements MessageAuditorServiceInterface {
|
|
Object.entries(filters).forEach(([key, value]) => {
|
|
Object.entries(filters).forEach(([key, value]) => {
|
|
let filters = { [key]: value }
|
|
let filters = { [key]: value }
|
|
// console.log(filters)
|
|
// console.log(filters)
|
|
- if (checkValues(filters) == true) matchedCount++
|
|
|
|
|
|
+ if (this.checkValues(payload, filters) == true) matchedCount++
|
|
})
|
|
})
|
|
- if (totalCount == matchedCount) {
|
|
|
|
|
|
+ if (totalCount == matchedCount) { // check if all the criterias are met
|
|
response = true
|
|
response = true
|
|
} else {
|
|
} else {
|
|
response = false
|
|
response = false
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
- if (checkValues(filters) == true) {
|
|
|
|
|
|
+ if (this.checkValues(payload, filters) == true) {
|
|
response = true
|
|
response = true
|
|
} else {
|
|
} else {
|
|
response = false
|
|
response = false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- } else {
|
|
|
|
|
|
+ } else { // if not filters is provided. Then the just let response be true so that the data can be further processed
|
|
response = true
|
|
response = true
|
|
}
|
|
}
|
|
return response
|
|
return response
|
|
@@ -131,10 +104,7 @@ export class MessageAuditorService implements MessageAuditorServiceInterface {
|
|
private async acquireData(): Promise<any> {
|
|
private async acquireData(): Promise<any> {
|
|
const promiseQuery: Promise<any> = new Promise((resolve, reject) => {
|
|
const promiseQuery: Promise<any> = new Promise((resolve, reject) => {
|
|
// declare what to expect.
|
|
// declare what to expect.
|
|
- let allSets: {
|
|
|
|
- arr1: MessageLog[],
|
|
|
|
- arr2: MessageLog[]
|
|
|
|
- } = {
|
|
|
|
|
|
+ let allSets: { arr1: MessageLog[], arr2: MessageLog[] } = {
|
|
arr1: [],
|
|
arr1: [],
|
|
arr2: []
|
|
arr2: []
|
|
}
|
|
}
|
|
@@ -186,5 +156,32 @@ export class MessageAuditorService implements MessageAuditorServiceInterface {
|
|
})
|
|
})
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ // To be used by the filterData function to check between payload values and filter conditions
|
|
|
|
+ private checkValues(payload, filters): boolean { //FYI, all parameters are string
|
|
|
|
+ let key = Object.keys(filters)
|
|
|
|
+ // console.log(Object.values(filters))
|
|
|
|
+ let value = Object.values(filters)[0]
|
|
|
|
+ let res = _.get(payload, key[0])
|
|
|
|
+ // Check first if the payload has the filtering properties/path
|
|
|
|
+ if (_.has(payload, key[0])) {
|
|
|
|
+ let strarray: string[]
|
|
|
|
+ // check array
|
|
|
|
+ if (Array.isArray(value)) {
|
|
|
|
+ strarray = value as string[]
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ strarray = [value as string]
|
|
|
|
+ }
|
|
|
|
+ // compare array with that string
|
|
|
|
+ if (strarray.includes(res)) {
|
|
|
|
+ return true
|
|
|
|
+ } else {
|
|
|
|
+ return false
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ console.log(`${key} does not exists in payload`)
|
|
|
|
+ return false
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
|
|
}
|
|
}
|