Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

exception message in the body.

IMPORTANT SCOPE LIMITATION:

Only ELECTRICITY supply is currently returned. The service query hard-codes

FORSYNINGSART = 0 (El), so even if an installation has water, heat, gas, etc.,

those services are not included today. (SQL for the other supply types exists

but is commented out / future work.)

Call chain:

    BrightLocationsController.GetLocations

      -> BrightLocationService.GetLocationByCustomerAsync   (validation + mapping)

...

-

...

-

...

-

...

      (SQL lives in LocationSql; sources are Sonlinc.AINSD / AFORD / AUDEBFORS /

       IndividualMPoints + SWMarket.* market tables for the dates.)

--------------------------------------------------------------------------------

 METHODS

--------------------------------------------------------------------------------

...

   Route:    GET /bright/locations

   Params:  

  • customerId (required)

...

  • limit (optional) 
  • (

...

  • CancellationToken)

   Returns: 

  • 200 OK -> IEnumerable<BrightLocation>

...

  • 400 BadRequest    (declared; see note below)            

...

  • 401

...

  • Unauthorized            

...

  • 404 NotFound      (declared; see note below)

   What it does:

     Returns the list of active locations for a customer, each with its      electricity service(s). It first validates the customer exists

     (commonValidator.ValidateCustomer) and validates input

      and validates input (customerId required; limit, if supplied, must be 1-1000, default 100).

     It then loads location headers, loads the electricity services for those      installations, attaches each service's current supply start/end dates, and     maps and maps everything to the BrightLocation response.

   Validation that affects the result (all surface as HTTP 500 with a message):     -

  • Missing customerId            -> "Missing parameter 'CustomerId'."

...

  • limit out of range (1-1000)   -> "Parameter outside of allowed range..."

...

  • No locations found            -> "No locations found for customer {id}"

...

  • A service with no start date   -> "Location with missing supply start

...

  • date found for meteringpointid: {id}..."

       (Every returned service MUST have a supply start date or the whole call         fails. The start/end dates come from the SWMarket supply-range query,         which only returns the CURRENTLY active supply: FromDate <= today and        ToDate and ToDate is null or in the future.)


   NOTE on status codes: although 400 and 404 are declared via

   ProducesResponseType, the BadRequest branch is commented out in the

   controller. In practice every Every error (bad input, not found, missing dates,

   DB failure) currently comes back as HTTP 500 with the message in the body.

...