2023-03-11 20:31:48 -08:00
import Combine
import GRDB
import GRDBQuery
struct SegDenormRequest : Queryable {
enum Ordering {
case byScore
case byName
}
var book : String
// MARK: - Q u e r y a b l e I m p l e m e n t a t i o n
static var defaultValue : [ SegDenorm ] { [ ] }
func publisher ( in appDatabase : AppDatabase ) -> AnyPublisher < [ SegDenorm ] , Error > {
ValueObservation
. tracking ( fetchValue ( _ : ) )
. publisher (
in : appDatabase . reader ,
scheduling : . immediate )
. eraseToAnyPublisher ( )
}
func fetchValue ( _ db : Database ) throws -> [ SegDenorm ] {
print ( " WOOOOOOF " )
var sql = " select seg_id as id, seg.book as book, group_concat(line.body, ';;') as body from seg join line on seg.line_id = line.rowid WHERE seg.book = 'bible.john' group by seg.seg_id "
do {
var ret = try SegDenorm . fetchAll ( db , sql : sql ) // [ P l a y e r ]
2023-04-22 01:01:09 -07:00
// p r i n t ( " S E G S D E N O R M " )
// p r i n t ( r e t )
2023-03-11 20:31:48 -08:00
return ret
} catch let error {
print ( error . localizedDescription )
print ( error )
print ( " Error " )
return [ ]
}
// i f b o o k = = " " {
// r e t u r n t r y S e g . f i l t e r ( b o o k C o l u m n = = " b i b l e . j o h n " ) ) . f e t c h A l l ( d b )
// } e l s e {
// r e t u r n t r y S e g . f i l t e r ( b o o k C o l u m n = = b o o k ) . f e t c h A l l ( d b )
// }
// s w i t c h o r d e r i n g {
// c a s e . b y S c o r e :
// r e t u r n t r y S e g . a l l ( ) . f e t c h A l l ( d b )
// c a s e . b y N a m e :
// / / r e t u r n t r y S e g . a l l ( ) . o r d e r e d B y N a m e ( ) . f e t c h A l l ( d b )
// r e t u r n t r y S e g . a l l ( ) . f e t c h A l l ( d b )
// }
}
}