Skip to content

Commit 438046d

Browse files
passing stack instance to asset, content_type, entry, query
1 parent fc357ed commit 438046d

File tree

6 files changed

+36
-37
lines changed

6 files changed

+36
-37
lines changed

contentstack/__init__.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
__package__ = 'contentstack'
77
__endpoint__ = 'cdn.contentstack.io'
88

9+
# from .stack import Stack
910
# from .stack import Stack
1011
from .entry import Entry
1112
from .asset import Asset
@@ -26,6 +27,3 @@ def emit(self, record):
2627
pass
2728

2829
logging.getLogger(__name__).addHandler(NullHandler())
29-
30-
31-

contentstack/asset_library.py

Lines changed: 21 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -36,26 +36,33 @@ class AssetLibrary:
3636

3737
def __init__(self):
3838
self.count = 0
39-
self.__local_headers = {}
39+
self.__stack_instance = None
40+
self.__http_request = None
41+
self.__stack_headers = {}
4042
self.__query_params = {}
4143

44+
def instance(self, stack_instance):
45+
self.__stack_instance = stack_instance
46+
self.__stack_headers.update(self.__stack_instance.headers)
47+
self.__http_request = self.__stack_instance.http_request
48+
4249
def set_header(self, key: str, value):
4350
if key is not None and value is not None:
44-
self.__local_headers[key] = value
51+
self.__stack_headers[key] = value
4552
return self
4653

4754
def headers(self, headers: dict):
4855
if headers is not None and len(headers) > 0 and isinstance(headers, dict):
49-
self.__local_headers = headers
50-
if 'environment' in self.__local_headers:
51-
env_value = self.__local_headers['environment']
56+
self.__stack_headers = headers
57+
if 'environment' in self.__stack_headers:
58+
env_value = self.__stack_headers['environment']
5259
self.__query_params["environment"] = env_value
5360
return self
5461

5562
def remove_header(self, key):
5663
if key is not None:
57-
if key in self.__local_headers:
58-
self.__local_headers.pop(key)
64+
if key in self.__stack_headers:
65+
self.__stack_headers.pop(key)
5966
return self
6067

6168
def include_count(self):
@@ -79,7 +86,7 @@ def get_count(self) -> int:
7986
# self.__post_params['desc'] = key
8087
# return self.__post_params
8188

82-
def fetch_all(self) -> tuple:
89+
def fetch_all(self):
8390

8491
import requests
8592
from urllib import parse
@@ -90,11 +97,11 @@ def fetch_all(self) -> tuple:
9097

9198
error = None
9299
asset_url = Config().endpoint('assets')
93-
self.__local_headers.update(self.header_agents())
100+
self.__stack_headers.update(self.header_agents())
94101
payload = parse.urlencode(query=self.__query_params, encoding='UTF-8')
95102

96103
try:
97-
response: Response = requests.get(asset_url, params=payload, headers=self.__local_headers)
104+
response: Response = requests.get(asset_url, params=payload, headers=self.__stack_headers)
98105
list_asset: list[Asset] = []
99106

100107
if response.ok:
@@ -105,16 +112,15 @@ def fetch_all(self) -> tuple:
105112
asset_instance = Asset()
106113
asset_resp: Asset = asset_instance.configure(response=asset)
107114
list_asset.append(asset_resp)
108-
else:
109115

116+
return list_asset
117+
else:
110118
error_dict = response.json()
111-
Error().error(error_dict)
112-
113-
return list_asset, error
119+
return Error().error(error_dict)
114120

115121
except requests.exceptions.RequestException as e:
116122
raise ConnectionError(e.response)
117-
pass
123+
118124

119125
@classmethod
120126
def header_agents(cls) -> dict:

contentstack/config.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ def endpoint(self, path):
6767
url = self.path(path)
6868
if url is not None and isinstance(url, str):
6969
url = "{0}{1}/{2}/{3}".format(self.defaultConfig["protocol"], self.host(), self.version(), url)
70-
logging.info('{0} endpoint'.format(path))
70+
logging.info('endpoint is :: {0} '.format(url))
7171
return url
7272

