Add all requests to single api file
This commit is contained in:
+154
@@ -0,0 +1,154 @@
|
||||
"""Implements known blink API calls."""
|
||||
|
||||
import logging
|
||||
from json import dumps
|
||||
from blinkpy.helpers.util import http_req
|
||||
from blinkpy.helpers.constants import DEFAULT_URL
|
||||
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def request_login(blink, url, username, password):
|
||||
"""Login request."""
|
||||
headers = {
|
||||
'Host': DEFAULT_URL,
|
||||
'Content-Type': 'application/json'
|
||||
}
|
||||
data = dumps({
|
||||
'email': username,
|
||||
'password': password,
|
||||
'client_specifier': 'iPhone 9.2 | 2.2 | 222'
|
||||
})
|
||||
return http_req(blink, url=url, headers=headers, data=data,
|
||||
json_resp=False, reqtype='post')
|
||||
|
||||
|
||||
def request_networks(blink):
|
||||
"""Request network information."""
|
||||
url = "{}/networks".format(blink.urls.base_url)
|
||||
return http_get(blink, url)
|
||||
|
||||
|
||||
def request_syncmodule(blink, network):
|
||||
"""Request sync module info."""
|
||||
url = "{}/network/{}/syncmodule".format(blink.urls.base_url, network)
|
||||
return http_get(blink, url)
|
||||
|
||||
|
||||
def request_system_arm(blink, network):
|
||||
"""Arm system."""
|
||||
url = "{}/network/{}/arm".format(blink.urls.base_url, network)
|
||||
return http_post(blink, url)
|
||||
|
||||
|
||||
def request_system_disarm(blink, headers, network):
|
||||
"""Disarm system."""
|
||||
url = "{}/network/{}/disarm".format(blink.urls.base_url, network)
|
||||
return http_post(blink, url)
|
||||
|
||||
|
||||
def request_command_status(blink, network, command_id):
|
||||
"""Request command status."""
|
||||
url = "{}/network/{}/command_id/{}".format(blink.urls.base_url,
|
||||
network,
|
||||
command_id)
|
||||
return http_get(blink, url)
|
||||
|
||||
|
||||
def request_homescreen(blink, network):
|
||||
"""Request homescreen info."""
|
||||
url = "{}/homescreen".format(blink.urls.base_url)
|
||||
return http_get(blink, url)
|
||||
|
||||
|
||||
def request_sync_events(blink, network):
|
||||
"""Request events from sync module."""
|
||||
url = "{}/events/network/{}".format(blink.urls.base_url, network)
|
||||
return http_get(blink, url)
|
||||
|
||||
|
||||
def request_new_image(blink, network, camera_id):
|
||||
"""Request to capture new thumbnail for camera."""
|
||||
url = "{}/network/{}/camera/{}/thumbnail".format(blink.urls.base_url,
|
||||
network,
|
||||
camera_id)
|
||||
return http_post(blink, url)
|
||||
|
||||
|
||||
def request_new_video(blink, network, camera_id):
|
||||
"""Request to capture new video clip."""
|
||||
url = "{}/network/{}/camera/{}/clip".format(blink.urls.base_url,
|
||||
network,
|
||||
camera_id)
|
||||
return http_post(blink, url)
|
||||
|
||||
|
||||
def request_video_count(blink, headers):
|
||||
"""Request total video count."""
|
||||
url = "{}/api/v2/videos/count".format(blink.urls.base_url)
|
||||
return http_get(blink, url)
|
||||
|
||||
|
||||
def request_videos(blink, page=0):
|
||||
"""Perform a request for videos."""
|
||||
url = "{}/api/v2/videos/page/{}".format(blink.urls.base_url, page)
|
||||
return http_get(blink, url)
|
||||
|
||||
|
||||
def request_cameras(blink, network):
|
||||
"""Request all camera information."""
|
||||
url = "{}/network/{}/cameras".format(blink.urls.base_url, network)
|
||||
return http_get(blink, url)
|
||||
|
||||
|
||||
def request_camera_info(blink, network, camera_id):
|
||||
"""Request camera info for one camera."""
|
||||
url = "{}/network/{}/camera/{}".format(blink.urls.base_url,
|
||||
network,
|
||||
camera_id)
|
||||
return http_get(blink, url)
|
||||
|
||||
|
||||
def request_camera_sensors(blink, network, camera_id):
|
||||
"""Request camera sensor info for one camera."""
|
||||
url = "{}/network/{}/camera/{}/signals".format(blink.urls.base_url,
|
||||
network,
|
||||
camera_id)
|
||||
return http_get(blink, url)
|
||||
|
||||
|
||||
def request_motion_detection_enable(blink, network, camera_id):
|
||||
"""Enable motion detection for a camera."""
|
||||
url = "{}/network/{}/camera/{}/enable".format(blink.urls.base_url,
|
||||
network,
|
||||
camera_id)
|
||||
return http_post(blink, url)
|
||||
|
||||
|
||||
def request_motion_detection_disable(blink, network, camera_id):
|
||||
"""Disable motion detection for a camera."""
|
||||
url = "{}/network/{}/camera/{}/disable".format(blink.urls.base_url,
|
||||
network,
|
||||
camera_id)
|
||||
return http_post(blink, url)
|
||||
|
||||
|
||||
def http_get(blink, url, stream=False, json=True):
|
||||
"""
|
||||
Perform an http get request.
|
||||
|
||||
:param url: URL to perform get request.
|
||||
:param stream: Stream response? True/FALSE
|
||||
:param json: Return json response? TRUE/False
|
||||
"""
|
||||
return http_req(blink, url=url, headers=blink.auth_header, reqtype='get',
|
||||
stream=stream, json_resp=json)
|
||||
|
||||
|
||||
def http_post(blink, url):
|
||||
"""
|
||||
Perform an http post request.
|
||||
|
||||
:param url: URL to perfom post request.
|
||||
"""
|
||||
return http_req(blink, url=url, headers=blink.auth_header, reqtype='post')
|
||||
@@ -7,4 +7,4 @@ pytest-cov>=2.3.1
|
||||
pytest-sugar>=0.9.0
|
||||
pytest-timeout>=1.0.0
|
||||
restructuredtext-lint>=1.0.1
|
||||
pygments>=2.2.0
|
||||
pygments>=2.2.0
|
||||
|
||||
Reference in New Issue
Block a user