From d98dee68ba2ce1e0fe663fe06b469fca25205842 Mon Sep 17 00:00:00 2001
From: Christian Pointner <equinox@helsinki.at>
Date: Fri, 18 Dec 2015 03:40:42 +0100
Subject: added check for existence of requested session


diff --git a/src/helsinki.at/rhimport/session.go b/src/helsinki.at/rhimport/session.go
index 37a4b54..219c233 100644
--- a/src/helsinki.at/rhimport/session.go
+++ b/src/helsinki.at/rhimport/session.go
@@ -138,7 +138,11 @@ func (self *SessionStore) NewSession(ctx ImportContext) (string, error) {
 }
 
 func (self *SessionStore) run(user, id string) (resp sessionRunResponse) {
-	rhdl.Printf("SessionStore: running session '%s/%s'", user, id)
+	if _, exists := self.store[user][id]; exists {
+		rhdl.Printf("SessionStore: running session '%s/%s'", user, id)
+	} else {
+		resp.err = fmt.Errorf("SessionStore: session '%s/%s' not found", user, id)
+	}
 	return
 }
 
@@ -154,7 +158,11 @@ func (self *SessionStore) Run(user, id string) error {
 }
 
 func (self *SessionStore) addProgressHandler(user, id string, userdata interface{}, handler chan ProgressData) (resp sessionAddProgressHandlerResponse) {
-	rhdl.Printf("SessionStore: adding progress handler to '%s/%s'", user, id)
+	if _, exists := self.store[user][id]; exists {
+		rhdl.Printf("SessionStore: adding progress handler to '%s/%s'", user, id)
+	} else {
+		resp.err = fmt.Errorf("SessionStore: session '%s/%s' not found", user, id)
+	}
 	return
 }
 
@@ -172,7 +180,11 @@ func (self *SessionStore) AddProgressHandler(user, id string, userdata interface
 }
 
 func (self *SessionStore) addDoneHandler(user, id string, userdata interface{}, handler chan ImportResult) (resp sessionAddDoneHandlerResponse) {
-	rhdl.Printf("SessionStore: adding done handler to '%s/%s'", user, id)
+	if _, exists := self.store[user][id]; exists {
+		rhdl.Printf("SessionStore: adding done handler to '%s/%s'", user, id)
+	} else {
+		resp.err = fmt.Errorf("SessionStore: session '%s/%s' not found", user, id)
+	}
 	return
 }
 
-- 
cgit v0.10.2