Skip to content

mosparo/python-api-client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

 

mosparo logo contains a bird with the name Mo and the mosparo text

Python API Client

This library offers the API client to communicate with mosparo to verify a submission.


Description

With this Python library you can connect to a mosparo installation and verify the submitted data.

Installation

Install this library by using pip:

pip install mosparo

Usage

  1. Create a project in your mosparo installation
  2. Include the mosparo script in your form
<div id="mosparo-box"></div>

<script src="https://[URL]/build/mosparo-frontend.js" defer></script>
<script>
    var m;
    window.onload = function(){
        m = new mosparo('mosparo-box', 'https://[URL]', '[UUID]', '[PUBLIC_KEY]', {loadCssResource: true});
    };
</script>
  1. Include the library in your project
pip install mosparo
  1. After the form was submitted, verify the data before processing it
from mosparo import Client

api_client = Client(host, public_key, private_key)

your_post_data = {} # This needs to be filled with the post data

mosparo_submit_token = your_post_data['_mosparo_submitToken']
mosparo_validation_token = your_post_data['_mosparo_validationToken']

result = api_client.verify_submission(your_post_data, mosparo_submit_token, mosparo_validation_token)

if result.is_submittable():
    # Send the email or process the data
    pass
else:
    # Show error message
    pass

API Documentation

Client

Client initialization

Create a new client object to use the API client.

from mosparo import Client

api_client = Client(host, public_key, private_key, verify_ssl)
Parameter Type Description
host str The host of the mosparo installation
public_key str The public key of the mosparo project
private_key str The private key of the mosparo project
verify_ssl bool Set to False, if the SSL certificate should not be verified.

Verify form data

To verify the form data, call verify_submission with the form data in an array and the submit and validation tokens, which mosparo generated on the form initialization and the form data validation. The method will return a VerificationResult object.

result = api_client.verify_submission(form_data, mosparo_submit_token, mosparo_validation_token)
Parameter Type Description
form_data dict The dictionary with all the submitted form data.
mosparo_submit_token str The submit token which was generated by mosparo and submitted with the form data
mosparo_validation_token str The validation token which mosparo generated after the validation and which was submitted with the form data

VerificationResult

Constants

  • FIELD_NOT_VERIFIED: 'not-verified'
  • FIELD_VALID: 'valid'
  • FIELD_INVALID: 'invalid'

is_submittable(): bool

Returns True, if the form is submittable. This means that the verification was successful and the form data are valid.

is_valid(): bool

Returns True, if mosparo determined the form as valid. The difference to is_submittable() is, that this is the original result from mosparo while is_submittable() also checks if the verification was done correctly.

get_verified_fields(): list (see Constants)

Returns an array with all verified field keys.

get_verified_field(key): string (see Constants)

Returns the verification status of one field.

has_issues(): bool

Returns True, if there were verification issues.

get_issues(): list

Returns an array with all verification issues.

Get the statistic data by date

To get the statistic data, grouped by date, call get_statistic_by_date. The method accepts a time range in second for which the data should be returned (last x seconds). The method will return a StatisticResult object.

result = api_client.get_statistic_by_date(range)
Parameter Type Description
range int The time range in seconds for which the statistic should be returned (last X seconds)

StatisticResult

get_number_of_valid_submissions(): int

Return the number of valid submissions in the requested time range.

get_number_of_spam_submissions(): int

Return the number of spam submissions in the requested time range.

get_numbers_by_date(): dict

Return the numbers grouped by date.

License

mosparo Python API Client is open-sourced software licensed under the MIT License. Please see the LICENSE file for the full license.

About

A Python library to communicate with mosparo.

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages