Sha256: 7d484b85b6ceb87331aa4b58d9678af2be70688f806f736d34228e8843f5045c
Contents?: true
Size: 1.01 KB
Versions: 1
Compression:
Stored size: 1.01 KB
Contents
module Spree class DeviceService include Singleton def find_or_create_user_device(user, name, uid) user_device = find_user_device(user, uid) return user_device if user_device.present? create_user_device(user, name, uid) end def destroy_user_device(user, device_id) device = Spree::Device.find(device_id) user_device = Spree::UserDevice.where(user: user, device: device).first user_device.destroy if user_device.present? device.destroy if device.user_devices.count.zero? end def find_user_device(user, uid) Spree::UserDevice.joins(:device) .where('spree_user_devices.user_id = ?', user.id) .where('spree_devices.uid = ?', uid).first end private def create_user_device(user, name, uid) device = Spree::Device.where(name: name, uid: uid).first_or_initialize user_device = Spree::UserDevice.new(user: user, device: device) user_device.save user_device end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
spree_devices-1.2.0 | app/services/spree/device_service.rb |