This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| val route = path("download") { | |
| get { | |
| optionalHeaderValueByName("Range") { | |
| case None => | |
| // there must always be range | |
| complete(StatusCodes.RequestedRangeNotSatisfiable) | |
| case Some(range) => | |
| val file = new File("movie.mp4") | |
| val fileSize = file.length() | |
| val rng = range.split("=")(1).split("-") |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| val route = path("download") { | |
| get { | |
| optionalHeaderValueByName("Range") { | |
| case None => | |
| // there must always be range header | |
| complete(StatusCodes.RequestedRangeNotSatisfiable) | |
| case Some(range) => | |
| val file = new File("movie.mp4") | |
| val fileSize = file.length() |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| val route = get { | |
| path("download") { | |
| val file = new File("movie.mp4") | |
| respondWithHeaders(RawHeader("Content-Disposition", s"""attachment; filename="movie.mp4"""")) { | |
| complete(HttpEntity(ContentTypes.`application/octet-stream`, FileIO.fromPath(file.toPath))) | |
| } | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| trait MarshallingSupport | |
| extends SprayJsonSupport | |
| with DefaultJsonProtocol with Runtime[Unit] { self => | |
| //implicit marshallers for my return Type A | |
| implicit val todoItemFormatter = jsonFormat2(TodoItem) | |
| implicit val todoNameFormatter = jsonFormat1(TodoName) | |
| sealed trait ErrorToHttpResponse[E] { | |
| def toHttpResponse(value: E): HttpResponse |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| sealed trait DatabaseDriver { | |
| // //A lot of database config we don't care about | |
| // //Database object | |
| lazy val db = new ConnectionPool(_, _) | |
| } | |
| trait PostgresDatabase extends Database with DatabaseDriver { | |
| private def runQuery(query: String): IO[Throwable, QueryResult] = { | |
| for { | |
| result <- ZIO.fromFuture(_ => db.sendPreparedStatement(query)) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| sealed trait DatabaseDriver { | |
| //A lot of database config we don't care about | |
| //Database object | |
| private val pool = new ConnectionPool(_, _) | |
| //create an effect from the pool | |
| lazy val db: UIO[ConnectionPool[MySQLConnection]] = UIO.fromFunction(_ => pool) | |
| } | |
| trait PostgresDatabase extends Database with DatabaseDriver { self => | |
| private def runQuery(query: String): ZIO[DatabaseDriver, Throwable, QueryResult] = { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| lazy val fetchConfFile = taskKey[File]("fetch Config file") | |
| fetchConfFile := { | |
| //simulate fetching a remote file | |
| sLog.value.info("fetching file ...... ") | |
| Thread.sleep(1000) | |
| new java.io.File("/tmp/application.conf").createNewFile() | |
| val configFile : File = new java.io.File("/tmp/application.conf") | |
| sLog.value.info("done fetching file .... ") | |
| configFile |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| lazy val zip = taskKey[Unit]("zip files") //define the key | |
| zip := { // assigning a value to the zip key of type Unit | |
| val logger: Logger = sLog.value //get logger from SBT | |
| //where to zip from | |
| val dirFromZip: File = srcFile.value | |
| //where to zip to | |
| val dirToZip: File = baseDirectory.value / "build.sbt.zip" | |
| logger.info(s"zipping files from ${dirFromZip.absolutePath}") |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name := "phony" | |
| version := "0.2" | |
| scalaVersion := "2.12.6" | |
| organization := "com.phony" | |
| libraryDependencies += "com.googlecode.libphonenumber" % "libphonenumber" % "8.10.23" | |
| scalacOptions := Seq( // commands passed to the scala compiler | |
| "-feature", | |
| "-unchecked", | |
| "-deprecation", |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name := "phony" | |
| version := "0.2" | |
| scalaVersion := "2.12.6" | |
| organization := "com.phony" | |
| libraryDependencies += "com.googlecode.libphonenumber" % "libphonenumber" % "8.10.23" |
NewerOlder