Untitled
unknown
plain_text
2 years ago
2.2 kB
81
Indexable
def copy_shared_list(
self,
url_slug: UUID,
name: Optional[str] = None,
description: Optional[str] = None
):
bin_url_slug = convert_uuid_to_bin(url_slug)
records = tinyAPI.dsh().query(
'''select insert(insert(insert(insert(
hex(concat(substr(venue_list_id, 5, 4), substr(venue_list_id, 3, 2),
substr(venue_list_id, 1, 2), substr(venue_list_id, 9, 8))),
9, 0, '-'), 14, 0, '-'), 19, 0, '-'), 24, 0, '-') as venue_list_id, is_deleted from user_venue_list_slug
where url_slug = %(url_slug)s
''',
{
'url_slug': bin_url_slug,
}
)
print(records[0])
if records[0]['is_deleted']:
raise NotFoundError
user_list = self.get_lists_by_user(list_id=records[0]['venue_list_id'])
print(user_list)
# # if there is no error start with copying
# # first step create new list (use name and description or from list)
new_list_id = self.create(name=name, description=description)
venues = self.load_venues(list_id=records[0]['venue_list_id'])
# # copy all venues to new list
for i, venue in enumerate(venues):
self.add_venue_to_lists(venue_id=venues[i]['id']['resy'], list_ids=[new_list_id])
return new_list_id
def create(
self,
name: str,
description: Optional[str] = None,
list_id: Optional[UUID] = None
) -> UUID:
self.check_user_list_limit()
list_id = list_id or uuid1()
bin_list_id = convert_uuid_to_bin(list_id)
if not self.user_id:
raise multiple_list_error.UserNotVerifiedError
tinyAPI.dsh().query(
'''insert into user_venue_list (id, name, description, user_id) values
(%(list_id)s, %(name)s, %(description)s, %(user_id)s)''',
{
'list_id': bin_list_id,
'name': name,
'description': description,
'user_id': self.user_id
}
)
tinyAPI.dsh().commit()
return list_id
Editor is loading...