Class: WorkflowRb::Mongo::MongoPersistenceProvider

Inherits:
Object
  • Object
show all
Defined in:
lib/workflow_rb/mongo/mongo_persistence_provider.rb

Instance Method Summary collapse

Constructor Details

#initializeMongoPersistenceProvider

Returns a new instance of MongoPersistenceProvider.



12
13
# File 'lib/workflow_rb/mongo/mongo_persistence_provider.rb', line 12

def initialize
end

Instance Method Details

#create_new_workflow(workflow) ⇒ Object



15
16
17
18
19
20
21
# File 'lib/workflow_rb/mongo/mongo_persistence_provider.rb', line 15

def create_new_workflow(workflow)
  p = PersistedWorkflow.new
  workflow.fill_persisted(p)
  p.save
  workflow.id = p._id
  p._id
end

#create_subscription(subscription) ⇒ Object



40
41
42
43
44
45
46
# File 'lib/workflow_rb/mongo/mongo_persistence_provider.rb', line 40

def create_subscription(subscription)
  p = PersistedEventSubscription.new
  subscription.fill_persisted(p)
  p.save
  subscription.id = p._id
  p._id
end

#create_unpublished_event(pub) ⇒ Object



59
60
61
62
63
64
65
# File 'lib/workflow_rb/mongo/mongo_persistence_provider.rb', line 59

def create_unpublished_event(pub)
  p = PersistedEventPublication.new
  pub.fill_persisted(p)
  p.save
  pub.id = p._id
  p._id
end

#get_runnable_instancesObject



34
35
36
37
38
# File 'lib/workflow_rb/mongo/mongo_persistence_provider.rb', line 34

def get_runnable_instances
  PersistedWorkflow
      .where(status: WorkflowRb::WorkflowStatus::RUNNABLE)
      .and(:next_execution.lte => Time.new)
end

#get_subscriptions(event_name, event_key) ⇒ Object



48
49
50
51
52
# File 'lib/workflow_rb/mongo/mongo_persistence_provider.rb', line 48

def get_subscriptions(event_name, event_key)
  PersistedEventSubscription
      .where(event_name: event_name)
      .and(event_key: event_key)
end

#get_unpublished_eventsObject



72
73
74
# File 'lib/workflow_rb/mongo/mongo_persistence_provider.rb', line 72

def get_unpublished_events
  PersistedEventPublication.all
end

#get_workflow_instance(id) ⇒ Object



29
30
31
32
# File 'lib/workflow_rb/mongo/mongo_persistence_provider.rb', line 29

def get_workflow_instance(id)
  existing = PersistedWorkflow.find(id)
  existing.to_object
end

#persist_workflow(workflow) ⇒ Object



23
24
25
26
27
# File 'lib/workflow_rb/mongo/mongo_persistence_provider.rb', line 23

def persist_workflow(workflow)
  existing = PersistedWorkflow.find(workflow.id)
  workflow.fill_persisted(existing)
  existing.save
end

#remove_unpublished_event(id) ⇒ Object



67
68
69
70
# File 'lib/workflow_rb/mongo/mongo_persistence_provider.rb', line 67

def remove_unpublished_event(id)
  existing = PersistedEventPublication.find(id)
  existing.delete
end

#terminate_subscription(id) ⇒ Object



54
55
56
57
# File 'lib/workflow_rb/mongo/mongo_persistence_provider.rb', line 54

def terminate_subscription(id)
  existing = PersistedEventSubscription.find(id)
  existing.delete
end