effitool - use effireg from the command line ============================================================================= effitool is a command line tool to use the API of the effireg membership register for the Effi association. Installation ----------------------------------------------------------------------------- effitool is a single-file Python3 program. Get a copy from anywhere, and run it. ./effitool Configuration ----------------------------------------------------------------------------- In order to access the API, effitool needs API client credentials. Specifically, it needs a client id and a client secret. These are stored in the `~/.config/effitool/credentials.conf` file, which is an INI format file: [effi] url = https://effi-reg.vm.liw.fi client_id = tapani client_secret = YOUWISH The file may specify credentials for any number of instances of the membership regiester. This is handy for the developers. If only one is specified, effitool will use it automatically. If more than one server is specified, the `--api` (`-a`) option is used to pick one. ./effitool -a effi ... The list of known servers can be listed: ./effitool list-servers Usage: ----------------------------------------------------------------------------- To check the status of the membership register: ./effitool status To register a new API client: ./effitool register-admin-client ID SECRET where `ID` is the client id and `SECRET` is the client secret. The new client will automatically be allowed the scopes. Note that the `credentials.conf` file is NOT updated: this command is for registering API clients for other people, who do not have access to the config file. To list all known clients: ./effitool list-clients To show the allowed scopes for a specific client: ./effitool show-client tomjon To add to the allowed scopes for a specific client: ./effitool allow-scope tomjon create To remove from the allowed scopes for a specific client: ./effitool deny-scope tomjon create To list all members (database ids): ./effitool list-members To add a member to the database: ./effitool add-member foo.json where foo.json contains the members' record. It can currently be any JSON file, such as: { "fullname": "Tomjon of Lancre", "member-number": 42, "member-years": [2019], "paid-years": [], } To show a member: ./effitool show-member 2f02bf0e-7380-45bf-86ad-ba8dd332304a To update a member: ./effitool update-member 2f02bf0e-7380-45bf-86ad-ba8dd332304a foo.json To delete a member: ./effitool delete-member 2f02bf0e-7380-45bf-86ad-ba8dd332304a Legalese ----------------------------------------------------------------------------- Copyright 2019 Lars Wirzenius This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see .