Class: BookDBDataSource
- Inherits:
-
Object
- Object
- BookDBDataSource
- Defined in:
- lib/data_sources/book_db_data_source.rb
Instance Method Summary collapse
- #add(book) ⇒ Object
- #change(book) ⇒ Object
- #delete(id) ⇒ Object
- #get(id) ⇒ Object
- #get_list(page_size, page_num, sort_field, sort_direction) ⇒ Object
-
#initialize ⇒ BookDBDataSource
constructor
A new instance of BookDBDataSource.
Constructor Details
#initialize ⇒ BookDBDataSource
Returns a new instance of BookDBDataSource.
4 5 6 |
# File 'lib/data_sources/book_db_data_source.rb', line 4 def initialize @client = DBClient.instance end |
Instance Method Details
#add(book) ⇒ Object
8 9 10 11 |
# File 'lib/data_sources/book_db_data_source.rb', line 8 def add(book) query = "INSERT INTO Book (BookID, Title, AuthorID, PublisherID) VALUES (#{book.id}, '#{book.title}', #{book.}, #{book.publisher_id})" @client.query(query) end |
#change(book) ⇒ Object
13 14 15 16 |
# File 'lib/data_sources/book_db_data_source.rb', line 13 def change(book) query = "UPDATE Book SET Title='#{book.title}', AuthorID=#{book.}, PublisherID=#{book.publisher_id} WHERE BookID=#{book.id}" @client.query(query) end |
#delete(id) ⇒ Object
18 19 20 21 |
# File 'lib/data_sources/book_db_data_source.rb', line 18 def delete(id) query = "DELETE FROM Book WHERE BookID=#{id}" @client.query(query) end |
#get(id) ⇒ Object
23 24 25 26 27 28 29 30 31 |
# File 'lib/data_sources/book_db_data_source.rb', line 23 def get(id) query = "SELECT * FROM Book WHERE BookID=#{id}" result = @client.query(query).first if result Book.new(result['BookID'], result['Title'], result['AuthorID'], result['PublisherID']) else nil end end |
#get_list(page_size, page_num, sort_field, sort_direction) ⇒ Object
33 34 35 36 37 38 39 40 41 42 |
# File 'lib/data_sources/book_db_data_source.rb', line 33 def get_list(page_size, page_num, sort_field, sort_direction) offset = (page_num - 1) * page_size query = "SELECT * FROM Book ORDER BY #{sort_field} #{sort_direction} LIMIT #{page_size} OFFSET #{offset}" results = @client.query(query) books = [] results.each do |result| books << Book.new(result['BookID'], result['Title'], result['AuthorID'], result['PublisherID']) end books end |