mirror of
https://github.com/home-assistant/core.git
synced 2025-07-21 12:17:07 +00:00
Add add_package action to seventeentrack (#144488)
* Fix schema name, add_packages -> get_packages * Add "add_package" service * Update description * Update descriptions
This commit is contained in:
parent
cdd3ce428f
commit
393ea0251b
@ -42,8 +42,10 @@ NOTIFICATION_DELIVERED_MESSAGE = (
|
||||
VALUE_DELIVERED = "Delivered"
|
||||
|
||||
SERVICE_GET_PACKAGES = "get_packages"
|
||||
SERVICE_ADD_PACKAGE = "add_package"
|
||||
SERVICE_ARCHIVE_PACKAGE = "archive_package"
|
||||
|
||||
ATTR_PACKAGE_STATE = "package_state"
|
||||
ATTR_PACKAGE_TRACKING_NUMBER = "package_tracking_number"
|
||||
ATTR_PACKAGE_FRIENDLY_NAME = "package_friendly_name"
|
||||
ATTR_CONFIG_ENTRY_ID = "config_entry_id"
|
||||
|
@ -31,6 +31,9 @@
|
||||
"get_packages": {
|
||||
"service": "mdi:package"
|
||||
},
|
||||
"add_package": {
|
||||
"service": "mdi:package"
|
||||
},
|
||||
"archive_package": {
|
||||
"service": "mdi:archive"
|
||||
}
|
||||
|
@ -23,6 +23,7 @@ from .const import (
|
||||
ATTR_DESTINATION_COUNTRY,
|
||||
ATTR_INFO_TEXT,
|
||||
ATTR_ORIGIN_COUNTRY,
|
||||
ATTR_PACKAGE_FRIENDLY_NAME,
|
||||
ATTR_PACKAGE_STATE,
|
||||
ATTR_PACKAGE_TRACKING_NUMBER,
|
||||
ATTR_PACKAGE_TYPE,
|
||||
@ -31,11 +32,12 @@ from .const import (
|
||||
ATTR_TRACKING_INFO_LANGUAGE,
|
||||
ATTR_TRACKING_NUMBER,
|
||||
DOMAIN,
|
||||
SERVICE_ADD_PACKAGE,
|
||||
SERVICE_ARCHIVE_PACKAGE,
|
||||
SERVICE_GET_PACKAGES,
|
||||
)
|
||||
|
||||
SERVICE_ADD_PACKAGES_SCHEMA: Final = vol.Schema(
|
||||
SERVICE_GET_PACKAGES_SCHEMA: Final = vol.Schema(
|
||||
{
|
||||
vol.Required(ATTR_CONFIG_ENTRY_ID): cv.string,
|
||||
vol.Optional(ATTR_PACKAGE_STATE): selector.SelectSelector(
|
||||
@ -52,6 +54,14 @@ SERVICE_ADD_PACKAGES_SCHEMA: Final = vol.Schema(
|
||||
}
|
||||
)
|
||||
|
||||
SERVICE_ADD_PACKAGE_SCHEMA: Final = vol.Schema(
|
||||
{
|
||||
vol.Required(ATTR_CONFIG_ENTRY_ID): cv.string,
|
||||
vol.Required(ATTR_PACKAGE_TRACKING_NUMBER): cv.string,
|
||||
vol.Required(ATTR_PACKAGE_FRIENDLY_NAME): cv.string,
|
||||
}
|
||||
)
|
||||
|
||||
SERVICE_ARCHIVE_PACKAGE_SCHEMA: Final = vol.Schema(
|
||||
{
|
||||
vol.Required(ATTR_CONFIG_ENTRY_ID): cv.string,
|
||||
@ -87,6 +97,22 @@ def setup_services(hass: HomeAssistant) -> None:
|
||||
]
|
||||
}
|
||||
|
||||
async def add_package(call: ServiceCall) -> None:
|
||||
"""Add a new package to 17Track."""
|
||||
config_entry_id = call.data[ATTR_CONFIG_ENTRY_ID]
|
||||
tracking_number = call.data[ATTR_PACKAGE_TRACKING_NUMBER]
|
||||
friendly_name = call.data[ATTR_PACKAGE_FRIENDLY_NAME]
|
||||
|
||||
await _validate_service(config_entry_id)
|
||||
|
||||
seventeen_coordinator: SeventeenTrackCoordinator = hass.data[DOMAIN][
|
||||
config_entry_id
|
||||
]
|
||||
|
||||
await seventeen_coordinator.client.profile.add_package(
|
||||
tracking_number, friendly_name
|
||||
)
|
||||
|
||||
async def archive_package(call: ServiceCall) -> None:
|
||||
config_entry_id = call.data[ATTR_CONFIG_ENTRY_ID]
|
||||
tracking_number = call.data[ATTR_PACKAGE_TRACKING_NUMBER]
|
||||
@ -138,10 +164,17 @@ def setup_services(hass: HomeAssistant) -> None:
|
||||
DOMAIN,
|
||||
SERVICE_GET_PACKAGES,
|
||||
get_packages,
|
||||
schema=SERVICE_ADD_PACKAGES_SCHEMA,
|
||||
schema=SERVICE_GET_PACKAGES_SCHEMA,
|
||||
supports_response=SupportsResponse.ONLY,
|
||||
)
|
||||
|
||||
hass.services.async_register(
|
||||
DOMAIN,
|
||||
SERVICE_ADD_PACKAGE,
|
||||
add_package,
|
||||
schema=SERVICE_ADD_PACKAGE_SCHEMA,
|
||||
)
|
||||
|
||||
hass.services.async_register(
|
||||
DOMAIN,
|
||||
SERVICE_ARCHIVE_PACKAGE,
|
||||
|
@ -18,6 +18,22 @@ get_packages:
|
||||
selector:
|
||||
config_entry:
|
||||
integration: seventeentrack
|
||||
add_package:
|
||||
fields:
|
||||
package_tracking_number:
|
||||
required: true
|
||||
selector:
|
||||
text:
|
||||
package_friendly_name:
|
||||
required: true
|
||||
selector:
|
||||
text:
|
||||
config_entry_id:
|
||||
required: true
|
||||
selector:
|
||||
config_entry:
|
||||
integration: seventeentrack
|
||||
|
||||
archive_package:
|
||||
fields:
|
||||
package_tracking_number:
|
||||
|
@ -80,6 +80,24 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"add_package": {
|
||||
"name": "Add a package",
|
||||
"description": "Adds a package using the 17track API.",
|
||||
"fields": {
|
||||
"package_tracking_number": {
|
||||
"name": "Package tracking number to add",
|
||||
"description": "The package with the tracking number will be added."
|
||||
},
|
||||
"package_friendly_name": {
|
||||
"name": "Package friendly name",
|
||||
"description": "The friendly name of the package to be added."
|
||||
},
|
||||
"config_entry_id": {
|
||||
"name": "17Track service",
|
||||
"description": "The selected service to add the package to."
|
||||
}
|
||||
}
|
||||
},
|
||||
"archive_package": {
|
||||
"name": "Archive package",
|
||||
"description": "Archives a package using the 17track API.",
|
||||
|
Loading…
x
Reference in New Issue
Block a user