package com.intrbiz.bergamot.ui.api; import java.util.LinkedList; import java.util.List; import java.util.UUID; import com.intrbiz.balsa.engine.route.Router; import com.intrbiz.balsa.metadata.WithDataAdapter; import com.intrbiz.bergamot.data.BergamotDB; import com.intrbiz.bergamot.model.Site; import com.intrbiz.bergamot.ui.BergamotApp; import com.intrbiz.metadata.Get; import com.intrbiz.metadata.IsaInt; import com.intrbiz.metadata.JSON; import com.intrbiz.metadata.ListOf; import com.intrbiz.metadata.Prefix; import com.intrbiz.metadata.RequireValidPrincipal; import com.intrbiz.metadata.Var; @Prefix("/api/util") @RequireValidPrincipal() public class UtilAPIRouter extends Router<BergamotApp> { @Get("/version") @JSON() public String version() { return BergamotApp.VERSION.NUMBER + " (" + BergamotApp.VERSION.CODE_NAME + ")"; } @Get("/version/number") @JSON() public String versionNumber() { return BergamotApp.VERSION.NUMBER; } @Get("/version/codename") @JSON() public String versionCodeName() { return BergamotApp.VERSION.CODE_NAME; } @Get("/id/new") @JSON(notFoundIfNull = true) @WithDataAdapter(BergamotDB.class) public UUID newId(@Var("site") Site site) { return site.randomObjectId(); } @Get("/id/new/:count") @JSON(notFoundIfNull = true) @WithDataAdapter(BergamotDB.class) @ListOf(UUID.class) public List<UUID> newIds(@Var("site") Site site, @IsaInt(min = 1, max = 1000) Integer count) { List<UUID> ids = new LinkedList<UUID>(); for (int i = 0; i < count; i++) { ids.add(site.randomObjectId()); } return ids; } }