Skip to content

dpo_hydrophoneDataDiversionMode sometimes required, sometimes prohibited #4

@Jacob-Stevens-Haas

Description

@Jacob-Stevens-Haas

(created from email ticket)

Description

Some hydrophone acoustic data requires dpo_hydrophoneDataDiversionMode, some prohibit it. It's impossible to tell from the API when it's required. This necessitates the workaround of sending the request once within a try, catching the exception, and then sending the slightly modified request in an except block.

Expected behavior

Hydrophones for which "dpo_hydrophoneDataDiversionMode" does not apply should accept "OD" or "All". Any other values ("HPF", "LPF"), should give the "no data" response (HTTP 400 w/error code: 33)

Actual behavior

from onc.onc import ONC
onc = ONC(<your token>)

Some hydrophones need the dpo_hydrophoneDataDiversionMode option, e.g.:

request = onc.requestDataProduct(
    filters={
        "dataProductCode": "AD",
        "extension": "wav",
        "dateFrom": "2016-06-20T12:00:00.000Z",
        "dateTo": "2016-06-20T12:01:00.000Z",
        "deviceCode": "ICLISTENHF1251",
        "dpo_audioDownsample": -1,
    }
)
...
Error 128: Missing Parameter.  Expected values: OD, LPF, HPF, All (parameter: dpo_hydrophoneDataDiversionMode)

Other hydrophones prohibit the option, e.g.:

request = onc.requestDataProduct(
    filters={
        "dataProductCode": "AD",
        "extension": "wav",
        "dateFrom": "2016-06-01T12:00:00.000Z",
        "dateTo": "2016-06-01T12:01:00.000Z",
        "deviceCode": "ICLISTENHF1351",
        "dpo_hydrophoneDataDiversionMode": "OD",
        "dpo_audioDownsample": -1,
    }
)
...
Error 129: Invalid parameter given (parameter: dpo_hydrophoneDataDiversionMode)

Discussion

Not the main point but FWIW, the error raised by _doRequest should be a ValueError, not the superclass Exception.

Metadata

Metadata

Assignees

No one assigned

    Labels

    backendThis relates to the backend bugs or implementation

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status

    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions