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