diff options
author | Oscar Najera <hi@oscarnajera.com> | 2025-05-17 12:46:44 +0200 |
---|---|---|
committer | Oscar Najera <hi@oscarnajera.com> | 2025-05-17 12:46:44 +0200 |
commit | ba9745a127a0db59f18cb5883e85102346a6172e (patch) | |
tree | 85740ea8de545ff20a91f2b1749d89484d7c5984 | |
parent | 790f89e9687a5e291cf26a5a85bff871a46e675e (diff) | |
download | dotfiles-ba9745a127a0db59f18cb5883e85102346a6172e.tar.gz dotfiles-ba9745a127a0db59f18cb5883e85102346a6172e.tar.bz2 dotfiles-ba9745a127a0db59f18cb5883e85102346a6172e.zip |
delivery dhl time window
-rw-r--r-- | elisp/delivery-track.el | 39 |
1 files changed, 26 insertions, 13 deletions
diff --git a/elisp/delivery-track.el b/elisp/delivery-track.el index e38c285..e1bd7ee 100644 --- a/elisp/delivery-track.el +++ b/elisp/delivery-track.el @@ -33,8 +33,25 @@ (encode-time) (org-insert-timestamp t t))) -(defun delivery-track-org-entry (buffer shipment-id status events) - "Write update on BUFFER the SHIPMENT-ID with STATUS and EVENTS." +(defun delivery-track-org--history (events window) + "String with all EVENTS and hint of delivery time WINDOW." + (with-temp-buffer + (insert "** Shipment reverse history\n") + (when window + (insert "Delivery window: ") + (delivery-track-write-time! (car window)) + (insert "--") + (delivery-track-write-time! (cdr window)) + (insert "\n")) + (seq-doseq (event events) + (seq-let (time status) event + (delivery-track-write-time! time) + (insert " " status "\n"))) + (buffer-string))) + +(defun delivery-track-org-entry (buffer shipment-id status events &optional window) + "Write update on BUFFER the SHIPMENT-ID with STATUS and EVENTS. +Optionally give the delivery WINDOW." (with-current-buffer buffer (goto-char (org-find-entry-with-id shipment-id)) (org-entry-put nil "status" status) @@ -44,12 +61,7 @@ (when (and (= level 2) (string= "Shipment reverse history" headline)) (org-cut-subtree)) - - (insert "** Shipment reverse history\n") - (seq-doseq (event events) - (seq-let (time status) event - (delivery-track-write-time! time) - (insert " " status "\n")))))) + (insert (delivery-track-org--history events window))))) (defun delivery-track--process-response (_request-status buffer provider-parser) "Process API response with PROVIDER-PARSER and update into BUFFER." @@ -64,10 +76,9 @@ (lambda (item) (eq t (gethash "hasCompleteDetails" item))) (gethash "sendungen" response))) - (history (thread-last - shipment-info - (gethash "sendungsdetails") - (gethash "sendungsverlauf")))) + (details (gethash "sendungsdetails" shipment-info)) + (history (gethash "sendungsverlauf" details)) + (delivery (gethash "zustellung" details))) (list (gethash "id" shipment-info) (gethash "kurzStatus" history) @@ -76,7 +87,9 @@ (seq-keep (lambda (event) (when-let ((time (gethash "datum" event))) (list time (gethash "status" event))))) - (reverse))))) + (reverse)) + (cons (gethash "zustellzeitfensterVon" delivery) + (gethash "zustellzeitfensterBis" delivery))))) (defun delivery-track-entry--hermes (response) "Parse hermes RESPONSE into standard delivery-track info for writer." |