Skip to content

Commit

Permalink
Merge pull request #672 from OpenOlitor/dev/OO_add_year_filter_work_o…
Browse files Browse the repository at this point in the history
…pportunities_overview

OO add year filter work opportunities overview
  • Loading branch information
mcmpp authored Dec 5, 2023
2 parents 5ba86a8 + 6622fd4 commit 64ec94f
Show file tree
Hide file tree
Showing 5 changed files with 21 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,7 @@ import ch.openolitor.core.filestore._
import ch.openolitor.core.models._
import ch.openolitor.core.security.Subject
import ch.openolitor.stammdaten.models.KundeId
import ch.openolitor.util.parsing.UriQueryFilterParser
import ch.openolitor.util.parsing.QueryFilter
import ch.openolitor.util.parsing.{ QueryFilter, UriQueryFilterParser, UriQueryParamGeschaeftsjahrParser }
import ch.openolitor.stammdaten.repositories.{ DefaultStammdatenReadRepositoryAsyncComponent, StammdatenReadRepositoryAsyncComponent }

import scala.concurrent.ExecutionContext
Expand All @@ -62,11 +61,14 @@ trait ArbeitseinsatzRoutes extends BaseRouteService
implicit val arbeitseinsatzIdPath = long2BaseIdPathMatcher(ArbeitseinsatzId.apply)

