Skip to main content

Provides methods, classes and classbuilders to integrate with the Weclapp API

Project description

pyWeclapp - Methods, classes and class builders for interacting with the weclapp api

This Package contains methods to acess weclapp objects via the api.

Setup

Step1

    # set the weclappDomain to call to to environment variables:
    import os
    os.environ["weclappDomain"] = "yourCompany.weclapp.com"

    # SetAuthentication Token
    # set the authenticationToken obtainable from weclapp via:
    # your Account -> my settings -> API-Token
    # the token should have the format xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
    # set the default token as "Weclapp_AuthenticationToken0" via 
    os.environ["Weclapp_AuthenticationToken0"] = yourToken

Step2 (optional)

For some applications it is usefull to set multiple tokens from different users. Please index them e.g. "Weclapp_AuthenticationToken1", "Weclapp_AuthenticationToken2" the Api Key can be referenced in selected functions via it's short name key0 or key1 or ...; key0=default

weclapp

Provides basic function for quering the Weclapp API (GET, PUT, POST and DELETE)

You can specify with asType the desired datatype of the response, so that for example the "result" attribte gets removed when asking for e.g. all orders in these functions will throw a specialized weclappError if they fail. PUT function uses the query Parmateter "justUsedProperties" by default to allow for updates with only changes

weclappClasses

Provides a nested pydantic dataModel for the most used classes with update tracking and metaData handling

to initialise use .fromWeclapp -> e.g. weclappClasses.SalesOrder.fromWeclapp("yourWeclappSalesOrderId") to retrieve the dictionary again use .getUpdateDict("used+") with updateType: "full" -> complete Dict, "used+" -> just changes with version included or "used" -> just changes to directly Update use .updateWeclapp(), .updateEntity() functions

Creating Neu class Instances in weclapp

the class also provides you with a template to create an emptyClass. In this case please use the fromBlank() classmethod. after that all attributes will be set to None, lists or empyt subclasses, that you can modify or append to. after compleetion call the postNewEntity() method to post it to weclapp. Please do not set "id" or "verion"

Example

salesOrder = weclappClasses.SalesOrder.fromBlank()
salesOrder.customerId = "1234"  
salesOrder.invoiceAddress.firstName = "Max"
salesOrder.qmd("1234", addToMetaData=True).booleanValue = True  # Adds a custom Attribute
orderItem = weclappClasses.OrderItems.fromBlank()
orderItem.articleId = "1234"
salesOrder.orderItems.append(orderItem)
salesOrder.postNewEntity()

Createing a new class Template

Sometimes you may want to create a new weclappClass that does not exist yet or update an old one.

Setup Example

from pyWeclapp.weclappClasses.weclappClassBlueprint import weclappClassCreator
weclappClassCreator.WeclappClassCreator(entityName="ticket", expamleEntityId="74344116", targetDirectory="util/weclappClasses").createPythonFile()

offers a convenient way to do this. just specify a entityName -> "salesOrder", "shipment", "contract", "article", "etc." expamleEntityId -> to estimate the types targetDirectory -> where the generaed files should be placed entity -> overwirtes the starting dictionary (Optional)

This will create the templates for the weclappclass as well as a init file. if you need supproperties make sure the example entity contains example of this. Oherwhise it will only be an enpty list without model

CATION may overwrite existing files -> choose an empty directory

CustomAttributes

when working with customAttribes a way of nameing them is important. However the ids vary form system to system the CAT classes (CustomATtributes) will generate the a classtemplate like in examples. ater that the attributes will be accessable with their weclappSystemNames with suggesions selectableElements will also be parsed. use bracets in description to choose a different system Name e.g.: "this is a selectable - Option (MySelectableOption)" -> Name will be "MySelectableOption" otherhwise invalid characters will be removed and a "X" will be added if the startincharacter is invalid

CAUTION this may overwrite changes you made in your module.

Setup Example

from pyWeclapp.customAttributes import CAT_Generator
# specify your wish directory. 
CAT_Generator(entityName="ticket", entityId="74344116", targetDirectory="util/customAttributes")

Usage Example

from yourTaregtDirectory import CAT
citty = CAT() # initialises all attributes that are paresed so far
citty.exampleAttribute.id # "1234"
citty.exampleAttribute.valueName # selectedValues
citty.exampleAttribute.MySelectableOption # "5678"

if you only need attribtes for specific entity please use the more specific and lightweight subclasses like cat_SalesOrder

weclappDoc

allows you to upload, download or modify documents

it autosets a description (DocDescription class) in json format to make documents identifiable via code

DocManager(entityName, entityId)

-> get all documents of a entity: .getDocuments()
-> Upload a file -> .uploadFile()
-> download a file -> .getDocumentFiles()

Document

behaives like a weclapp class -> Document.fromWeclapp() Allows to: -> update -> .updateFile() -> download -> .downloadDoc() -> set Description -> .setDescription() -> update Description -> .updateDescription()

Example

docManger = pyWeclapp.weclappDoc.DocManager("shipment", "74433425")
availableDocs = docManger.getDocuments()

timeFunctions

higher level functions for working with dates in different formats

optimised for woring with weclapp

create wheel with comand >python3 setup.py bdist_wheel sdist

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyWeclapp-0.0.4.tar.gz (59.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyWeclapp-0.0.4-py3-none-any.whl (182.5 kB view details)

Uploaded Python 3

File details

Details for the file pyWeclapp-0.0.4.tar.gz.

File metadata

  • Download URL: pyWeclapp-0.0.4.tar.gz
  • Upload date:
  • Size: 59.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for pyWeclapp-0.0.4.tar.gz
Algorithm Hash digest
SHA256 5455487f5e17710ed468b1e00cbddd29d40c2cf5217b77e1acfe320ab0f9714e
MD5 3666e784ddb8684c5d9fa3f34099395e
BLAKE2b-256 8ae70dde2f1f495bc4046fc74f91760e4d62a48962b40d088abcb0f472821bdc

See more details on using hashes here.

File details

Details for the file pyWeclapp-0.0.4-py3-none-any.whl.

File metadata

  • Download URL: pyWeclapp-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 182.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for pyWeclapp-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 85d7dc56267a95e5ad4b05df63c09176df3c8d22d6b750ca8e2bf80a3bc05bcb
MD5 0423a5cdc087b34b0b447cdc80d3ddd2
BLAKE2b-256 616b912ee5ce1c1c9aed4f52ec8dd86fd5e31a1f664a1d68445e99bd1bde8ae0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page