Filter-matchning vid sökning
Det finns möjlighet att utnyttja sökfilter för utökad matchning av resultat från tjänstens resurs GET /feedbacksettings. Dessa filter skickas som header-parametrar till resursen och har följande namn-konvention:
x-filter-[filternamn]
tex
x-filter-categories
Ifall sökfilter återfinns i anropet, kommer returnerade resultatposter från GET /feedbacksettings att ta hänsyn till dessa parametrar vid beräkning av respektive posts matchnings-procent. Resultatlistan för sökningen kommer att sorteras fallande på matchnings-procent.
Vilka filternamn som finns att tillgå, samt eventuella begränsningar i värden som kan användas för respektive filter hanteras av en annan tjänst (MessagingBusinessRules?).
Exempel
Förutsättningar:
En organisation med två fastigheter (fastighet A och fastighet B)
Varje fastighet nyttjar bredband, elektricitet och vatten
Ovanstående ansvarsområden har fördelats på tre olika “vaktmästare” (VM1, VM2 och VM3) som agerar som representanter för organisationen, där:
VM1 ansvarar för bredband i alla fastigheter (A och B)
VM2 ansvarar för vatten i fastighet A
VM3 ansvarar för vatten i fastighet B
Ingen har ett uttalat ansvar för elektricitet
I FeedbackSettings representeras denna fördelning genom att varje representant har en unik uppsättning av filter sparade i sina respektive inställningar:
VM1
{
"id": "0d64c132-3aea-11ec-8d3d-0242ac130001",
"personId": "15aee472-46ab-4f03-9605-68bd64ebc71a",
"organizationId": "15aee472-46ab-4f03-9605-68bd64ebc84a",
"filters": [
{
"key": "categories",
"values": [
"brodband"
]
}
],
"channels": [
{
"contactMethod": "EMAIL",
"destination": "vaktmastare.1@organisation.com",
"sendFeedback": true
}
],
"created": "2022-01-20T09:30:09.469Z"
}
VM2
VM3
Sökning
Tjänsten kommer alltid att svara alla poster som matchar inskickat personId / organizationId. Returnerad lista med poster sorteras utifrån hur väl respektive post matchar de sökfilter som skickats med. Nedan följer tre olika scenarion för att demonstrera funktionaliteten:
Scenario 1: Hämta kontaktuppgifter vid avbrott på bredband i fastighet B
Anrop mot GET /feedbacksettings sker med följande filter satt som headers
samt request-parameter
Svaret kommer innehålla följande:
Där:
VM1 matchar till 100% då
organizationId stämmer
hen har ett filter för categories som innehåller broadband som värde
hen saknar filter för facilities, (tolkas som att alla fastigheter är tillämpbara)
VM3 matchar till 67% då
organizationId stämmer
hen har ett filter för facilities som innehåller real_estate_B som värde
hen har ett filter för categories, men som inte innehåller broadband som värde
VM2 matchar till 33% då
organizationId stämmer
hen har ett filter för facilities, men som inte som innehåller real_estate_B som värde
hen har ett filter för categories, men som inte innehåller broadband som värde
Scenario 2: Hämta kontaktuppgifter vid avbrott på vatten i fastighet A
Anrop mot GET /feedbacksettings sker med följande filter satt som headers
samt request-parameter
Svaret kommer innehålla följande:
Där:
VM2 matchar till 100% då
organizationId stämmer
hen har ett filter för categories som innehåller water som värde
hen har ett filter för facilities som innehåller real_estate_A som värde
VM1 matchar till 67% då
organizationId stämmer
hen saknar filter för facilities, (tolkas som att alla fastigheter är tillämpbara)
hen har ett filter för categories, men som inte innehåller water som värde
VM3 matchar till 67% då
organizationId stämmer
hen har ett filter för categories som innehåller water som värde
hen har ett filter för facilities, men som inte som innehåller real_estate_A som värde
Scenario 3: Hämta kontaktuppgifter vid avbrott på elektricitet i fastighet B
Anrop mot GET /feedbacksettings sker med följande filter satt som headers
samt request-parameter
Svaret kommer innehålla följande:
Där:
VM1 matchar till 67% då
organizationId stämmer
hen saknar filter för facilities, (tolkas som att alla fastigheter är tillämpbara)
hen har ett filter för categories, men som inte innehåller electricity som värde
VM3 matchar till 67% då
organizationId stämmer
hen har ett filter för facilities som innehåller real_estate_B som värde
hen har ett filter för categories, men som inte innehåller electricity som värde
VM3 matchar till 33% då
organizationId stämmer
hen har ett filter för facilities, men som inte som innehåller real_estate_B som värde
hen har ett filter för categories, men som inte innehåller electricity som värde