Sha256: 7d8b39aee6d888d314c17cc2421184af76a4d15eae9c102ff8a5c88e8a79ed6e
Contents?: true
Size: 1.24 KB
Versions: 1
Compression:
Stored size: 1.24 KB
Contents
require 'mysql2' require_relative 'db_client' class CarDbDataSource def initialize @client = DBClient.instance end def add(car) query = "INSERT INTO Car (CarID, Model, OwnerID, TenantID) VALUES (#{car.id}, '#{car.title}', #{car.owner_id}, #{car.tenant_id})" @client.query(query) end def change(car) query = "UPDATE Car SET Title='#{car.title}', OwnerID=#{car.owner_id}, TenantID=#{car.tenant_id} WHERE CarID=#{car.id}" @client.query(query) end def delete(id) query = "DELETE FROM Car WHERE CarID=#{id}" @client.query(query) end def get(id) query = "SELECT * FROM Car WHERE CarID=#{id}" result = @client.query(query).first if result Car.new(result['CarID'], result['Model'], result['OwnerID'], result['TenantID']) else nil end end def get_list(page_size, page_num, sort_field, sort_direction) offset = (page_num - 1) * page_size query = "SELECT * FROM Car ORDER BY #{sort_field} #{sort_direction} LIMIT #{page_size} OFFSET #{offset}" results = @client.query(query) cars = [] results.each do |result| cars << Car.new(result['CarID'], result['Model'], result['OwnerID'], result['TenantID']) end cars end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
shnaider_carproj-0.1.0 | lib/data_sources/car_db_data_source.rb |