6
6
"encoding/json"
7
7
"errors"
8
8
"fmt"
9
- "github.com/BigJk/snd/rpc/bind"
10
9
"image"
11
10
"image/png"
12
11
"io/ioutil"
@@ -18,6 +17,8 @@ import (
18
17
"strings"
19
18
"time"
20
19
20
+ "github.com/BigJk/snd/rpc/bind"
21
+
21
22
"github.com/BigJk/snd"
22
23
"github.com/BigJk/snd/database"
23
24
"github.com/patrickmn/go-cache"
@@ -286,27 +287,38 @@ func RegisterPrint(route *echo.Group, extern *echo.Group, db database.Database,
286
287
return nil
287
288
}
288
289
289
- bind .MustBind (route , "/printTemplate" , func (id string , entry snd.Entry , config interface {} ) error {
290
+ bind .MustBind (route , "/printTemplate" , func (id string , entry snd.Entry , config map [ string ] any ) error {
290
291
_ , err := db .GetTemplate (id )
291
292
if err != nil {
292
293
return err
293
294
}
294
295
return externPrintTemplate (id , entry , config )
295
296
})
296
297
297
- bind .MustBind (route , "/printTemplateEntry" , func (id string , eid string , config interface {} ) error {
298
- _ , err := db .GetTemplate (id )
298
+ bind .MustBind (route , "/printTemplateEntry" , func (id string , eid string , config map [ string ] any ) error {
299
+ tmpl , err := db .GetTemplate (id )
299
300
if err != nil {
300
301
return err
301
302
}
303
+
302
304
ent , err := db .GetEntry (id , eid )
303
305
if err != nil {
306
+ // Try to find the entry in the linked data sources
307
+ for _ , dsid := range tmpl .DataSources {
308
+ if ds , err := db .GetSource (dsid ); err == nil {
309
+ if ent , err = db .GetEntry (ds .ID (), eid ); err == nil {
310
+ return externPrintTemplate (id , ent , config )
311
+ }
312
+ }
313
+ }
314
+
304
315
return err
305
316
}
317
+
306
318
return externPrintTemplate (id , ent , config )
307
319
})
308
320
309
- externPrintGenerator := func (genId string , config any ) error {
321
+ externPrintGenerator := func (genId string , config map [ string ] any ) error {
310
322
configJson , err := json .Marshal (config )
311
323
if err != nil {
312
324
return err
@@ -324,7 +336,7 @@ func RegisterPrint(route *echo.Group, extern *echo.Group, db database.Database,
324
336
return nil
325
337
}
326
338
327
- bind .MustBind (route , "/printGenerator" , func (id string , config interface {} ) error {
339
+ bind .MustBind (route , "/printGenerator" , func (id string , config map [ string ] any ) error {
328
340
_ , err := db .GetGenerator (id )
329
341
if err != nil {
330
342
return err
0 commit comments