| 28 | ) |
| 29 | |
| 30 | type Runner struct { |
| 31 | client *codersdk.Client |
| 32 | cfg Config |
| 33 | |
| 34 | createUserRunner *createusers.Runner |
| 35 | |
| 36 | // websocketReceiptTimes stores the receipt time for websocket notifications |
| 37 | websocketReceiptTimes map[uuid.UUID]time.Time |
| 38 | websocketReceiptTimesMu sync.RWMutex |
| 39 | |
| 40 | // smtpReceiptTimes stores the receipt time for SMTP notifications |
| 41 | smtpReceiptTimes map[uuid.UUID]time.Time |
| 42 | smtpReceiptTimesMu sync.RWMutex |
| 43 | |
| 44 | clock quartz.Clock |
| 45 | } |
| 46 | |
| 47 | func NewRunner(client *codersdk.Client, cfg Config) *Runner { |
| 48 | return &Runner{ |
nothing calls this directly
no outgoing calls
no test coverage detected