Module: Cdss::AdminCalls

Includes:
Utils
Included in:
Client
Defined in:
lib/cdss/admin_calls.rb

Overview

Provides methods for accessing administrative calls data from the CDSS API.

This module includes functionality for retrieving active and historical administrative calls based on various criteria such as division, location, and date ranges.

Instance Method Summary collapse

Methods included from Utils

#batch_dates, #build_query, #fetch_paginated_data, #format_date, #format_query_param, #parse_timestamp, #safe_float, #safe_integer

Instance Method Details

#get_admin_calls(division: nil, location_wdid: nil, call_number: nil, start_date: nil, end_date: nil, active: true) ⇒ Array<AdminCall>

Fetches administrative calls based on various filtering criteria.

Examples:

Fetch active calls for a division

get_admin_calls(division: 1, active: true)

Parameters:

  • division (Integer, nil) (defaults to: nil)

    Water division to filter calls.

  • location_wdid (String, nil) (defaults to: nil)

    WDID of the call location structure.

  • call_number (Integer, nil) (defaults to: nil)

    Unique call identifier to query.

  • start_date (Date, nil) (defaults to: nil)

    Start date for calls data.

  • end_date (Date, nil) (defaults to: nil)

    End date for calls data.

  • active (Boolean) (defaults to: true)

    Whether to fetch active (true) or historical (false) calls. Defaults to true.

Returns:

  • (Array<AdminCall>)

    Array of matching administrative call objects.



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/cdss/admin_calls.rb', line 22

def get_admin_calls(division: nil, location_wdid: nil, call_number: nil, start_date: nil, end_date: nil,
                    active: true)
  query = build_query(
    {
      dateFormat: "spaceSepToSeconds",
      division: division,
      callNumber: call_number,
      "min-dateTimeSet": format_date(start_date),
      "max-dateTimeSet": format_date(end_date),
      locationWdid: location_wdid
    },
    encode: true
  )

  endpoint = active ? "administrativecalls/active/" : "administrativecalls/historical/"

  fetch_paginated_data(
    endpoint: "/#{endpoint}",
    query: query
  ) { |data| Parser.parse_admin_calls(data) }
end