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

    Projects

    Status

    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions