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.personality.{FieldType, PersonalityRoleField, PersonalityRoleFieldId, PersonalityRoleId}
24 import org.make.core.Order
25 
26 import scala.concurrent.ExecutionContext.Implicits.global
27 import scala.concurrent.Future
28 import org.make.core.technical.Pagination._
29 
30 trait DefaultPersonalityRoleFieldServiceComponent extends PersonalityRoleFieldServiceComponent {
31   this: PersistentPersonalityRoleFieldServiceComponent with IdGeneratorComponent =>
32 
33   override lazy val personalityRoleFieldService: DefaultPersonalityRoleFieldService =
34     new DefaultPersonalityRoleFieldService
35 
36   class DefaultPersonalityRoleFieldService extends PersonalityRoleFieldService {
37 
38     override def getPersonalityRoleField(
39       personalityRoleFieldId: PersonalityRoleFieldId,
40       personalityRoleId: PersonalityRoleId
41     ): Future[Option[PersonalityRoleField]] = {
42       persistentPersonalityRoleFieldService.getById(personalityRoleFieldId, personalityRoleId)
43     }
44 
45     override def createPersonalityRoleField(
46       personalityRoleId: PersonalityRoleId,
47       request: CreatePersonalityRoleFieldRequest
48     ): Future[PersonalityRoleField] = {
49       val personalityRoleField: PersonalityRoleField =
50         PersonalityRoleField(
51           personalityRoleFieldId = idGenerator.nextPersonalityRoleFieldId(),
52           personalityRoleId = personalityRoleId,
53           name = request.name,
54           fieldType = request.fieldType,
55           required = request.required
56         )
57       persistentPersonalityRoleFieldService.persist(personalityRoleField)
58     }
59 
60     override def updatePersonalityRoleField(
61       personalityRoleFieldId: PersonalityRoleFieldId,
62       personalityRoleId: PersonalityRoleId,
63       request: UpdatePersonalityRoleFieldRequest
64     ): Future[Option[PersonalityRoleField]] = {
65       persistentPersonalityRoleFieldService.getById(personalityRoleFieldId, personalityRoleId).flatMap {
66         case Some(personalityRoleField) =>
67           persistentPersonalityRoleFieldService
68             .modify(
69               personalityRoleField.copy(name = request.name, fieldType = request.fieldType, required = request.required)
70             )
71             .map(Some.apply)
72         case None => Future.successful(None)
73       }
74     }
75 
76     override def find(
77       offset: Offset,
78       end: Option[End],
79       sort: Option[String],
80       order: Option[Order],
81       personalityRoleId: Option[PersonalityRoleId],
82       name: Option[String],
83       fieldType: Option[FieldType],
84       required: Option[Boolean]
85     ): Future[Seq[PersonalityRoleField]] = {
86       persistentPersonalityRoleFieldService.find(offset, end, sort, order, personalityRoleId, name, fieldType, required)
87     }
88 
89     override def count(
90       personalityRoleId: Option[PersonalityRoleId],
91       name: Option[String],
92       fieldType: Option[FieldType],
93       required: Option[Boolean]
94     ): Future[Int] = {
95       persistentPersonalityRoleFieldService.count(personalityRoleId, name, fieldType, required)
96     }
97 
98     override def deletePersonalityRoleField(personalityRoleFieldId: PersonalityRoleFieldId): Future[Unit] = {
99       persistentPersonalityRoleFieldService.delete(personalityRoleFieldId)
100     }
101 
102   }
103 }
Line Stmt Id Pos Tree Symbol Tests Code
42 25091 1689 - 1777 Apply org.make.api.personality.PersistentPersonalityRoleFieldService.getById DefaultPersonalityRoleFieldServiceComponent.this.persistentPersonalityRoleFieldService.getById(personalityRoleFieldId, personalityRoleId)
50 26807 2026 - 2293 Apply org.make.core.personality.PersonalityRoleField.apply org.make.core.personality.PersonalityRoleField.apply(DefaultPersonalityRoleFieldServiceComponent.this.idGenerator.nextPersonalityRoleFieldId(), personalityRoleId, request.name, request.fieldType, request.required)
51 23929 2083 - 2123 Apply org.make.core.technical.IdGenerator.nextPersonalityRoleFieldId DefaultPersonalityRoleFieldServiceComponent.this.idGenerator.nextPersonalityRoleFieldId()
53 27728 2191 - 2203 Select org.make.api.personality.CreatePersonalityRoleFieldRequest.name request.name
54 25390 2227 - 2244 Select org.make.api.personality.CreatePersonalityRoleFieldRequest.fieldType request.fieldType
55 23126 2267 - 2283 Select org.make.api.personality.CreatePersonalityRoleFieldRequest.required request.required
57 25889 2300 - 2367 Apply org.make.api.personality.PersistentPersonalityRoleFieldService.persist DefaultPersonalityRoleFieldServiceComponent.this.persistentPersonalityRoleFieldService.persist(personalityRoleField)
65 22691 2621 - 3048 ApplyToImplicitArgs scala.concurrent.Future.flatMap DefaultPersonalityRoleFieldServiceComponent.this.persistentPersonalityRoleFieldService.getById(personalityRoleFieldId, personalityRoleId).flatMap[Option[org.make.core.personality.PersonalityRoleField]](((x0$1: Option[org.make.core.personality.PersonalityRoleField]) => x0$1 match { case (value: org.make.core.personality.PersonalityRoleField): Some[org.make.core.personality.PersonalityRoleField]((personalityRoleField @ _)) => DefaultPersonalityRoleFieldServiceComponent.this.persistentPersonalityRoleFieldService.modify({ <artifact> val x$1: String = request.name; <artifact> val x$2: org.make.core.personality.FieldType = request.fieldType; <artifact> val x$3: Boolean = request.required; <artifact> val x$4: org.make.core.personality.PersonalityRoleFieldId = personalityRoleField.copy$default$1; <artifact> val x$5: org.make.core.personality.PersonalityRoleId = personalityRoleField.copy$default$2; personalityRoleField.copy(x$4, x$5, x$1, x$2, x$3) }).map[Some[org.make.core.personality.PersonalityRoleField]](((value: org.make.core.personality.PersonalityRoleField) => scala.Some.apply[org.make.core.personality.PersonalityRoleField](value)))(scala.concurrent.ExecutionContext.Implicits.global) case scala.None => scala.concurrent.Future.successful[None.type](scala.None) }))(scala.concurrent.ExecutionContext.Implicits.global)
65 25251 2718 - 2718 Select scala.concurrent.ExecutionContext.Implicits.global scala.concurrent.ExecutionContext.Implicits.global
69 27259 2905 - 2922 Select org.make.api.personality.UpdatePersonalityRoleFieldRequest.fieldType request.fieldType
69 22680 2867 - 2867 Select org.make.core.personality.PersonalityRoleField.copy$default$1 personalityRoleField.copy$default$1
69 27734 2867 - 2867 Select org.make.core.personality.PersonalityRoleField.copy$default$2 personalityRoleField.copy$default$2
69 25011 2935 - 2951 Select org.make.api.personality.UpdatePersonalityRoleFieldRequest.required request.required
69 25334 2846 - 2952 Apply org.make.core.personality.PersonalityRoleField.copy personalityRoleField.copy(x$4, x$5, x$1, x$2, x$3)
69 23593 2879 - 2891 Select org.make.api.personality.UpdatePersonalityRoleFieldRequest.name request.name
71 27109 2983 - 2983 Select scala.concurrent.ExecutionContext.Implicits.global scala.concurrent.ExecutionContext.Implicits.global
71 26004 2773 - 2995 ApplyToImplicitArgs scala.concurrent.Future.map DefaultPersonalityRoleFieldServiceComponent.this.persistentPersonalityRoleFieldService.modify({ <artifact> val x$1: String = request.name; <artifact> val x$2: org.make.core.personality.FieldType = request.fieldType; <artifact> val x$3: Boolean = request.required; <artifact> val x$4: org.make.core.personality.PersonalityRoleFieldId = personalityRoleField.copy$default$1; <artifact> val x$5: org.make.core.personality.PersonalityRoleId = personalityRoleField.copy$default$2; personalityRoleField.copy(x$4, x$5, x$1, x$2, x$3) }).map[Some[org.make.core.personality.PersonalityRoleField]](((value: org.make.core.personality.PersonalityRoleField) => scala.Some.apply[org.make.core.personality.PersonalityRoleField](value)))(scala.concurrent.ExecutionContext.Implicits.global)
71 23138 2984 - 2994 Apply scala.Some.apply scala.Some.apply[org.make.core.personality.PersonalityRoleField](value)
72 27199 3017 - 3040 Apply scala.concurrent.Future.successful scala.concurrent.Future.successful[None.type](scala.None)
72 23458 3035 - 3039 Select scala.None scala.None
86 27861 3380 - 3494 Apply org.make.api.personality.PersistentPersonalityRoleFieldService.find DefaultPersonalityRoleFieldServiceComponent.this.persistentPersonalityRoleFieldService.find(offset, end, sort, order, personalityRoleId, name, fieldType, required)
95 25343 3703 - 3792 Apply org.make.api.personality.PersistentPersonalityRoleFieldService.count DefaultPersonalityRoleFieldServiceComponent.this.persistentPersonalityRoleFieldService.count(personalityRoleId, name, fieldType, required)
99 23067 3916 - 3984 Apply org.make.api.personality.PersistentPersonalityRoleFieldService.delete DefaultPersonalityRoleFieldServiceComponent.this.persistentPersonalityRoleFieldService.delete(personalityRoleFieldId)