From 8d17fb5bc4b0dae0758e01a44d77d87acf2e686a Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Thu, 14 Mar 2019 06:27:16 +0100 Subject: o Adding module for searching on element14. o Starting on functionality create orders. Very WIP. o Adding a concept of an "ee project". Can load a gitconfig-like config file. o Adding a tool to import a yaml file into a part xml file. --- src/ee/element14/__init__.py | 63 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 src/ee/element14/__init__.py (limited to 'src/ee/element14/__init__.py') diff --git a/src/ee/element14/__init__.py b/src/ee/element14/__init__.py new file mode 100644 index 0000000..17a8825 --- /dev/null +++ b/src/ee/element14/__init__.py @@ -0,0 +1,63 @@ +import json +from pathlib import Path +from typing import Optional +from urllib.parse import urlencode +from urllib.request import urlopen + +import ee._utils + +__all__ = [ + "Element14Config", + "Element14Client", +] + + +class Element14Config(object): + def __init__(self, store: Optional[str], api_key: Optional[str]): + self.store = store + self.api_key = api_key + + +class Element14Client(object): + def __init__(self, config: Element14Config, cache_dir: Path): + self.config = config + self.cache = ee._utils.maybe_cache(cache_dir) + + def search(self, term: Optional[str] = None): + url = "https://api.element14.com/catalog/products" + + kv = { + "callInfo.responseDataFormat": "XML", + } + + if self.config.api_key: + kv["callInfo.apiKey"] = self.config.api_key + + if self.config.store: + kv["storeInfo.id"] = self.config.store + + if term: + kv["term"] = term + + kv["resultsSettings.offset"] = "0" + kv["resultsSettings.numberOfResults"] = "100" + + print("params: {}".format(kv)) + + # &resultsSettings.refinements.filters={rohsCompliant,inStock} + # &resultsSettings.responseGroup={none,small,medium,large, Prices, Inventory} + + url = url + "?" + urlencode(kv) + + print("url={}".format(url)) + + data = "wat!!" + data = urlopen(url).read() + + print("-----------") + print(data) + print("-----------") + + search_response = json.loads(data) + + return -- cgit v1.2.3