Document the members base module.

This commit is contained in:
Dominik Pantůček 2023-04-04 23:25:29 +02:00
parent f3cf268a3c
commit bd39b2d255

View file

@ -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