Class: ShopifyApp::SessionRepository

Inherits:
Object
  • Object
show all
Extended by:
ShopifyAPI::Auth::SessionStorage
Defined in:
lib/shopify_app/session/session_repository.rb

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.shop_storageObject



36
37
38
39
# File 'lib/shopify_app/session/session_repository.rb', line 36

def shop_storage
  load_shop_storage || raise(::ShopifyApp::ConfigurationError,
    "ShopifySessionRepository.shop_storage is not configured!")
end

.user_storageObject



41
42
43
# File 'lib/shopify_app/session/session_repository.rb', line 41

def user_storage
  load_user_storage
end

Class Method Details

.delete_session(id) ⇒ Object

ShopifyAPI::Auth::SessionStorage override



65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'lib/shopify_app/session/session_repository.rb', line 65

def delete_session(id)
  match = id.match(/^offline_(.*)/)

  record = if match
    Shop.find_by(shopify_domain: match[1])
  else
    User.find_by(shopify_user_id: id.split("_").last)
  end

  record.destroy

  true
end

.load_session(id) ⇒ Object

ShopifyAPI::Auth::SessionStorage override



55
56
57
58
59
60
61
62
# File 'lib/shopify_app/session/session_repository.rb', line 55

def load_session(id)
  match = id.match(/^offline_(.*)/)
  if match
    retrieve_shop_session_by_shopify_domain(match[1])
  else
    retrieve_user_session_by_shopify_user_id(id.split("_").last)
  end
end

.retrieve_shop_session(id) ⇒ Object



12
13
14
# File 'lib/shopify_app/session/session_repository.rb', line 12

def retrieve_shop_session(id)
  shop_storage.retrieve(id)
end

.retrieve_shop_session_by_shopify_domain(shopify_domain) ⇒ Object



20
21
22
# File 'lib/shopify_app/session/session_repository.rb', line 20

def retrieve_shop_session_by_shopify_domain(shopify_domain)
  shop_storage.retrieve_by_shopify_domain(shopify_domain)
end

.retrieve_user_session(id) ⇒ Object



16
17
18
# File 'lib/shopify_app/session/session_repository.rb', line 16

def retrieve_user_session(id)
  user_storage.retrieve(id)
end

.retrieve_user_session_by_shopify_user_id(user_id) ⇒ Object



24
25
26
# File 'lib/shopify_app/session/session_repository.rb', line 24

def retrieve_user_session_by_shopify_user_id(user_id)
  user_storage.retrieve_by_shopify_user_id(user_id)
end

.store_session(session) ⇒ Object

ShopifyAPI::Auth::SessionStorage override



46
47
48
49
50
51
52
# File 'lib/shopify_app/session/session_repository.rb', line 46

def store_session(session)
  if session.online?
    user_storage.store(session, session.associated_user)
  else
    shop_storage.store(session)
  end
end

.store_shop_session(session) ⇒ Object



28
29
30
# File 'lib/shopify_app/session/session_repository.rb', line 28

def store_shop_session(session)
  shop_storage.store(session)
end

.store_user_session(session, user) ⇒ Object



32
33
34
# File 'lib/shopify_app/session/session_repository.rb', line 32

def store_user_session(session, user)
  user_storage.store(session, user)
end