Skip to content

Filters API Documentation

Overview

The Filters API is designed to manage and retrieve filter configurations for rooms, regions, and locations. It provides endpoints to create, update, delete, and fetch filter data, ensuring streamlined operations and data consistency. This documentation outlines the available endpoints, their request/response formats, and examples for integration.

Note: All endpoints require the header:
x-api-key: YOUR_API_KEY_HERE

Endpoints

Room, Region, and Location Filters

POST /filters/room

  • Summary: Returns the total count of room filters.
    Response contains an array of room objects with structures similar to:
    [{ id: 3, name: "Alcob_Sala B.09_Neat Board", location: { … } }]
  • Request Body Example:
      {
        "filters": {
          "locationName": "all",
          "regionName": "all",
          "roomName": "all"
        }
      }
    
  • Response Example:
      5
    

POST /filters/region

  • Summary: Returns the total count of region filters.
    Response contains an array of region objects with structures similar to:
    [{ id: 2, name: "EUROPE", locations: [ … ] }]
  • Request Body Example:
      {
        "filters": {
          "locationName": "all",
          "regionName": "all",
          "roomName": "all"
        }
      }
    
  • Response Example:
      3
    

POST /filters/location

  • Summary: Returns the total count of location filters.
    Response contains an array of location objects with structures similar to:
    [{ id: 1, name: "ALCOBENDAS", region: { id: 1, name: "SPAIN" } }]
  • Request Body Example:
      {
        "filters": {
          "locationName": "all",
          "regionName": "all",
          "roomName": "all"
        }
      }
    
  • Response Example:
      7
    

Filters Config

GET /filtersConfig

  • Summary: Retrieves all filters configuration.
  • Response Example:
      [
        { "id": 1, "region": "Region1", "locations": [{ "locationName": "Location1" }] },
        { "id": 2, "region": "Region2", "locations": [{ "locationName": "Location2" }] }
      ]
    

POST /filtersConfig

  • Summary: Inserts or updates one or more filters configuration records.
  • Request Body Example:
      [
        { "id": 1, "region": "Region1", "locations": [{ "locationName": "Location1" }] },
        { "id": 2, "region": "Region2", "locations": [{ "locationName": "Location2" }] }
      ]
    
  • Response Example:
      "Filters upserted successfully"
    

DELETE /filtersConfig

  • Summary: Deletes filter configurations not matching the given IDs.
  • Request Body Example:
      [1, 2, 3]
    
  • Response Example:
      "Filters deleted successfully"
    

GET /filtersConfig/{id}

  • Summary: Retrieves a specific filters configuration record by ID.
  • Response Example (200):
      { "id": 1, "region": "Region1", "locations": [{ "locationName": "Location1" }] }
    
  • Response Example (404):
      "Filter not found"
    

POST /filtersConfig/{id}

  • Summary: Inserts or updates a specific filters configuration record by ID.
  • Request Body Example:
      {
        "region": {
          "regionName": "testRegion1",
          "location": [
            {
              "locationName": "testLocation1",
              "room": [
                { "roomName": "testRoom1" },
                { "roomName": "testRoom2" }
              ]
            }
          ]
        }
      }
    
  • Response Example:
      "Filter upserted successfully"
    

DELETE /filtersConfig/{id}

  • Summary: Deletes a specific filters configuration record by ID.
  • Response Example:
      "Filter deleted successfully"
    

GET /filtersConfig/count

  • Summary: Returns the total count of filters configuration records.
  • Response Example:
      10
    

Filters

GET /filters

  • Summary: Retrieves all filters.
  • Response Example:
      [
        { "id": 101, "name": "FilterA" },
        { "id": 102, "name": "FilterB" }
      ]
    

POST /filters

  • Summary: Inserts or updates multiple filters.
  • Request Body Example:
      [
        { "id": 101, "name": "FilterA" },
        { "id": 102, "name": "FilterB" }
      ]
    
  • Response Example:
      "Filters upserted successfully"
    

DELETE /filters

  • Summary: Deletes filters not listed in the provided IDs.
  • Request Body Example:
      [101, 102]
    
  • Response Example:
      "Filters deleted successfully"
    

GET /filters/{id}

  • Summary: Retrieves a specific filter record by ID.
  • Response Example (200):
      { "id": 101, "name": "FilterA" }
    
  • Response Example (404):
      "Filter not found"
    

POST /filters/{id}

  • Summary: Inserts or updates a specific filter record by ID.
    For example, it may also update the associated device serial number along with filter data.
  • Request Body Example:
      { "name": "FilterA", "description": "Updated description" }
    
  • Response Example:
      "Filter upserted successfully"
    

DELETE /filters/{id}

  • Summary: Deletes a specific filter record by ID.
  • Response Example:
      "Filter deleted successfully"
    

GET /filters/device/{deviceSN}

  • Summary: Retrieves a filter record using the device serial number.
  • Response Example (200):
      { "id": 101, "name": "FilterA", "deviceSN": "ABC123XYZ" }
    
  • Response Example (404):
      "Filter not found"
    

GET /filters/count

  • Summary: Returns the total count of filter records.
  • Response Example:
      15