in path-manager/app/services/PathStore.scala [29:58]
def registerNew(path: String, system: String) = {
logger.debug(s"Registering new path [$path]")
if (PathValidator.isInvalid(path)) {
Left(s"invalid path [$path]")
} else {
val existingPath = Option(Dynamo.pathsTable.getItem("path", path)).map(PathRecord(_))
existingPath match {
case Some(pr) => {
logger.warn(s"Failed to register new path [$path], already claimed by id [${pr.identifier}]")
Left("path already in use")
}
case None => {
val id = IdentifierSequence.getNextId
logger.debug(s"generated id [$id] path [$path]")
val pathRecord = PathRecord(path, id, CANONICAL_PATH_TYPE, system)
val shortUrlPathRecord = PathRecord(ShortUrlEncoder.generateShortUrlPath(id), id, "short", system)
putPathItemAndAwaitIndexUpdate(pathRecord)
logger.debug(s"Adding new short url record for [$id]. short path[${shortUrlPathRecord.path }]")
Dynamo.pathsTable.putItem(shortUrlPathRecord.asDynamoItem)
logger.debug(s"Registered path [$path] for id [$id] successfully")
Right(List(pathRecord, shortUrlPathRecord).groupBy(_.`type`))
}
}
}
}