Class: ShopifyApp::SessionRepository

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

Defined Under Namespace

Classes: ConfigurationError

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.shop_storageObject



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

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

.user_storageObject



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

def user_storage
  load_user_storage
end

Class Method Details

.delete_session(id) ⇒ Object

ShopifyAPI::Auth::SessionStorage override



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

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



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

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



14
15
16
# File 'lib/shopify_app/session/session_repository.rb', line 14

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

.retrieve_shop_session_by_shopify_domain(shopify_domain) ⇒ Object



22
23
24
# File 'lib/shopify_app/session/session_repository.rb', line 22

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

.retrieve_user_session(id) ⇒ Object



18
19
20
# File 'lib/shopify_app/session/session_repository.rb', line 18

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

.retrieve_user_session_by_shopify_user_id(user_id) ⇒ Object



26
27
28
# File 'lib/shopify_app/session/session_repository.rb', line 26

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



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

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



30
31
32
# File 'lib/shopify_app/session/session_repository.rb', line 30

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

.store_user_session(session, user) ⇒ Object



34
35
36
# File 'lib/shopify_app/session/session_repository.rb', line 34

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