def arbeitseinsatzRoute(implicit subject: Subject): Route =
parameters("q".?) { q =>
parameters("q".?, "g".?) { (q, g) =>
implicit val queryFilter = q flatMap {
queryFilter =>
UriQueryFilterParser.parse(queryFilter)
}
implicit val datumsFilter = g flatMap { geschaeftsjahrString =>
UriQueryParamGeschaeftsjahrParser.parse(geschaeftsjahrString)
}
path("arbeitskategorien" ~ exportFormatPath.?) {
exportFormat =>
get(list(arbeitseinsatzReadRepository.getArbeitskategorien, exportFormat)) ~
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,16 +27,16 @@ import ch.openolitor.core.db.OOAsyncDB._
import ch.openolitor.core.db._
import ch.openolitor.core.repositories._
import ch.openolitor.stammdaten.models.KundeId
import ch.openolitor.util.parsing.QueryFilter
import ch.openolitor.util.parsing.{ GeschaeftsjahrFilter, QueryFilter }
import com.typesafe.scalalogging.LazyLogging
import scalikejdbc.async.{ makeSQLToOptionAsync => _, makeSQLToListAsync => _, _ }
import scalikejdbc.async.{ makeSQLToListAsync => _, makeSQLToOptionAsync => _, _ }

import scala.concurrent._

trait ArbeitseinsatzReadRepositoryAsync extends BaseReadRepositoryAsync {
def getArbeitskategorien(implicit asyncCpContext: MultipleAsyncConnectionPoolContext): Future[List[Arbeitskategorie]]

def getArbeitsangebote(implicit asyncCpContext: MultipleAsyncConnectionPoolContext, queryString: Option[QueryFilter]): Future[List[Arbeitsangebot]]
def getArbeitsangebote(implicit asyncCpContext: MultipleAsyncConnectionPoolContext, gjFilter: Option[GeschaeftsjahrFilter], queryString: Option[QueryFilter]): Future[List[Arbeitsangebot]]
def getArbeitsangebot(arbeitsangebotId: ArbeitsangebotId)(implicit asyncCpContext: MultipleAsyncConnectionPoolContext): Future[Option[Arbeitsangebot]]
def getFutureArbeitsangebote(implicit asyncCpContext: MultipleAsyncConnectionPoolContext): Future[List[Arbeitsangebot]]
def getArbeitseinsaetze(implicit asyncCpContext: MultipleAsyncConnectionPoolContext, queryString: Option[QueryFilter]): Future[List[Arbeitseinsatz]]
Expand All @@ -56,9 +56,9 @@ class ArbeitseinsatzReadRepositoryAsyncImpl extends ArbeitseinsatzReadRepository
getArbeitskategorienQuery.future()
}

def getArbeitsangebote(implicit asyncCpContext: MultipleAsyncConnectionPoolContext, queryString: Option[QueryFilter]): Future[List[Arbeitsangebot]] = {
def getArbeitsangebote(implicit asyncCpContext: MultipleAsyncConnectionPoolContext, gjFilter: Option[GeschaeftsjahrFilter], queryString: Option[QueryFilter]): Future[List[Arbeitsangebot]] = {
import scalikejdbc.async.makeSQLToListAsync
getArbeitsangeboteQuery(queryString).future()
getArbeitsangeboteQuery(gjFilter, queryString).future()
}

def getArbeitsangebot(arbeitsangebotId: ArbeitsangebotId)(implicit asyncCpContext: MultipleAsyncConnectionPoolContext): Future[Option[Arbeitsangebot]] = {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,14 +25,14 @@ package ch.openolitor.arbeitseinsatz.repositories
import ch.openolitor.arbeitseinsatz.models._
import ch.openolitor.core.repositories._
import ch.openolitor.stammdaten.models.{ KundeId, Person, Projekt }
import ch.openolitor.util.parsing.QueryFilter
import ch.openolitor.util.parsing.{ GeschaeftsjahrFilter, QueryFilter }
import com.typesafe.scalalogging.LazyLogging
import scalikejdbc.DBSession

trait ArbeitseinsatzReadRepositorySync extends BaseReadRepositorySync {
def getArbeitskategorien(implicit session: DBSession): List[Arbeitskategorie]

def getArbeitsangebote(implicit session: DBSession, queryString: Option[QueryFilter]): List[Arbeitsangebot]
def getArbeitsangebote(implicit session: DBSession, gjFilter: Option[GeschaeftsjahrFilter], queryString: Option[QueryFilter]): List[Arbeitsangebot]
def getArbeitsangebot(arbeitsangebotId: ArbeitsangebotId)(implicit session: DBSession): Option[Arbeitsangebot]
def getFutureArbeitsangebote(implicit session: DBSession): List[Arbeitsangebot]
def getArbeitseinsaetze(implicit session: DBSession, queryString: Option[QueryFilter]): List[Arbeitseinsatz]
Expand All @@ -51,8 +51,8 @@ trait ArbeitseinsatzReadRepositorySyncImpl extends ArbeitseinsatzReadRepositoryS
getArbeitskategorienQuery.apply()
}

def getArbeitsangebote(implicit session: DBSession, queryString: Option[QueryFilter]): List[Arbeitsangebot] = {
getArbeitsangeboteQuery(queryString).apply()
def getArbeitsangebote(implicit session: DBSession, gjFilter: Option[GeschaeftsjahrFilter], queryString: Option[QueryFilter]): List[Arbeitsangebot] = {
getArbeitsangeboteQuery(gjFilter, queryString).apply()
}

def getArbeitsangebot(arbeitsangebotId: ArbeitsangebotId)(implicit session: DBSession): Option[Arbeitsangebot] = {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ import ch.openolitor.core.Macros._
import ch.openolitor.stammdaten.StammdatenDBMappings
import ch.openolitor.stammdaten.models.KundeId
import ch.openolitor.util.querybuilder.UriQueryParamToSQLSyntaxBuilder
import ch.openolitor.util.parsing.QueryFilter
import ch.openolitor.util.parsing.{ GeschaeftsjahrFilter, QueryFilter }
import com.typesafe.scalalogging.LazyLogging
import org.joda.time.DateTime
import scalikejdbc._
Expand Down Expand Up @@ -57,12 +57,14 @@ trait ArbeitseinsatzRepositoryQueries extends LazyLogging with ArbeitseinsatzDBM
}.map(arbeitskategorieMapping(arbeitskategorie)).list
}

protected def getArbeitsangeboteQuery(queryString: Option[QueryFilter]) = {
protected def getArbeitsangeboteQuery(gjFilter: Option[GeschaeftsjahrFilter], queryString: Option[QueryFilter]) = {
withSQL {
select
.from(arbeitsangebotMapping as arbeitsangebot)
.where.append(UriQueryParamToSQLSyntaxBuilder.build(queryString, "titel", arbeitsangebot))
.or.append(UriQueryParamToSQLSyntaxBuilder.build(queryString, "bezeichnung", arbeitsangebot))
.join(projektMapping as projekt)
.where.append(UriQueryParamToSQLSyntaxBuilder.build[Arbeitsangebot](gjFilter, arbeitsangebot, "zeitVon"))
.and.withRoundBracket(_.append(UriQueryParamToSQLSyntaxBuilder.build(queryString, "titel", arbeitsangebot))
.or.append(UriQueryParamToSQLSyntaxBuilder.build(queryString, "bezeichnung", arbeitsangebot)))
.orderBy(arbeitsangebot.zeitVon)
}.map(arbeitsangebotMapping(arbeitsangebot)).list
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -149,4 +149,4 @@ object UriQueryParamToSQLSyntaxBuilder extends LazyLogging with StammdatenDBMapp
s"%${regex replaceAll ("\\*", "%")}%"
}

}
}

0 comments on commit 64ec94f

Please sign in to comment.