def fetch_hut(hut_id):
assert hut_id
headers = {'x-api-key': settings.API_KEY}
huts_index = HutIndexPage.objects.first()
try:
rh = requests.get('%s/%s/detail' % (settings.API_HUTS_BASE_URL, hut_id), headers=headers, timeout=settings.API_TIMEOUT)
except requests.exceptions.RequestException as e:
logger.exception(str(e))
else:
if rh.status_code == 200:
rh_json = rh.json()
try:
hut = HutPage.objects.get(asset_id=rh_json['assetId'])
except HutPage.DoesNotExist:
hut = HutPage(title=rh_json['name'], seo_title=rh_json['name'], asset_id=rh_json['assetId'])
for key, value in HutPage.API_FIELDS_MAPPING.items():
setattr(hut, value, rh_json[key])
if hut.pk is None:
huts_index.add_child(instance=hut)
else:
hut.save()
else:
logger.error("Failed hut details request with status %s, %s", str(rh.status_code), rh.json()['message'])
评论列表
文章目录