ca.shiftfocus.krispii.core.repositories

CourseRepositoryPostgres

Related Doc: package repositories

class CourseRepositoryPostgres extends CourseRepository with PostgresRepository[Course]

Linear Supertypes
PostgresRepository[Course], CourseRepository, Repository, Lifting[error.RepositoryError.Fail], Serialized, FutureMonad, AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. CourseRepositoryPostgres
  2. PostgresRepository
  3. CourseRepository
  4. Repository
  5. Lifting
  6. Serialized
  7. FutureMonad
  8. AnyRef
  9. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Instance Constructors

  1. new CourseRepositoryPostgres(userRepository: UserRepository)

Value Members

  1. final def !=(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  4. val AddUser: String

  5. val AddUsers: String

  6. val Delete: String

  7. val Fields: String

  8. val FieldsWithTable: String

  9. val FindUserForTeacher: String

  10. val HasProject: String

  11. val Insert: String

  12. val ListByTeacherId: String

  13. val ListCourseForProject: String

  14. val ListCourses: String

  15. val ListCoursesForUserList: String

  16. val OrderBy: String

  17. val QMarks: String

  18. val RemoveAllUsers: String

  19. val RemoveUser: String

  20. val RemoveUsers: String

  21. val SelectAll: String

  22. val SelectOne: String

  23. val SelectOneBySlug: String

  24. val Table: String

  25. val Update: String

  26. def addUser(user: User, course: Course)(implicit conn: Connection, cache: ScalaCache): Future[\/[error.RepositoryError.Fail, Unit]]

    Add a user to a course

    Add a user to a course

    Definition Classes
    CourseRepositoryPostgresCourseRepository
  27. def addUsers(course: Course, users: IndexedSeq[User])(implicit conn: Connection, cache: ScalaCache): Future[\/[error.RepositoryError.Fail, Unit]]

    Add users to a course.

    Add users to a course.

    course

    the course to add users to.

    users

    an array of users to be added.

    conn

    an implicit database Connection.

    returns

    a boolean indicating if the action was successful.

    Definition Classes
    CourseRepositoryPostgresCourseRepository
  28. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  29. def buildEntity[B](maybeResultSet: Option[ResultSet], build: (RowData) ⇒ B): \/[error.RepositoryError.Fail, B]

    Generic method to build an entity from postgresql database results, since the postgresql database may not return results.

    Generic method to build an entity from postgresql database results, since the postgresql database may not return results.

    B

    the type of entity to be built

    maybeResultSet

    an optional ResultSet returned from the database

    build

    a function that can build entities of type A from a RowData object

    returns

    a disjunction containing either a RepositoryError.Fail, or an object of type A

    Attributes
    protected
    Definition Classes
    PostgresRepository
  30. def buildEntityList[B](maybeResultSet: Option[ResultSet], build: (RowData) ⇒ B): \/[error.RepositoryError.Fail, IndexedSeq[B]]

    Generic method to build a list of entities from postgresql database results, since the postgresql database may not return results.

    Generic method to build a list of entities from postgresql database results, since the postgresql database may not return results.

    TODO: check in which case the database driver will return "None" instead of Some(ResultSet)

    B

    the type of entity to be built

    maybeResultSet

    an optional ResultSet returned from the database

    build

    a function that can build entities of type A from a RowData object

    returns

    a disjunction containing either a RepositoryError.Fail, or an object of type A

    Attributes
    protected
    Definition Classes
    PostgresRepository
  31. def cacheComponentKey(compId: UUID): String

    Definition Classes
    Repository
  32. def cacheComponentsKey(id: UUID): String

    Definition Classes
    Repository
  33. def cacheCourseKey(id: UUID): String

    Definition Classes
    Repository
  34. def cacheCourseSlugKey(slug: String): String

    Definition Classes
    Repository
  35. def cacheCoursesKey(id: UUID): String

    Definition Classes
    Repository
  36. def cacheExceptionKey(id: UUID): String

    Definition Classes
    Repository
  37. def cacheExceptionsKey(courseId: UUID, userId: UUID): String

    Definition Classes
    Repository
  38. def cacheExceptionsKey(courseId: UUID): String

    Definition Classes
    Repository
  39. def cachePartKey(id: UUID): String

    Definition Classes
    Repository
  40. def cachePartPosKey(projectId: UUID, partNum: Int): String

    Definition Classes
    Repository
  41. def cachePartsKey(projectId: UUID): String

    Definition Classes
    Repository
  42. def cacheProjectKey(id: UUID): String

    Definition Classes
    Repository
  43. def cacheProjectSlugKey(slug: String): String

    Definition Classes
    Repository
  44. def cacheProjectsKey(courseId: UUID): String

    Definition Classes
    Repository
  45. def cacheRoleKey(id: UUID): String

    Definition Classes
    Repository
  46. def cacheRoleNameKey(name: String): String

    Definition Classes
    Repository
  47. def cacheRolesKey(userId: UUID): String

    Definition Classes
    Repository
  48. def cacheScheduleKey(id: UUID): String

    Definition Classes
    Repository
  49. def cacheSchedulesKey(courseId: UUID): String

    Definition Classes
    Repository
  50. def cacheStudentsKey(id: UUID): String

    Definition Classes
    Repository
  51. def cacheTaskKey(id: UUID): String

    Definition Classes
    Repository
  52. def cacheTaskPosKey(projectId: UUID, partId: UUID, taskNum: Int): String

    Definition Classes
    Repository
  53. def cacheTasksKey(id: UUID): String

    Definition Classes
    Repository
  54. def cacheTeachingKey(id: UUID): String

    Definition Classes
    Repository
  55. def cacheUserKey(id: UUID): String

    Definition Classes
    Repository
  56. def cacheUsernameKey(username: String): String

    Definition Classes
    Repository
  57. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  58. def constructor(row: RowData): Course

  59. def delete(course: Course)(implicit conn: Connection, cache: ScalaCache): Future[\/[error.RepositoryError.Fail, Course]]

    Delete a Course row.

    Delete a Course row.

    course
    conn
    returns

    Definition Classes
    CourseRepositoryPostgresCourseRepository
  60. implicit def eitherRunner[B](eithert: EitherT[Future, error.RepositoryError.Fail, B]): Future[\/[error.RepositoryError.Fail, B]]

    Definition Classes
    Lifting
  61. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  62. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  63. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  64. def find(slug: String)(implicit conn: Connection, cache: ScalaCache): Future[\/[error.RepositoryError.Fail, Course]]

    Find a single entry by ID.

    Find a single entry by ID.

    slug

    the course's slug

    returns

    an optional RowData object containing the results

    Definition Classes
    CourseRepositoryPostgresCourseRepository
  65. def find(id: UUID)(implicit conn: Connection, cache: ScalaCache): Future[\/[error.RepositoryError.Fail, Course]]

    Find a single entry by ID.

    Find a single entry by ID.

    id

    the 128-bit UUID, as a byte array, to search for.

    returns

    an optional RowData object containing the results

    Definition Classes
    CourseRepositoryPostgresCourseRepository
  66. implicit val futureMonad: Monad[Future]

    Definition Classes
    FutureMonad
  67. def getCached[V](key: String)(implicit cache: ScalaCache): Future[\/[error.RepositoryError.Fail, V]]

    Definition Classes
    Repository
  68. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  69. def hasProject(user: User, project: Project)(implicit conn: Connection): Future[\/[error.RepositoryError.Fail, Boolean]]

    Verify if this user has access to this project through any of his courses.

    Verify if this user has access to this project through any of his courses.

    user
    project
    conn
    returns

    Definition Classes
    CourseRepositoryPostgresCourseRepository
  70. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  71. def insert(course: Course)(implicit conn: Connection): Future[\/[error.RepositoryError.Fail, Course]]

    Insert a Course row.

    Insert a Course row.

    course
    conn
    returns

    Definition Classes
    CourseRepositoryPostgresCourseRepository
  72. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  73. def lift[B]: (Future[\/[error.RepositoryError.Fail, B]]) ⇒ EitherT[Future, error.RepositoryError.Fail, B]

    Definition Classes
    Lifting
  74. def liftSeq[B](fIntermediate: Future[IndexedSeq[\/[error.RepositoryError.Fail, B]]])(implicit ec: ExecutionContext): EitherT[Future, error.RepositoryError.Fail, IndexedSeq[B]]

    Definition Classes
    Lifting
  75. def liftSeq[B](interList: IndexedSeq[Future[\/[error.RepositoryError.Fail, B]]])(implicit ec: ExecutionContext): EitherT[Future, error.RepositoryError.Fail, IndexedSeq[B]]

    Definition Classes
    Lifting
  76. def list(users: IndexedSeq[User])(implicit conn: Connection): Future[\/[error.RepositoryError.Fail, Map[UUID, IndexedSeq[Course]]]]

    List the courses associated with a user.

    List the courses associated with a user.

    Definition Classes
    CourseRepositoryPostgresCourseRepository
  77. def list(user: User, asTeacher: Boolean = false)(implicit conn: Connection, cache: ScalaCache): Future[\/[error.RepositoryError.Fail, IndexedSeq[Course]]]

    Select courses based on the given user.

    Select courses based on the given user.

    user

    the user to search by

    asTeacher

    whether we are searching for courses this user teachers, or courses this user is a student of.

    returns

    the found courses

    Definition Classes
    CourseRepositoryPostgresCourseRepository
  78. def list(project: Project)(implicit conn: Connection): Future[\/[error.RepositoryError.Fail, IndexedSeq[Course]]]

    Return course by its project.

    Return course by its project.

    project

    the project to filter by

    returns

    a result set

    Definition Classes
    CourseRepositoryPostgresCourseRepository
  79. def list(implicit conn: Connection): Future[\/[error.RepositoryError.Fail, IndexedSeq[Course]]]

    List all courses.

    List all courses.

    returns

    an array of Courses

    Definition Classes
    CourseRepositoryPostgresCourseRepository
  80. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  81. final def notify(): Unit

    Definition Classes
    AnyRef
  82. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  83. def predicate(fCondition: Future[Boolean])(fail: error.RepositoryError.Fail)(implicit ec: ExecutionContext): EitherT[Future, error.RepositoryError.Fail, Unit]

    Definition Classes
    Lifting
  84. def predicate(condition: Boolean)(fail: error.RepositoryError.Fail): EitherT[Future, error.RepositoryError.Fail, Unit]

    Definition Classes
    Lifting
  85. def putCache[V](key: String)(value: V, ttl: Option[Duration] = None)(implicit cache: ScalaCache): Future[\/[error.RepositoryError.Fail, Unit]]

    Definition Classes
    Repository
  86. def queryList(queryText: String, parameters: Seq[Any] = Seq.empty[Any])(implicit conn: Connection): Future[\/[error.RepositoryError.Fail, IndexedSeq[Course]]]

    Send a query to the database and retrieve a list of entities.

    Send a query to the database and retrieve a list of entities.

    queryText
    parameters
    conn
    returns

    Attributes
    protected
    Definition Classes
    PostgresRepository
  87. def queryNumRows(queryText: String, parameters: Seq[Any] = Seq.empty[Any])(compare: (Long) ⇒ Boolean)(implicit conn: Connection): Future[\/[error.RepositoryError.Fail, Boolean]]

    Send query to the database and compare the number of rows affected.

    Send query to the database and compare the number of rows affected.

    queryText
    parameters
    conn
    returns

    Attributes
    protected
    Definition Classes
    PostgresRepository
  88. def queryOne(queryText: String, parameters: Seq[Any] = Seq.empty[Any])(implicit conn: Connection): Future[\/[error.RepositoryError.Fail, Course]]

    Send query to the database and retrieve a single entity.

    Send query to the database and retrieve a single entity.

    queryText
    parameters
    conn
    returns

    Attributes
    protected
    Definition Classes
    PostgresRepository
  89. def removeAllUsers(course: Course)(implicit conn: Connection, cache: ScalaCache): Future[\/[error.RepositoryError.Fail, Unit]]

    Remove all users from a course.

    Remove all users from a course.

    course

    the course to remove users from.

    conn

    an implicit database Connection.

    returns

    a boolean indicating if the action was successful.

    Definition Classes
    CourseRepositoryPostgresCourseRepository
  90. def removeCached(key: String)(implicit cache: ScalaCache): Future[\/[error.RepositoryError.Fail, Unit]]

    Definition Classes
    Repository
  91. def removeUser(user: User, course: Course)(implicit conn: Connection, cache: ScalaCache): Future[\/[error.RepositoryError.Fail, Unit]]

    Remove a user from a course.

    Remove a user from a course.

    Definition Classes
    CourseRepositoryPostgresCourseRepository
  92. def removeUsers(course: Course, users: IndexedSeq[User])(implicit conn: Connection, cache: ScalaCache): Future[\/[error.RepositoryError.Fail, Unit]]

    Remove users from a course.

    Remove users from a course.

    course

    the course to remove users from.

    users

    an array of the users to be removed.

    conn

    an implicit database Connection.

    returns

    a boolean indicating if the action was successful.

    Definition Classes
    CourseRepositoryPostgresCourseRepository
  93. def serialized[E, R, L[E] <: IndexedSeq[E]](collection: L[E])(fn: (E) ⇒ Future[R])(implicit ec: ExecutionContext): Future[IndexedSeq[R]]

    Definition Classes
    Serialized
  94. def serializedT[E, R, L[E] <: IndexedSeq[E]](collection: L[E])(fn: (E) ⇒ Future[\/[error.RepositoryError.Fail, R]])(implicit ec: ExecutionContext): Future[\/[error.RepositoryError.Fail, IndexedSeq[R]]]

    Definition Classes
    Lifting
  95. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  96. def toString(): String

    Definition Classes
    AnyRef → Any
  97. val ttl: Some[FiniteDuration]

    Definition Classes
    Repository
  98. def update(course: Course)(implicit conn: Connection, cache: ScalaCache): Future[\/[error.RepositoryError.Fail, Course]]

    Update a Course row

    Update a Course row

    course
    conn
    returns

    Definition Classes
    CourseRepositoryPostgresCourseRepository
  99. val userRepository: UserRepository

  100. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  101. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  102. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from PostgresRepository[Course]

Inherited from CourseRepository

Inherited from Repository

Inherited from Lifting[error.RepositoryError.Fail]

Inherited from Serialized

Inherited from FutureMonad

Inherited from AnyRef

Inherited from Any

Ungrouped