;;;; http.scm -- HTTP API ;;; Copyright © 2019 Christopher Baines ;;; ;;; This file is part of Cuirass. ;;; ;;; Cuirass 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. ;;; ;;; Cuirass 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 Cuirass. If not, see . (define-module (cuirass send-events) #:use-module (cuirass config) #:use-module (cuirass database) #:use-module (cuirass utils) #:use-module (cuirass logging) #:use-module (web client) #:use-module (json) #:use-module (srfi srfi-1) #:export (send-build-events)) (define* (send-build-events target-url #:key (batch-limit 100)) (let ((events-to-send (db-get-build-events-in-outbox batch-limit))) (unless (null? events-to-send) (http-post target-url #:body (object->json-string `((events . ,(list->vector events-to-send))))) (db-delete-build-events-from-outbox-with-ids-<=-to (peek (assq-ref (last events-to-send) #:id))) (simple-format #t "Sent ~A events\n" (length events-to-send)))))