require 'fileutils'
require 'pg'
+require 'series'
+
class Store
def initialize
@basepath = '/arc/quanlib' # TODO: FIXME: configure this in a sane way
(efspath, efsname) = construct_efs_path(id)
- File.open(@basepath + '/efs/' + efspath + '/' + efsname, 'rb') do |is|
- return Cover.new(is, efsname, mime_type)
- end
+ fullpath = @basepath + '/efs/' + efspath + '/' + efsname
- return nil
+ return Cover.new(nil, fullpath, mime_type)
+
+ #File.open(fullpath, 'rb') do |is|
+ # return Cover.new(is, fullpath, mime_type)
+ #end
+ #
+ #return nil
end
def store_cover(book)
end
def load_series(id)
- sql = "SELECT descr FROM Series WHERE id=$1;"
+ sql = "SELECT age,genre,grouping,code,descr FROM Series WHERE id=$1;"
args = [id]
@conn.exec_params(sql, args) do |rs|
if rs.ntuples > 0
- return rs[0]['descr']
+ row = rs[0]
+ series = Series.new(id)
+ series.age = row['age']
+ series.genre = row['genre']
+ series.grouping = row['grouping']
+ series.code = row['code']
+ series.descr = row['descr']
+ return series
end
end
return nil
end
return book_ids
end
+
+ def query_books_by_series_id(id)
+ sql =
+<<EOS
+ SELECT b.id FROM Books b
+ WHERE b.series = $1
+ ORDER BY b.volume,b.title
+EOS
+ book_ids = []
+ @conn.exec_params(sql, [id]) do |rs|
+ rs.each do |row|
+ book_ids.push(row['id'])
+ end
+ end
+ return book_ids
+ end
+
+ def query_series_by_age(pattern)
+ sql =
+<<EOS
+ SELECT s.id
+ FROM Series s
+ WHERE s.age LIKE $1
+ ORDER BY s.grouping,s.descr
+EOS
+ series_ids = []
+ @conn.exec_params(sql, [pattern]) do |rs|
+ rs.each do |row|
+ series_ids.push(row['id'])
+ end
+ end
+ return series_ids
+ end
end