Skip to content

Instantly share code, notes, and snippets.

override def processPDT(r: Req)(): Box[LiftResponse] = {
for (tx <- r.param("tx").or(Failure("parameter tx missing in PayPal PDT call"));
val resp = PaypalDataTransfer(paypalAuthToken, tx, mode, connection);
info <- resp.paypalInfo.or(Failure("Paypal Info not available. PaypalDataTransfer returned: " +
resp));
redir <- tryo(pdtResponse(info, r))) yield {
redir
}
override def processPDT(r: Req)(): Box[LiftResponse] = {
val ret = for (tx <- r.param("tx").or(Failure("parameter tx missing in PayPal PDT call"));
val y = logger.debug("calling PaypalDataTransfer with paypayAuthToken: " + paypalAuthToken +
",tx: " + tx + ", mode: " + mode + ", connection: " + connection);
val resp = PaypalDataTransfer(paypalAuthToken, tx, mode, connection);
info <- resp.paypalInfo.or(Failure("Paypal Info not available. PaypalDataTransfer returned: " +
resp));
redir <- tryo(pdtResponse(info, r))) yield {
redir
}
S.functionLifespan(true) {
pf(toMatch)() match {
case Full(v) =>
(true, Full(LiftRules.convertResponse((liftSession.checkRedirect(v), Nil,
S.responseCookies, req))))
case Empty =>
(true, LiftRules.notFoundOrIgnore(req, Full(liftSession)))
case f: Failure =>
(true, Full(liftSession.checkRedirect(req.createNotFound(f))))
}
class StatelessTestRV extends Logger {
object searchResults extends RequestVar[List[String]](Nil)
def doSearch(param: String) = {
// dummy results ....
"one" :: "two" :: "three" :: Nil
}
def processSubmit(param: String) = {
@dph01
dph01 / gist:2049865
Created March 16, 2012 12:26
media streaming
def serve(reqdFile: String): Box[LiftResponse] = {
debug("request headers: " + S.request.map(_.headers.map(h => h._1 + "\t\t" + h._2 + "\n").toString).openOr(""))
User.currentUser match {
case Full(user) => {
try {
debug("starting in Media Server for logical file: " + reqdFile + ".....")
// e.g. turn 1092345.mp4 into (1092345,mp4)
def serve(reqdFile: String) : Box[LiftResponse] = {
debug("request headers: " + S.request.map( _.headers.map(h => h._1 + "\t\t" + h._2 + "\n").toString).openOr(""))
User.currentUser match {
case Full(user) => {
try {
// e.g. turn 1092345.mp4 into (1092345,mp4)
var (baseName, ext) = Media.splitExtension(reqdFile)
// should be only one in the database, check to make sure, don't want to
// show someone else's video by accident!!
val mediaList = Media.findAll(By(Media.baseNamePhysical,baseName),By(Media.fileExtension,ext))
@dph01
dph01 / gist:1817530
Created February 13, 2012 15:16
using TBNav
<div class="navbar">
<div class="navbar-inner">
<div class="container">
<a class="brand" href="/">My App</a>
<!-- create the 'main' menu items -->
<span data-lift="lift:TBNav.menuToTBNav?eager_eval=true">
<span data-lift="lift:Menu.builder?top:class=nav;li_item:class=active;linkToSelf=true;expandAll=true;group=main"></span>
</span>
<!-- create the 'user' (e.g. login/logout etc) menu items -->
<span data-lift="lift:TBNav.menuToTBNav?eager_eval=true">
@dph01
dph01 / gist:1817453
Created February 13, 2012 15:00
User object
object User extends User with MetaMegaProtoUser[User] {
...
override def loginMenuLocParams = LocGroup("user") :: super.loginMenuLocParams
override def createUserMenuLocParams = LocGroup("user") :: super.createUserMenuLocParams
}
@dph01
dph01 / gist:1817391
Created February 13, 2012 14:50
twitter nav menu definition
def userLinkText = User.currentUser.map(_.shortName).openOr("not logged in").toString
val entries = List(Menu("Home") / "index" >> LocGroup("main"),
Menu("Page 1") / "page1" >> LocGroup("main"),
Menu("Page 2") / "page2" >> LocGroup("main"),
Menu("Page 3") / "page3" >> LocGroup("main") >> PlaceHolder submenus (
Menu("Page 3a") / "page3a" ,
Menu("Page 3b") / "page3b" ,
Menu("Page 3c") / "page3c") ,
User.loginMenuLoc.open_!,
@dph01
dph01 / gist:1705102
Created January 30, 2012 15:53
menu1
Menu("Home") / "index",
Menu("Page 1") / "page1",
Menu("Page 2") / "page2",
Menu("Page 3") / "page3" >> PlaceHolder >> submenus (
Menu("Page 3a") / "page3a",
Menu("Page 3b") / "page3b"
),