ownerrez-wrapper 0.1.0__tar.gz → 0.2.0__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {ownerrez_wrapper-0.1.0/ownerrez_wrapper.egg-info → ownerrez_wrapper-0.2.0}/PKG-INFO +1 -1
- {ownerrez_wrapper-0.1.0 → ownerrez_wrapper-0.2.0}/ownerrez_wrapper/__init__.py +3 -2
- {ownerrez_wrapper-0.1.0 → ownerrez_wrapper-0.2.0}/ownerrez_wrapper/api.py +11 -4
- {ownerrez_wrapper-0.1.0 → ownerrez_wrapper-0.2.0/ownerrez_wrapper.egg-info}/PKG-INFO +1 -1
- {ownerrez_wrapper-0.1.0 → ownerrez_wrapper-0.2.0}/setup.py +1 -1
- {ownerrez_wrapper-0.1.0 → ownerrez_wrapper-0.2.0}/tests/test_api.py +8 -0
- {ownerrez_wrapper-0.1.0 → ownerrez_wrapper-0.2.0}/LICENSE +0 -0
- {ownerrez_wrapper-0.1.0 → ownerrez_wrapper-0.2.0}/MANIFEST.in +0 -0
- {ownerrez_wrapper-0.1.0 → ownerrez_wrapper-0.2.0}/README.md +0 -0
- {ownerrez_wrapper-0.1.0 → ownerrez_wrapper-0.2.0}/ownerrez_wrapper/cli.py +0 -0
- {ownerrez_wrapper-0.1.0 → ownerrez_wrapper-0.2.0}/ownerrez_wrapper/constants.py +0 -0
- {ownerrez_wrapper-0.1.0 → ownerrez_wrapper-0.2.0}/ownerrez_wrapper/exceptions.py +0 -0
- {ownerrez_wrapper-0.1.0 → ownerrez_wrapper-0.2.0}/ownerrez_wrapper/model.py +0 -0
- {ownerrez_wrapper-0.1.0 → ownerrez_wrapper-0.2.0}/ownerrez_wrapper/restAdapter.py +0 -0
- {ownerrez_wrapper-0.1.0 → ownerrez_wrapper-0.2.0}/ownerrez_wrapper.egg-info/SOURCES.txt +0 -0
- {ownerrez_wrapper-0.1.0 → ownerrez_wrapper-0.2.0}/ownerrez_wrapper.egg-info/dependency_links.txt +0 -0
- {ownerrez_wrapper-0.1.0 → ownerrez_wrapper-0.2.0}/ownerrez_wrapper.egg-info/entry_points.txt +0 -0
- {ownerrez_wrapper-0.1.0 → ownerrez_wrapper-0.2.0}/ownerrez_wrapper.egg-info/requires.txt +0 -0
- {ownerrez_wrapper-0.1.0 → ownerrez_wrapper-0.2.0}/ownerrez_wrapper.egg-info/top_level.txt +0 -0
- {ownerrez_wrapper-0.1.0 → ownerrez_wrapper-0.2.0}/requirements-dev.txt +0 -0
- {ownerrez_wrapper-0.1.0 → ownerrez_wrapper-0.2.0}/requirements.txt +0 -0
- {ownerrez_wrapper-0.1.0 → ownerrez_wrapper-0.2.0}/setup.cfg +0 -0
- {ownerrez_wrapper-0.1.0 → ownerrez_wrapper-0.2.0}/tests/__init__.py +0 -0
@@ -8,8 +8,9 @@ A Python wrapper for the OwnerRez API.
|
|
8
8
|
from .api import API
|
9
9
|
from .cli import main as cli
|
10
10
|
|
11
|
-
__version__ = "0.
|
11
|
+
__version__ = "0.2.0"
|
12
12
|
__author__ = "Geody Moore"
|
13
|
-
|
13
|
+
__author_email__ = "geody.moore@gmail.com"
|
14
|
+
__description__ = "A Python wrapper for the OwnerRez API"
|
14
15
|
|
15
16
|
__all__ = ["API", "cli"]
|
@@ -48,9 +48,14 @@ class API(object):
|
|
48
48
|
params = {'since_utc': since_utc, 'property_id': property_id}
|
49
49
|
booking_list = restAdapt.get(endpoint='bookings', ep_params=params)
|
50
50
|
|
51
|
-
|
52
|
-
booking
|
53
|
-
|
51
|
+
if isinstance(booking_list.data, list):
|
52
|
+
for booking in booking_list.data:
|
53
|
+
booking = Booking(**booking)
|
54
|
+
results.append(booking)
|
55
|
+
elif isinstance(booking_list.data, dict) and 'items' in booking_list.data:
|
56
|
+
for booking in booking_list.data['items']:
|
57
|
+
booking = Booking(**booking)
|
58
|
+
results.append(booking)
|
54
59
|
return results
|
55
60
|
|
56
61
|
def getbooking(self, booking_id: int) -> Booking:
|
@@ -76,9 +81,11 @@ class API(object):
|
|
76
81
|
today = datetime.today()
|
77
82
|
bookings = self.getbookings(property_id=property_id, since_utc=today)
|
78
83
|
for booking in bookings:
|
84
|
+
if booking.is_block:
|
85
|
+
continue
|
79
86
|
# Convert string dates to datetime if they aren't already
|
80
87
|
arrival = booking.arrival if isinstance(booking.arrival, datetime) else datetime.strptime(booking.arrival, "%Y-%m-%d")
|
81
88
|
departure = booking.departure if isinstance(booking.departure, datetime) else datetime.strptime(booking.departure, "%Y-%m-%d")
|
82
|
-
if arrival <= today and departure >= today:
|
89
|
+
if arrival <= today and departure >= today and booking.status == "active":
|
83
90
|
return True
|
84
91
|
return False
|
@@ -110,6 +110,10 @@ def test_isunitbooked(api, mock_booking_response, monkeypatch):
|
|
110
110
|
def mock_get(*args, **kwargs):
|
111
111
|
return Result(status=200, message="OK", data=mock_booking_response)
|
112
112
|
|
113
|
+
# Update mock response to include status and is_block fields
|
114
|
+
mock_booking_response['items'][0]['status'] = 'active'
|
115
|
+
mock_booking_response['items'][0]['is_block'] = False
|
116
|
+
|
113
117
|
monkeypatch.setattr("ownerrez_wrapper.restAdapter.RestAdapter.get", mock_get)
|
114
118
|
is_booked = api.isunitbooked(property_id=1)
|
115
119
|
assert is_booked is True
|
@@ -119,6 +123,10 @@ def test_isunitbooked_not_booked(api, mock_booking_response, monkeypatch):
|
|
119
123
|
def mock_get(*args, **kwargs):
|
120
124
|
return Result(status=200, message="OK", data=mock_booking_response)
|
121
125
|
|
126
|
+
# Update mock response to include status and is_block fields
|
127
|
+
mock_booking_response['items'][0]['status'] = 'active'
|
128
|
+
mock_booking_response['items'][0]['is_block'] = False
|
129
|
+
|
122
130
|
monkeypatch.setattr("ownerrez_wrapper.restAdapter.RestAdapter.get", mock_get)
|
123
131
|
is_booked = api.isunitbooked(property_id=1)
|
124
132
|
assert is_booked is False
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{ownerrez_wrapper-0.1.0 → ownerrez_wrapper-0.2.0}/ownerrez_wrapper.egg-info/dependency_links.txt
RENAMED
File without changes
|
{ownerrez_wrapper-0.1.0 → ownerrez_wrapper-0.2.0}/ownerrez_wrapper.egg-info/entry_points.txt
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|