Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

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

{
  "id": "0d64c132-3aea-11ec-8d3d-0242ac130002",
  "personId": "15aee472-46ab-4f03-9605-68bd64ebc72a",
  "organizationId": "15aee472-46ab-4f03-9605-68bd64ebc84a",
  "filters": [
    {
      "key": "facilities",
      "values": [
        "real_estate_A"
      ]
    },
    {
      "key": "categories",
      "values": [
        "water"
      ]
    }
  ],
  "channels": [
    {
      "contactMethod": "EMAIL",
      "destination": "vaktmastare.2@organisation.com",
      "sendFeedback": true
    }
  ],
  "created": "2022-01-20T09:30:09.469Z"
}

VM3

{
  "id": "0d64c132-3aea-11ec-8d3d-0242ac130003",
  "personId": "15aee472-46ab-4f03-9605-68bd64ebc73a",
  "organizationId": "15aee472-46ab-4f03-9605-68bd64ebc84a",
  "filters": [
    {
      "key": "facilities",
      "values": [
        "real_estate_B"
      ]
    },
    {
      "key": "categories",
      "values": [
        "water"
      ]
    }
  ],
  "channels": [
    {
      "contactMethod": "EMAIL",
      "destination": "vaktmastare.3@organisation.com",
      "sendFeedback": true
    }
  ],
  "created": "2022-01-20T09:30:09.469Z"
}

Sökning

Tjänsten kommer alltid att svara med de 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: Avbrott sker för bredband i fastighet B

Anrop mot GET /feedbacksettings sker med följande filter satt som headers

x-filter-categories: broadband
x-filter-facilities: real_estate_B

samt request-parameter

organizationId=15aee472-46ab-4f03-9605-68bd64ebc84a

Svaret kommer innehålla följande:

[{
  "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",
  "matchingPercent": 100
},
{
  "id": "0d64c132-3aea-11ec-8d3d-0242ac130003",
  "personId": "15aee472-46ab-4f03-9605-68bd64ebc73a",
  "organizationId": "15aee472-46ab-4f03-9605-68bd64ebc84a",
  "filters": [
    {
      "key": "facilities",
      "values": [
        "real_estate_B"
      ]
    },
    {
      "key": "categories",
      "values": [
        "water"
      ]
    }
  ],
  "channels": [
    {
      "contactMethod": "EMAIL",
      "destination": "vaktmastare.3@organisation.com",
      "sendFeedback": true
    }
  ],
  "created": "2022-01-20T09:30:09.469Z",
  "matchingPercent": 67
},
{
  "id": "0d64c132-3aea-11ec-8d3d-0242ac130002",
  "personId": "15aee472-46ab-4f03-9605-68bd64ebc72a",
  "organizationId": "15aee472-46ab-4f03-9605-68bd64ebc84a",
  "filters": [
    {
      "key": "facilities",
      "values": [
        "real_estate_A"
      ]
    },
    {
      "key": "categories",
      "values": [
        "water"
      ]
    }
  ],
  "channels": [
    {
      "contactMethod": "EMAIL",
      "destination": "vaktmastare.2@organisation.com",
      "sendFeedback": true
    }
  ],
  "created": "2022-01-20T09:30:09.469Z",
  "matchingPercent": 33
}]

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: Avbrott sker för vatten i fastighet A

Anrop mot GET /feedbacksettings sker med följande filter satt som headers

x-filter-categories: water
x-filter-facilities: real_estate_A

samt request-parameter

organizationId=15aee472-46ab-4f03-9605-68bd64ebc84a

Svaret kommer innehålla följande:

[{
  "id": "0d64c132-3aea-11ec-8d3d-0242ac130002",
  "personId": "15aee472-46ab-4f03-9605-68bd64ebc72a",
  "organizationId": "15aee472-46ab-4f03-9605-68bd64ebc84a",
  "filters": [
    {
      "key": "facilities",
      "values": [
        "real_estate_A"
      ]
    },
    {
      "key": "categories",
      "values": [
        "water"
      ]
    }
  ],
  "channels": [
    {
      "contactMethod": "EMAIL",
      "destination": "vaktmastare.2@organisation.com",
      "sendFeedback": true
    }
  ],
  "created": "2022-01-20T09:30:09.469Z",
  "matchingPercent": 100
},
{
  "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",
  "matchingPercent": 67
},
{
  "id": "0d64c132-3aea-11ec-8d3d-0242ac130003",
  "personId": "15aee472-46ab-4f03-9605-68bd64ebc73a",
  "organizationId": "15aee472-46ab-4f03-9605-68bd64ebc84a",
  "filters": [
    {
      "key": "facilities",
      "values": [
        "real_estate_B"
      ]
    },
    {
      "key": "categories",
      "values": [
        "water"
      ]
    }
  ],
  "channels": [
    {
      "contactMethod": "EMAIL",
      "destination": "vaktmastare.3@organisation.com",
      "sendFeedback": true
    }
  ],
  "created": "2022-01-20T09:30:09.469Z",
  "matchingPercent": 67
}]

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: Avbrott sker för elektricitet i fastighet B

Anrop mot GET /feedbacksettings sker med följande filter satt som headers

x-filter-categories: electricity
x-filter-facilities: real_estate_B

samt request-parameter

organizationId=15aee472-46ab-4f03-9605-68bd64ebc84a

Svaret kommer innehålla följande:

[{
  "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",
  "matchingPercent": 67
},
{
  "id": "0d64c132-3aea-11ec-8d3d-0242ac130003",
  "personId": "15aee472-46ab-4f03-9605-68bd64ebc73a",
  "organizationId": "15aee472-46ab-4f03-9605-68bd64ebc84a",
  "filters": [
    {
      "key": "facilities",
      "values": [
        "real_estate_B"
      ]
    },
    {
      "key": "categories",
      "values": [
        "water"
      ]
    }
  ],
  "channels": [
    {
      "contactMethod": "EMAIL",
      "destination": "vaktmastare.3@organisation.com",
      "sendFeedback": true
    }
  ],
  "created": "2022-01-20T09:30:09.469Z",
  "matchingPercent": 67
},
{
  "id": "0d64c132-3aea-11ec-8d3d-0242ac130002",
  "personId": "15aee472-46ab-4f03-9605-68bd64ebc72a",
  "organizationId": "15aee472-46ab-4f03-9605-68bd64ebc84a",
  "filters": [
    {
      "key": "facilities",
      "values": [
        "real_estate_A"
      ]
    },
    {
      "key": "categories",
      "values": [
        "water"
      ]
    }
  ],
  "channels": [
    {
      "contactMethod": "EMAIL",
      "destination": "vaktmastare.2@organisation.com",
      "sendFeedback": true
    }
  ],
  "created": "2022-01-20T09:30:09.469Z",
  "matchingPercent": 33
}]

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

  • No labels