7373

contentstack/errors.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,15 @@ def __init__(self):
3838
self.__cause_err = str
3939

4040
def config(self, result: dict):
41+
4142
if result is not None and len(result) > 0:
4243
self.__error_dict = result
4344
self.__error_code = self.__error_dict['error_code']
4445
self.__msg = self.__error_dict['error_message']
4546
self.__cause_err = self.__error_dict['errors']
4647

48+
return self
49+
4750
@property
4851
def error_code(self):
4952
"""

contentstack/http_connection.py

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
class HTTPConnection:
32

43
def __init__(self, url: str, query: dict, headers: dict):
@@ -10,13 +9,13 @@ def __init__(self, url: str, query: dict, headers: dict):
109
else:
1110
raise TypeError('Kindly provide valid Arguments')
1211

13-
def get_result(self, url: str, query: dict, headers: dict) -> tuple:
12+
def get_result(self, url: str, query: dict, headers: dict):
1413

1514
import requests
1615
from urllib import parse
1716
from requests import Response
1817
from contentstack.stack import SyncResult
19-
from contentstack.errors import ContentstackError
18+
from contentstack import Error
2019

2120
if url is not None and len(url) > 0:
2221
self.url = url
@@ -27,7 +26,6 @@ def get_result(self, url: str, query: dict, headers: dict) -> tuple:
2726

2827
# Adding user agent to headers
2928
self.headers.update(self.__user_agents())
30-
# Encoding query to string
3129
payload = parse.urlencode(query=self.query, encoding='UTF-8')
3230

3331
try:
@@ -78,12 +76,11 @@ def get_result(self, url: str, query: dict, headers: dict) -> tuple:
7876
# Decode byte response to json
7977
err = response.json()
8078
if err is not None:
81-
error_code = err['error_code']
82-
error_message = err['error_message']
83-
raise ContentstackError('Server Error Code {} Message: {}'.format(error_code, error_message))
84-
# return Error().config(err)
79+
return Error().config(err)
80+
# raise ContentstackError('Server Error Code {} Message: {}'.format(error_code, error_message))
8581

8682
except requests.RequestException as err:
83+
# Error().config(err)
8784
raise ConnectionError(err)
8885

8986
@staticmethod
@@ -126,7 +123,6 @@ def __user_agents() -> dict:
126123

127124
"""
128125
Contentstack-User-Agent.
129-
130126
"""
131127
header = {'sdk': dict(name=contentstack.__package__, version=contentstack.__version__)}
132128
os_name = platform.system()

setup.py

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,14 @@ def read(fname):
3030

3131
name='contentstack',
3232
version=get_version(),
33+
py_modules=['contentstack'],
3334
packages=find_packages(exclude=['tests']),
34-
url='https://github.com/contentstack/contentstack-python',
35+
url='https://github.com/contentstack/contentstack-python.git',
3536
license='MIT License',
3637
author='Shailesh Mishra',
37-
author_email='shailesh.mishra@contentstack.com',
38-
description='Create python-based applications and use the python SDK to fetch and deliver content from Contentstack. The SDK uses Content Delivery APIs. ',
38+
author_email='mshaileshr@gmail.com',
39+
description='Create python-based applications and use the python SDK to fetch and deliver content from '
40+
'Contentstack. The SDK uses Content Delivery APIs. ',
3941
install_requires=['requests', 'asset'],
4042
tests_require=['pytest'],
4143
long_description=read('README.rst'),
@@ -46,12 +48,6 @@ def read(fname):
4648
"Operating System :: OS Independent",
4749
'Intended Audience :: Developers',
4850
'Natural Language :: English',
49-
'Programming Language :: Python :: 3',
50-
'Programming Language :: Python :: 3.1',
51-
'Programming Language :: Python :: 3.2',
52-
'Programming Language :: Python :: 3.3',
53-
'Programming Language :: Python :: 3.4',
54-
'Programming Language :: Python :: 3.5',
5551
'Programming Language :: Python :: 3.6',
5652
'Programming Language :: Python :: 3.7',
5753
],

0 commit comments

Comments
 (0)