SimpleCloudNotifier/scnserver/TODO.md

2.1 KiB

TODO

DO DO DO

  • app-store link in HTML

  • ios purchase verification

  • (!) use goext.ginWrapper

  • (!) use goext.exerr

  • use bfcodegen (enums+id)

UNSURE

  • (?) default-priority for channels

  • (?) "login" on website and list/search/filter messages

  • (?) make channels deleteable (soft-delete) (what do with messages in channel?)

  • (?) desktop client for notifications

  • (?) add querylog (similar to requestlog/errorlog) - only for main-db

  • (?) specify 'type' of message (debug, info, warn, error, fatal) -> distinct from priority

LATER

  • do i need bool2db()? it seems to work for keytokens without them?

  • We no longer have a route to reshuffle all keys (previously in updateUser), add a /user/:uid/keys/reset ? Would delete all existing keys and create 3 new ones?

  • error logging as goroutine, gets all errors via channel, (channel buffered - nonblocking send, second channel that gets a message when sender failed ) (then all errors end up in second sqlite table) due to message channel etc everything is non blocking and cant fail in main

  • => implement proper error logging in goext, kinda combines zerolog and wrapped-errors copy basic code from bringman, but remove all bm specific stuff and make it abstract Register(ErrType) methods, errtypes then as structs log.xxx package with same interface as zerolog

  • jobs to clear error-db to only keep X entries... (requests-db already exists)

  • route to re-check all pro-token (for me)

  • endpoint to list all servernames of user (distinct select)

  • weblogin, webapp, ...

  • Pagination for ListChannels / ListSubscriptions / ListClients / ListChannelSubscriptions / ListUserSubscriptions

  • Use only single struct for DB|Model|JSON

    • needs sq.Converter implementation
    • needs to handle joined data
    • rfctime.Time...
  • use job superclass (copy from isi/bnet/?), reduce duplicate code

  • admin panel (especially errors and requests)

  • cli app (?)

FUTURE

  • Remove compat, especially do not create compat id for every new message...