add microsite

This commit is contained in:
nolan 2024-03-13 23:52:02 -07:00
parent 0bc6905e79
commit 6ed0b9c290
3 changed files with 125 additions and 1 deletions

View File

@ -7,5 +7,6 @@ A Python library for managing AF API objects
from lib_af_api.campaign import Campaign from lib_af_api.campaign import Campaign
from lib_af_api.business import Business from lib_af_api.business import Business
from lib_af_api.event import Event from lib_af_api.event import Event
from lib_af_api.microsite import Microsite
from lib_af_api.voterset import VoterSet from lib_af_api.voterset import VoterSet
from lib_af_api.voter import Voter from lib_af_api.voter import Voter

123
lib_af_api/microsite.py Normal file
View File

@ -0,0 +1,123 @@
"""
Microsite Class object
"""
import logging
import requests
class Microsite():
"""Microsite class"""
def __init__(self, base_url, jwt):
"""
__init__ Init Microsite
:param base_url: Base URL for Microsite API
:param jwt: JWT Authentication for Microsite API
"""
self.base_url = base_url
self.jwt = jwt
def get_all(self, args = None):
"""
get_all Get the microsites
:param args: Dict of args to add as URL params
"""
# Set the headers for the request
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': f'Bearer {self.jwt}'
}
if not isinstance(args, dict):
args = {}
# Run the GET
response = requests.get(
f'{self.base_url}/api/v1/microsites',
params=args,
headers=headers,
timeout=300
)
# Good response. Return Microsites
if response.ok:
return response.json()
# Log error and retunr null
logging.error("[AFMICROSITE GET ALL] [%s]", response.text)
return None
def get(self, microsite_key):
"""
get Get the microsite
:param microsite_key: The Microsite key to get with API
"""
# Set the headers for the request
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': f'Bearer {self.jwt}'
}
# Run the GET
response = requests.get(
f'{self.base_url}/api/v1/microsites/{microsite_key}',
headers=headers,
timeout=300
)
# Good response. Return Microsite
if response.ok:
return response.json()
# Log error and retunr null
logging.error("[AFMICROSITE GET] [%s]", response.text)
return None
def patch(self, microsite_key, patch_data):
"""
patch Path the Microsite
:param microsite_key: The Microsite key to update with API
:param patch_data: The data to update the Microsite
"""
# Set the headers for the request
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': f'Bearer {self.jwt}'
}
# Set the key to the patch data
patch_data['key'] = microsite_key
# Run the GET
response = requests.patch(
f'{self.base_url}/api/v1/microsites/{microsite_key}',
headers=headers,
timeout=300,
json=patch_data
)
# Good response. Return Microsite
if response.ok:
return response.json()
# Log error and retunr null
logging.error("[AFMICROSITE UPDATE] [%s]", response.text)
try:
return response.json()
except: # pylint: disable=bare-except
return None

View File

@ -9,7 +9,7 @@ with open('README.md', 'r') as f:
setup( setup(
name='lib_af_api', name='lib_af_api',
version='0.1.8', version='0.1.9',
author='', author='',
author_email='', author_email='',
description='', description='',