Skip to content

Commit

Permalink
Add "AddFeature" and "RemoveFeature"
Browse files Browse the repository at this point in the history
  • Loading branch information
artemlos committed Mar 19, 2024
1 parent 568dac4 commit 0595156
Show file tree
Hide file tree
Showing 2 changed files with 70 additions and 2 deletions.
68 changes: 68 additions & 0 deletions licensing/methods.py
Original file line number Diff line number Diff line change
Expand Up @@ -546,6 +546,74 @@ def create_key_from_template(token, license_template_id):
return (False, "Could not contact the server.")

return (jobj["key"], jobj["rawResponse"], jobj["message"])

def add_feature(token, product_id, key, feature):
"""
This method will set a certain feature (F1..F8) to true.
If the key algorithm in the product is SKGL, the key string will be
changed if necessary. Otherwise, if SKM15 is used, the key will stay
the same. To do the reverse, please see RemoveFeature.
More docs: https://app.cryptolens.io/docs/api/v3/AddFeature
"""

response = ""

try:
response = HelperMethods.send_request("/key/AddFeature", {"token":token,\
"ProductId":product_id,\
"Key" : key,\
"Feature" : feature})
except HTTPError as e:
response = e.read()
except URLError as e:
return (None, "Could not contact the server. Error message: " + str(e))
except Exception:
return (None, "Could not contact the server.")

jobj = json.loads(response)

if jobj == None or not("result" in jobj) or jobj["result"] == 1:
if jobj != None:
return (False, jobj["message"])
else:
return (False, "Could not contact the server.")

return (True, jobj["message"])

def remove_feature(token, product_id, key, feature):
"""
This method will set a certain feature (F1..F8) to false. If the key
algorithm in the product is SKGL, the key string will be changed if
necessary. Otherwise, if SKM15 is used, the key will stay the same.
To do the reverse, please see AddFeature.
More docs: https://app.cryptolens.io/docs/api/v3/RemoveFeature
"""

response = ""

try:
response = HelperMethods.send_request("/key/RemoveFeature", {"token":token,\
"ProductId":product_id,\
"Key" : key,\
"Feature" : feature})
except HTTPError as e:
response = e.read()
except URLError as e:
return (None, "Could not contact the server. Error message: " + str(e))
except Exception:
return (None, "Could not contact the server.")

jobj = json.loads(response)

if jobj == None or not("result" in jobj) or jobj["result"] == 1:
if jobj != None:
return (False, jobj["message"])
else:
return (False, "Could not contact the server.")

return (True, jobj["message"])

class AI:

Expand Down
4 changes: 2 additions & 2 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@
setup(
name = 'licensing', # How you named your package folder (MyLib)
packages = ['licensing'], # Chose the same as "name"
version = '0.43', # Start with a small number and increase it with every change you make
version = '0.44', # Start with a small number and increase it with every change you make
license='MIT', # Chose a license from here: https://help.github.com/articles/licensing-a-repository
description = 'Client library for Cryptolens licensing Web API.', # Give a short description about your library
author = 'Cryptolens AB', # Type in your name
author_email = '[email protected]', # Type in your E-Mail
url = 'https://cryptolens.io', # Provide either the link to your github or to your website
download_url = 'https://github.com/Cryptolens/cryptolens-python/archive/v_42.tar.gz', # I explain this later on
download_url = 'https://github.com/Cryptolens/cryptolens-python/archive/v_44.tar.gz', # I explain this later on
keywords = ['software licensing', 'licensing library', 'cryptolens'], # Keywords that define your package best
classifiers=[
#'Development Status :: 5 - Stable', # Chose either "3 - Alpha", "4 - Beta" or "5 - Production/Stable" as the current state of your package
Expand Down

0 comments on commit 0595156

Please sign in to comment.