server.views_api package

This package implements Flask blueprints for api HTTP views.
  • API for database access

  • API for access to data files emitted by devices

Submodules

server.views_api.datafiles module

server.views_api.datafiles.delete_datafile(id_)[source]
server.views_api.datafiles.get_datafile(id_)[source]

server.views_api.device module

server.views_api.device.change_password(id_)[source]
server.views_api.device.create_device()[source]
server.views_api.device.delete_device(id_)[source]
server.views_api.device.disconnect_device(id_)[source]

Api endpoint to disconnect and stop the device.

Convenient when device crashes and leaves an old connection hanging, which in turn blocks any new connection of the same device. If the device is actually connected it gets restartad (similarly to server restart using /api/shutdown, see -> deployment/systemd).

server.views_api.device.get_all_devices()[source]
server.views_api.device.get_device(id_)[source]
server.views_api.device.modify_device(id_)[source]

server.views_api.experiment module

server.views_api.experiment.create_experiment()[source]
server.views_api.experiment.delete_experiment(id_)[source]
server.views_api.experiment.get_all_experiments()[source]
server.views_api.experiment.get_experiment(id_)[source]
server.views_api.experiment.modify_experiment(id_)[source]

server.views_api.other module

server.views_api.other.camera_realtime(id_)[source]
server.views_api.other.news()[source]

Api endpoint to get a json array of latest news. Array may be empty. Example contents of a news.json file:

[
    {
        "header": "Big news",
        "description": "Yes, we have news.",
        "created": "27.4.2021",
        "expires": "1.5.2021"
    },
    {
        "header": "Small news",
        "description": "Another one.",
        "created": "28.4.2021",
        "expires": "never"
    }
]
server.views_api.other.shutdown()[source]

Api endpoint to restart the server.

The function below just cleanly shuts the server down. But when deployed, the server is managed as a service and gets automatically restarted.

server.views_api.session module

server.views_api.session.create_session()[source]
server.views_api.session.delete_session(id_)[source]
server.views_api.session.get_all_sessions()[source]
server.views_api.session.get_session(id_)[source]
server.views_api.session.modify_session(id_)[source]

server.views_api.user module

server.views_api.user.change_password(id_)[source]
server.views_api.user.create_user()[source]
server.views_api.user.delete_user(id_)[source]
server.views_api.user.get_all_users()[source]
server.views_api.user.get_user(id_)[source]
server.views_api.user.modify_user(id_)[source]

server.views_api.usergroup module

server.views_api.usergroup.create_usergroup()[source]
server.views_api.usergroup.delete_usergroup(id_)[source]
server.views_api.usergroup.get_all_usergroups()[source]
server.views_api.usergroup.get_usergroup(id_)[source]
server.views_api.usergroup.modify_usergroup(id_)[source]

server.views_api.validations module

server.views_api.validations.email_address_is_valid(email)[source]
server.views_api.validations.get_device_metadata_errors(name, ipv4)[source]

Yield errors in metadata format for devices.

server.views_api.validations.get_metadata_errors(username, email, role)[source]

Yield errors in metadata format.

server.views_api.validations.get_password_errors(password)[source]

Yield errors in password format.

server.views_api.validations.get_session_metadata_errors(name, begin, end)[source]

Yield errors in metadata format for sessions.

server.views_api.validations.ipv4_is_valid(ip)[source]
server.views_api.validations.name_is_valid(name)[source]
server.views_api.validations.password_format_is_valid(password)[source]
server.views_api.validations.password_is_secure(password)[source]
server.views_api.validations.password_is_too_short(password)[source]
server.views_api.validations.pretty_name_is_valid(name)[source]
server.views_api.validations.role_is_valid(role)[source]
server.views_api.validations.username_is_too_long(username)[source]
server.views_api.validations.username_is_too_short(username)[source]
server.views_api.validations.username_is_valid_format(username)[source]