src/hg/instinct/hgBamBam/hgBamBam.c 1.5

1.5 2010/05/31 22:07:03 jsanborn
added sharing
Index: src/hg/instinct/hgBamBam/hgBamBam.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/instinct/hgBamBam/hgBamBam.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -b -B -U 4 -r1.4 -r1.5
--- src/hg/instinct/hgBamBam/hgBamBam.c	31 May 2010 00:02:34 -0000	1.4
+++ src/hg/instinct/hgBamBam/hgBamBam.c	31 May 2010 22:07:03 -0000	1.5
@@ -405,8 +405,41 @@
 
 hFreeConn(&conn);
 }
 
+void share()
+{
+char *emailTo   = cartUsualString(cart, bbEmailTo, NULL);
+char *emailFrom = cartUsualString(cart, bbEmailFrom, NULL);
+char *link      = cartUsualString(cart, bbLink, NULL);
+
+struct json *js = newJson();
+
+if (!emailTo || !emailFrom || !link)
+    jsonAddString(js, "response", "All fields must be filled.");
+else
+    {
+    char cmd[1024];
+    safef(cmd, sizeof(cmd),
+	  "echo 'User %s wanted you to check out:\n\n%s\n\nThank you!' | mail -s \"UCSC BamBam Browser link\" -c %s %s",
+	  emailFrom, link, emailFrom, emailTo);
+  
+    int result = system(cmd);
+    if (result == -1)
+	jsonAddString(js, "response", "Error sending email.");
+    else
+	{ 
+	char response[256];
+	safef(response, sizeof(response), "Email sent to %s", emailTo);
+	jsonAddString(js, "response", response);
+	}
+    }
+
+if (js)
+    hPrintf("%s\n", js->print(js));
+}
+
+
 void dispatchRoutines()
 /* Look at command variables in cart and figure out which
  * page to draw. */
 {
@@ -416,8 +449,10 @@
     errAbort("%s is required.", bbMode);
 
 if (sameString(mode, "draw"))
     draw();
+else if (sameString(mode, "share"))
+    share();
 else
     errAbort("Incorrect mode = %s", mode);
 
 cartRemovePrefix(cart, bbPrefix);