Skip to content

Instantly share code, notes, and snippets.

@mrueegg
Created March 9, 2017 17:12
Show Gist options
  • Save mrueegg/4cf049998b988fdb593653f55991b214 to your computer and use it in GitHub Desktop.
Save mrueegg/4cf049998b988fdb593653f55991b214 to your computer and use it in GitHub Desktop.
Server-side SOY function to render user information in Bitbucket Server
class UserNavSoyFunction(navBuilder: NavBuilder) extends SoyServerFunction[String] with SoyClientFunction {
override def getName: String = "my_nav_user_absolute"
override def validArgSizes(): JSet[Integer] = Set(1).asJava
override def apply(args: AnyRef*): String = args.toList match {
case (user: ApplicationUser) :: Nil => navBuilder.user(user).buildAbsolute()
case _ => ""
}
override def generate(jsExpressions: JsExpression*): JsExpression =
new JsExpression(getName + "(" + jsExpressions(0).getText + ")")
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment