1 /*
2  *  Make.org Core API
3  *  Copyright (C) 2018 Make.org
4  *
5  * This program is free software: you can redistribute it and/or modify
6  *  it under the terms of the GNU Affero General Public License as
7  *  published by the Free Software Foundation, either version 3 of the
8  *  License, or (at your option) any later version.
9  *
10  *  This program is distributed in the hope that it will be useful,
11  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  *  GNU Affero General Public License for more details.
14  *
15  *  You should have received a copy of the GNU Affero General Public License
16  *  along with this program.  If not, see <https://www.gnu.org/licenses/>.
17  *
18  */
19 
20 package org.make.api.personality
21 
22 import org.make.api.technical.IdGeneratorComponent
23 import org.make.core.technical.Pagination
24 import org.make.core.personality.{PersonalityRole, PersonalityRoleId}
25 import org.make.core.Order
26 
27 import scala.concurrent.ExecutionContext.Implicits.global
28 import scala.concurrent.Future
29 
30 trait DefaultPersonalityRoleServiceComponent extends PersonalityRoleServiceComponent {
31   this: PersistentPersonalityRoleServiceComponent with IdGeneratorComponent =>
32 
33   override lazy val personalityRoleService: DefaultPersonalityRoleService =
34     new DefaultPersonalityRoleService
35 
36   class DefaultPersonalityRoleService extends PersonalityRoleService {
37 
38     override def getPersonalityRole(personalityRoleId: PersonalityRoleId): Future[Option[PersonalityRole]] = {
39       persistentPersonalityRoleService.getById(personalityRoleId)
40     }
41 
42     override def createPersonalityRole(request: CreatePersonalityRoleRequest): Future[PersonalityRole] = {
43       val personalityRole: PersonalityRole =
44         PersonalityRole(personalityRoleId = idGenerator.nextPersonalityRoleId(), name = request.name)
45       persistentPersonalityRoleService.persist(personalityRole)
46     }
47 
48     override def updatePersonalityRole(
49       personalityRoleId: PersonalityRoleId,
50       request: UpdatePersonalityRoleRequest
51     ): Future[Option[PersonalityRole]] = {
52       persistentPersonalityRoleService.getById(personalityRoleId).flatMap {
53         case Some(personalityRole) =>
54           persistentPersonalityRoleService
55             .modify(personalityRole.copy(name = request.name))
56             .map(Some.apply)
57         case None => Future.successful(None)
58       }
59     }
60 
61     override def find(
62       offset: Pagination.Offset,
63       end: Option[Pagination.End],
64       sort: Option[String],
65       order: Option[Order],
66       roleIds: Option[Seq[PersonalityRoleId]],
67       name: Option[String]
68     ): Future[Seq[PersonalityRole]] = {
69       persistentPersonalityRoleService.find(offset, end, sort, order, roleIds, name)
70     }
71 
72     override def count(roleIds: Option[Seq[PersonalityRoleId]], name: Option[String]): Future[Int] = {
73       persistentPersonalityRoleService.count(roleIds, name)
74     }
75 
76     override def deletePersonalityRole(personalityRoleId: PersonalityRoleId): Future[Unit] = {
77       persistentPersonalityRoleService.delete(personalityRoleId)
78     }
79 
80   }
81 }
Line Stmt Id Pos Tree Symbol Tests Code
39 27118 1531 - 1590 Apply org.make.api.personality.PersistentPersonalityRoleService.getById DefaultPersonalityRoleServiceComponent.this.persistentPersonalityRoleService.getById(personalityRoleId)
44 27208 1758 - 1851 Apply org.make.core.personality.PersonalityRole.apply org.make.core.personality.PersonalityRole.apply(DefaultPersonalityRoleServiceComponent.this.idGenerator.nextPersonalityRoleId(), request.name)
44 24572 1794 - 1829 Apply org.make.core.technical.IdGenerator.nextPersonalityRoleId DefaultPersonalityRoleServiceComponent.this.idGenerator.nextPersonalityRoleId()
44 23579 1838 - 1850 Select org.make.api.personality.CreatePersonalityRoleRequest.name request.name
45 25262 1858 - 1915 Apply org.make.api.personality.PersistentPersonalityRoleService.persist DefaultPersonalityRoleServiceComponent.this.persistentPersonalityRoleService.persist(personalityRole)
52 23006 2100 - 2395 ApplyToImplicitArgs scala.concurrent.Future.flatMap DefaultPersonalityRoleServiceComponent.this.persistentPersonalityRoleService.getById(personalityRoleId).flatMap[Option[org.make.core.personality.PersonalityRole]](((x0$1: Option[org.make.core.personality.PersonalityRole]) => x0$1 match { case (value: org.make.core.personality.PersonalityRole): Some[org.make.core.personality.PersonalityRole]((personalityRole @ _)) => DefaultPersonalityRoleServiceComponent.this.persistentPersonalityRoleService.modify({ <artifact> val x$1: String = request.name; <artifact> val x$2: org.make.core.personality.PersonalityRoleId = personalityRole.copy$default$1; personalityRole.copy(x$2, x$1) }).map[Some[org.make.core.personality.PersonalityRole]](((value: org.make.core.personality.PersonalityRole) => scala.Some.apply[org.make.core.personality.PersonalityRole](value)))(scala.concurrent.ExecutionContext.Implicits.global) case scala.None => scala.concurrent.Future.successful[None.type](scala.None) }))(scala.concurrent.ExecutionContext.Implicits.global)
52 25196 2168 - 2168 Select scala.concurrent.ExecutionContext.Implicits.global scala.concurrent.ExecutionContext.Implicits.global
55 22993 2299 - 2311 Select org.make.api.personality.UpdatePersonalityRoleRequest.name request.name
55 27724 2287 - 2287 Select org.make.core.personality.PersonalityRole.copy$default$1 personalityRole.copy$default$1
55 25457 2271 - 2312 Apply org.make.core.personality.PersonalityRole.copy personalityRole.copy(x$2, x$1)
56 24874 2218 - 2342 ApplyToImplicitArgs scala.concurrent.Future.map DefaultPersonalityRoleServiceComponent.this.persistentPersonalityRoleService.modify({ <artifact> val x$1: String = request.name; <artifact> val x$2: org.make.core.personality.PersonalityRoleId = personalityRole.copy$default$1; personalityRole.copy(x$2, x$1) }).map[Some[org.make.core.personality.PersonalityRole]](((value: org.make.core.personality.PersonalityRole) => scala.Some.apply[org.make.core.personality.PersonalityRole](value)))(scala.concurrent.ExecutionContext.Implicits.global)
56 23076 2331 - 2341 Apply scala.Some.apply scala.Some.apply[org.make.core.personality.PersonalityRole](value)
56 27128 2330 - 2330 Select scala.concurrent.ExecutionContext.Implicits.global scala.concurrent.ExecutionContext.Implicits.global
57 27331 2364 - 2387 Apply scala.concurrent.Future.successful scala.concurrent.Future.successful[None.type](scala.None)
57 23588 2382 - 2386 Select scala.None scala.None
69 27661 2670 - 2748 Apply org.make.api.personality.PersistentPersonalityRoleService.find DefaultPersonalityRoleServiceComponent.this.persistentPersonalityRoleService.find(offset, end, sort, order, roleIds, name)
73 25470 2865 - 2918 Apply org.make.api.personality.PersistentPersonalityRoleService.count DefaultPersonalityRoleServiceComponent.this.persistentPersonalityRoleService.count(roleIds, name)
77 23130 3027 - 3085 Apply org.make.api.personality.PersistentPersonalityRoleService.delete DefaultPersonalityRoleServiceComponent.this.persistentPersonalityRoleService.delete(personalityRoleId)