[int]
This commit is contained in:
parent
17d301c969
commit
a2c4660eee
|
|
@ -158,27 +158,6 @@ def backend_api_call_member_read(
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def backend_api_call_member_project(
|
|
||||||
membership_number : _typing.Optional[str],
|
|
||||||
name_real_value : str,
|
|
||||||
email_address_private : _typing.Optional[str],
|
|
||||||
groups : list[str],
|
|
||||||
notification_target_url_template : _typing.Optional[str]
|
|
||||||
):
|
|
||||||
return backend_api_call_wrapped(
|
|
||||||
True,
|
|
||||||
"POST",
|
|
||||||
"/member/project",
|
|
||||||
{
|
|
||||||
"membership_number": membership_number,
|
|
||||||
"name_real_value": name_real_value,
|
|
||||||
"email_address_private": email_address_private,
|
|
||||||
"groups": groups,
|
|
||||||
"notification_target_url_template": notification_target_url_template,
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def backend_api_call_member_delete(
|
def backend_api_call_member_delete(
|
||||||
member_id : int
|
member_id : int
|
||||||
):
|
):
|
||||||
|
|
@ -189,3 +168,45 @@ def backend_api_call_member_delete(
|
||||||
None
|
None
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def backend_api_call_invitation_create(
|
||||||
|
name_changeable,
|
||||||
|
name_value,
|
||||||
|
label_changeable,
|
||||||
|
label_value,
|
||||||
|
email_address_changeable,
|
||||||
|
email_address_value,
|
||||||
|
groups_changeable,
|
||||||
|
groups_value,
|
||||||
|
expiry
|
||||||
|
):
|
||||||
|
print({
|
||||||
|
"name_changeable": name_changeable,
|
||||||
|
"name_value": name_value,
|
||||||
|
"label_changeable": label_changeable,
|
||||||
|
"label_value": label_value,
|
||||||
|
"email_address_changeable": email_address_changeable,
|
||||||
|
"email_address_value": email_address_value,
|
||||||
|
"groups_changeable": groups_changeable,
|
||||||
|
"groups_value": groups_value,
|
||||||
|
"expiry": expiry,
|
||||||
|
})
|
||||||
|
return None
|
||||||
|
return backend_api_call_wrapped(
|
||||||
|
True,
|
||||||
|
"POST",
|
||||||
|
"/invitation/create",
|
||||||
|
{
|
||||||
|
"name_changeable": name_changeable,
|
||||||
|
"name_value": name_value,
|
||||||
|
"label_changeable": label_changeable,
|
||||||
|
"label_value": label_value,
|
||||||
|
"email_address_changeable": email_address_changeable,
|
||||||
|
"email_address_value": email_address_value,
|
||||||
|
"groups_changeable": groups_changeable,
|
||||||
|
"groups_value": groups_value,
|
||||||
|
"expiry": expiry,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
135
source/main.py
135
source/main.py
|
|
@ -26,11 +26,11 @@ def main():
|
||||||
"conf-expose",
|
"conf-expose",
|
||||||
"member-list",
|
"member-list",
|
||||||
"member-read",
|
"member-read",
|
||||||
"member-project",
|
|
||||||
"member-delete",
|
"member-delete",
|
||||||
|
"invite",
|
||||||
],
|
],
|
||||||
metavar = "<action>",
|
metavar = "<action>",
|
||||||
help = "auszuführende Aktion; Optionen: 'conf-schema' : JSON-Schema der Konfiguration ausgeben | 'conf-expose' : vervollständigte Konfiguration ausgegeben | 'member-list' : Liste der Mitglieder ausgeben | 'member-read' : Daten eines Mitglieds ausgeben | 'member-project' : ein Mitglied anlegen und die ID des erzeugten Datensatzes ausgeben | 'member-delete' : einer Mitglieder-Datensatz löschen",
|
help = "auszuführende Aktion; Optionen: 'conf-schema' : JSON-Schema der Konfiguration ausgeben | 'conf-expose' : vervollständigte Konfiguration ausgegeben | 'member-list' : Liste der Mitglieder ausgeben | 'member-read' : Daten eines Mitglieds ausgeben | 'member-delete' : einer Mitglieder-Datensatz löschen | 'invite' : Einladung erstellen",
|
||||||
)
|
)
|
||||||
argument_parser.add_argument(
|
argument_parser.add_argument(
|
||||||
"-c",
|
"-c",
|
||||||
|
|
@ -51,13 +51,10 @@ def main():
|
||||||
help = "ID des Mitglieds",
|
help = "ID des Mitglieds",
|
||||||
)
|
)
|
||||||
argument_parser.add_argument(
|
argument_parser.add_argument(
|
||||||
"-m",
|
"-N",
|
||||||
"--membership-number",
|
"--fixed-name",
|
||||||
type = str,
|
dest = "fixed_name",
|
||||||
dest = "membership_number",
|
action = 'store_true',
|
||||||
default = None,
|
|
||||||
metavar = "<membership-number>",
|
|
||||||
help = "Mitglieds-Nummer des Mitglieds",
|
|
||||||
)
|
)
|
||||||
argument_parser.add_argument(
|
argument_parser.add_argument(
|
||||||
"-n",
|
"-n",
|
||||||
|
|
@ -66,7 +63,28 @@ def main():
|
||||||
dest = "name",
|
dest = "name",
|
||||||
default = None,
|
default = None,
|
||||||
metavar = "<name>",
|
metavar = "<name>",
|
||||||
help = "Name des Mitglieds; Leerzeichen sind durch '_' zu ersetzen",
|
help = "Anmelde-Name des Mitglieds; Leerzeichen sind durch '_' zu ersetzen",
|
||||||
|
)
|
||||||
|
argument_parser.add_argument(
|
||||||
|
"-L",
|
||||||
|
"--fixed-label",
|
||||||
|
dest = "fixed_label",
|
||||||
|
action = 'store_true',
|
||||||
|
)
|
||||||
|
argument_parser.add_argument(
|
||||||
|
"-l",
|
||||||
|
"--label",
|
||||||
|
type = str,
|
||||||
|
dest = "label",
|
||||||
|
default = None,
|
||||||
|
metavar = "<label>",
|
||||||
|
help = "Anzeige-Name des Mitglieds",
|
||||||
|
)
|
||||||
|
argument_parser.add_argument(
|
||||||
|
"-E",
|
||||||
|
"--fixed-email-address",
|
||||||
|
dest = "fixed_email_address",
|
||||||
|
action = 'store_true',
|
||||||
)
|
)
|
||||||
argument_parser.add_argument(
|
argument_parser.add_argument(
|
||||||
"-e",
|
"-e",
|
||||||
|
|
@ -77,6 +95,12 @@ def main():
|
||||||
metavar = "<email-address>",
|
metavar = "<email-address>",
|
||||||
help = "E-Mail-Adresse des Mitglieds",
|
help = "E-Mail-Adresse des Mitglieds",
|
||||||
)
|
)
|
||||||
|
argument_parser.add_argument(
|
||||||
|
"-G",
|
||||||
|
"--fixed-groups",
|
||||||
|
dest = "fixed_groups",
|
||||||
|
action = 'store_true',
|
||||||
|
)
|
||||||
argument_parser.add_argument(
|
argument_parser.add_argument(
|
||||||
"-g",
|
"-g",
|
||||||
"--groups",
|
"--groups",
|
||||||
|
|
@ -86,6 +110,15 @@ def main():
|
||||||
metavar = "<groups>",
|
metavar = "<groups>",
|
||||||
help = "Gruppen, zu welchen das Mitglied hinzugefügt werden soll, als Komma-getrennte Liste",
|
help = "Gruppen, zu welchen das Mitglied hinzugefügt werden soll, als Komma-getrennte Liste",
|
||||||
)
|
)
|
||||||
|
argument_parser.add_argument(
|
||||||
|
"-x",
|
||||||
|
"--expiry",
|
||||||
|
type = int,
|
||||||
|
dest = "expiry",
|
||||||
|
default = None,
|
||||||
|
metavar = "<expiry>",
|
||||||
|
help = "UNIX-Timestamp des Ablaufdatums der Einladung",
|
||||||
|
)
|
||||||
args = argument_parser.parse_args()
|
args = argument_parser.parse_args()
|
||||||
|
|
||||||
## conf
|
## conf
|
||||||
|
|
@ -104,7 +137,21 @@ def main():
|
||||||
),
|
),
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
## exec
|
## exec
|
||||||
|
data = {
|
||||||
|
"id": args.id,
|
||||||
|
"name_changeable": (not args.fixed_name),
|
||||||
|
"name_value": args.name.replace("_", " "),
|
||||||
|
"label_changeable": (not args.fixed_label),
|
||||||
|
"label_value": args.label,
|
||||||
|
"email_address_changeable": (not args.fixed_email_address),
|
||||||
|
"email_address_value": args.email_address,
|
||||||
|
"groups_changeable": (not args.fixed_groups),
|
||||||
|
"groups_value": ([] if (args.groups is None) else args.groups.split(",")),
|
||||||
|
"expiry": args.expiry,
|
||||||
|
}
|
||||||
|
_sys.stderr.write(_json.dumps(data) + "\n")
|
||||||
if (args.action == "conf-schema"):
|
if (args.action == "conf-schema"):
|
||||||
_sys.stdout.write(_json.dumps(conf_schema(), indent = "\t") + "\n")
|
_sys.stdout.write(_json.dumps(conf_schema(), indent = "\t") + "\n")
|
||||||
elif (args.action == "conf-expose"):
|
elif (args.action == "conf-expose"):
|
||||||
|
|
@ -115,7 +162,7 @@ def main():
|
||||||
_sys.stdout.write(_json.dumps(data, indent = "\t") + "\n")
|
_sys.stdout.write(_json.dumps(data, indent = "\t") + "\n")
|
||||||
elif (args.action == "member-read"):
|
elif (args.action == "member-read"):
|
||||||
if (
|
if (
|
||||||
(args.id is None)
|
(data["id"] is None)
|
||||||
):
|
):
|
||||||
log_error(
|
log_error(
|
||||||
"mandatory_parameters_missing",
|
"mandatory_parameters_missing",
|
||||||
|
|
@ -127,39 +174,12 @@ def main():
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
data = backend_api_call_member_read(
|
data = backend_api_call_member_read(
|
||||||
args.id
|
data["id"]
|
||||||
)
|
)
|
||||||
_sys.stdout.write(_json.dumps(data, indent = "\t") + "\n")
|
_sys.stdout.write(_json.dumps(data, indent = "\t") + "\n")
|
||||||
elif (args.action == "member-project"):
|
|
||||||
if (
|
|
||||||
(args.membership_number is None)
|
|
||||||
or
|
|
||||||
(args.name is None)
|
|
||||||
or
|
|
||||||
(args.email_address is None)
|
|
||||||
):
|
|
||||||
log_error(
|
|
||||||
"mandatory_parameters_missing",
|
|
||||||
{
|
|
||||||
"parameters": [
|
|
||||||
"membership_number",
|
|
||||||
"name",
|
|
||||||
"email_address",
|
|
||||||
]
|
|
||||||
}
|
|
||||||
)
|
|
||||||
else:
|
|
||||||
member_id = backend_api_call_member_project(
|
|
||||||
args.membership_number,
|
|
||||||
args.name.replace("_", " "),
|
|
||||||
args.email_address,
|
|
||||||
([] if (args.groups is None) else args.groups.split(",")),
|
|
||||||
None
|
|
||||||
)
|
|
||||||
_sys.stdout.write(_json.dumps(member_id, indent = "\t") + "\n")
|
|
||||||
elif (args.action == "member-delete"):
|
elif (args.action == "member-delete"):
|
||||||
if (
|
if (
|
||||||
(args.id is None)
|
(data["id"] is None)
|
||||||
):
|
):
|
||||||
log_error(
|
log_error(
|
||||||
"mandatory_parameters_missing",
|
"mandatory_parameters_missing",
|
||||||
|
|
@ -171,7 +191,40 @@ def main():
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
member_id = backend_api_call_member_delete(
|
member_id = backend_api_call_member_delete(
|
||||||
args.id
|
data["id"]
|
||||||
|
)
|
||||||
|
elif (args.action == "invite"):
|
||||||
|
if (
|
||||||
|
(data["name_value"] is None)
|
||||||
|
or
|
||||||
|
(data["label_value"] is None)
|
||||||
|
or
|
||||||
|
(data["email_address_value"] is None)
|
||||||
|
or
|
||||||
|
(data["groups_value"] is None)
|
||||||
|
):
|
||||||
|
log_error(
|
||||||
|
"mandatory_parameters_missing",
|
||||||
|
{
|
||||||
|
"parameters": [
|
||||||
|
"name",
|
||||||
|
"label",
|
||||||
|
"email_address",
|
||||||
|
"groups",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
link = backend_api_call_invitation_create(
|
||||||
|
data["name_changeable"],
|
||||||
|
data["name_value"],
|
||||||
|
data["label_changeable"],
|
||||||
|
data["label_value"],
|
||||||
|
data["email_address_changeable"],
|
||||||
|
data["email_address_value"],
|
||||||
|
data["groups_changeable"],
|
||||||
|
data["groups_value"],
|
||||||
|
data["expiry"]
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
raise NotImplementedError()
|
raise NotImplementedError()
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue