aboutsummaryrefslogtreecommitdiffstats
path: root/elisp
diff options
context:
space:
mode:
authorOscar Najera <hi@oscarnajera.com>2025-05-17 12:46:44 +0200
committerOscar Najera <hi@oscarnajera.com>2025-05-17 12:46:44 +0200
commitba9745a127a0db59f18cb5883e85102346a6172e (patch)
tree85740ea8de545ff20a91f2b1749d89484d7c5984 /elisp
parent790f89e9687a5e291cf26a5a85bff871a46e675e (diff)
downloaddotfiles-ba9745a127a0db59f18cb5883e85102346a6172e.tar.gz
dotfiles-ba9745a127a0db59f18cb5883e85102346a6172e.tar.bz2
dotfiles-ba9745a127a0db59f18cb5883e85102346a6172e.zip
delivery dhl time window
Diffstat (limited to 'elisp')
-rw-r--r--elisp/delivery-track.el39
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."