From bd39b2d25521a89cabc313f284543d481c221133 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Pant=C5=AF=C4=8Dek?= Date: Tue, 4 Apr 2023 23:25:29 +0200 Subject: [PATCH] Document the members base module. --- MODULES.md | 108 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) diff --git a/MODULES.md b/MODULES.md index 68f3ce4..6f3f744 100644 --- a/MODULES.md +++ b/MODULES.md @@ -381,6 +381,114 @@ load, parse and interpret its contents. ### Members Base +This module uses the members directory module to load and parse all +members files and provides a simple interface for accessing the data. + + (load-members dn [progress?]) + +* ```dn``` - directory with member files +* ```progress?``` - if ```#t```, displays loading progress + +Loads all member files and creates a members base data structure. + + (members-base-members mb) + +* ```mb``` - members base structure + +Returns the list of all member records loaded. + + (find-member-by-id mb id) + +* ```mb``` - members base structure +* ```id``` - member identifier (4-digit prime number) + +Returns the member record associated with the provided ```id```. + + (find-member-by-nick mb nick) + +* ```mb``` - members base structure +* ```nick``` - member nick + +Returns the member record identified by its ```nick```. + + (find-members-by-nick mb nick) + +* ```mb``` - members base structure +* ```nick``` - member nick + +Returns the list of all member records with substring matching of +```nick```. May return empty list, list with one member or multiple +member records. + + (list-members-ids mb) + +* ```mb``` - members base structure + +Returns a list of all members' ids. + + (filter-members-by-predicate mb pred) + +* ```mb``` - members base structure +* ```pred``` - predicate procedure + +Returns a list of all member records matching the given predicate. + + (list-members-nicks mb) + +* ```mb``` - members base structure + +Returns a list of all member nicks. + + (members-base-info mb) + +* ```mb``` - members base structure + +Returns a dictionary with basic information about given members +base. The dictionary contains the following keys: + +* ```'invalid``` - a list of all invalid member records +* ```'active``` - a list of all active member records +* ```'suspended``` - a list of all suspended member records +* ```'students``` - a list of all student member records +* ```'destroyed``` - a list of all destroyed member records +* ```'month``` - the current month for this info dictionary +* ```'total``` - a list of all member records contained + +This procedure is used for further printing of information about given +members base. + + (members-base-stats mb) + +* ```mb``` - members base structure + +Creates a list of lists of statistical information about given members +base through time. The first row of the resulting list contains column +headers and the rows are sorted chronologically by month. + + (get-free-members-ids mb) + +* ```mb``` - members base structure + +Returns a list of valid member ids which are not already used in given +members base. + + (gen-member-id mb) + + +* ```mb``` - members base structure + +Generates a random 4-digit prime number which is not yet used as a +member id. + + (members-base-update mb pred? proc) + +* ```mb``` - members base structure +* ```pred?``` - member record predicate +* ```proc``` - processing procedure + +Updates given members base by applying ```proc``` to all member +records matching ```pred?```. + ### Members Payments Processor ### Members Info Printer