Table of Contents

Class LightBeaconController

Namespace
adas_core.Controllers
Assembly
adas-core.dll
[Route("beacons")]
public class LightBeaconController : ControllerBase
Inheritance
LightBeaconController
Inherited Members
Extension Methods

Constructors

LightBeaconController(ILightBeaconService, IPatientService)

public LightBeaconController(ILightBeaconService lightBeaconService, IPatientService patientService)

Parameters

lightBeaconService ILightBeaconService
patientService IPatientService

Methods

Create(LightBeacon)

Creates a new light beacon by inserting the provided beacon data into the system. Returns a conflict response if the insertion yields no result; otherwise, returns the inserted beacon.

[HttpPost("create")]
[AuthorizeRoles(PermissionEnum.RolesType.AuthSome)]
public Task<IActionResult> Create(LightBeacon beacon)

Parameters

beacon LightBeacon

The light beacon data to be created, provided in the request body.

Returns

Task<IActionResult>

An IActionResult containing the inserted beacon on success, or a conflict response if the insertion fails.

CreateCamera(LightBeacon)

Creates a new camera record by inserting a light beacon into the system. Requires the caller to have the role associated with AuthSome.

[HttpPost]
[AuthorizeRoles(PermissionEnum.RolesType.AuthSome)]
public Task<IActionResult> CreateCamera(LightBeacon beac)

Parameters

beac LightBeacon

The light beacon data to create the camera from, supplied in the request body.

Returns

Task<IActionResult>

An IActionResult containing the created light beacon.

GetPaginatedUnits(PaginationFilter)

Retrieves a paginated list of light beacons based on the provided pagination filter. Validates that the request payload is not null before delegating to the light beacon service.

[HttpPost("paginated")]
[AuthorizeRoles(PermissionEnum.RolesType.AuthSome)]
public Task<IActionResult> GetPaginatedUnits(PaginationFilter request)

Parameters

request PaginationFilter

The pagination filter containing the paging parameters used to query the beacons.

Returns

Task<IActionResult>

An IActionResult containing the paginated list of beacons returned by the service.

Exceptions

BadRequestException

Thrown when the request parameter is null, indicating missing parameters.

GetSearchByName(string)

Searches for a light beacon by the provided text and returns the matching result.

[HttpGet("{textToSearch}")]
[AuthorizeRoles(PermissionEnum.RolesType.AuthSome)]
public Task<IActionResult> GetSearchByName(string textToSearch)

Parameters

textToSearch string

The text used to search for the light beacon by name.

Returns

Task<IActionResult>

An IActionResult containing the matching beacon, or a not-found response if no match exists.

Off(string)

Powers off the LED of the light beacon associated with the specified POC identifier.

[HttpPost("off")]
[AuthorizeRoles(PermissionEnum.RolesType.AuthSome)]
public IActionResult Off(string pocId)

Parameters

pocId string

The string representation of the POC ObjectId whose light beacon LED should be powered off.

Returns

IActionResult

Exceptions

BadRequestException

Thrown when pocId is not a valid ObjectId format.

On(string, string)

Sets the light beacon color for the point of care associated with the specified patient. Maps the color route value (case-insensitive) to a LightBeaconColor and forwards it to the beacon service.

[HttpPost("on/{color}")]
public Task<IActionResult> On(string patientId, string color)

Parameters

patientId string

The patient's identifier, supplied in the request body, used to locate the patient's point of care.

color string

The color name from the route (e.g. "Yellow", "Blue", "Red", "Off", "Green", "Cyan", "Magenta", "White") to apply to the beacon.

Returns

Task<IActionResult>

An IActionResult indicating successful completion.

Exceptions

BadRequestException

Thrown when patientId is not a valid MongoDB.Bson.ObjectId format.

NotFoundException

Thrown when the patient cannot be found or has no associated point of care.

UpdateCamera(string, LightBeacon)

Updates an existing light beacon (camera) identified by the route parameter, applying the provided data from the request body.

[HttpPut("{id}")]
[AuthorizeRoles(PermissionEnum.RolesType.AuthSome)]
public Task<IActionResult> UpdateCamera(string id, LightBeacon beacon)

Parameters

id string

The string identifier of the light beacon to update, expected to be a valid ObjectId.

beacon LightBeacon

The light beacon payload containing the updated information, sourced from the request body.

Returns

Task<IActionResult>

An IActionResult containing the updated light beacon returned by the service.

Exceptions

BadRequestException

Thrown when the provided id cannot be parsed as a valid ObjectId.