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.proposal
21 
22 import java.time.ZonedDateTime
23 import akka.actor.typed.ActorRef
24 import akka.util.Timeout
25 import grizzled.slf4j.Logging
26 import org.make.api.proposal.ProposalActorResponse.VotesActorResponse
27 import org.make.api.technical.{ActorSystemComponent, TimeSettings}
28 import org.make.api.technical.BetterLoggingActors._
29 import org.make.core.history.HistoryActions.{VoteAndQualifications, VoteTrust}
30 import org.make.core.proposal._
31 import org.make.core.question.Question
32 import org.make.core.reference.Language
33 import org.make.core.tag.TagId
34 import org.make.core.technical.Multilingual
35 import org.make.core.user.{User, UserId}
36 import org.make.core.{RequestContext, ValidationError, ValidationFailedError}
37 
38 import scala.concurrent.ExecutionContext.Implicits.global
39 import scala.concurrent.Future
40 
41 trait ProposalCoordinatorComponent {
42   def proposalCoordinator: ActorRef[ProposalCommand]
43 }
44 
45 trait ProposalCoordinatorService {
46 
47   /**
48     * Retrieve a Proposal without logging it
49     *
50     * @param proposalId the proposal to retrieve
51     * @return the given proposal if exists
52     */
53   def getProposal(proposalId: ProposalId): Future[Option[Proposal]]
54 
55   /**
56     * Retrieves a proposal by id and log the fact that it was seen
57     *
58     * @param proposalId the proposal viewed by the user
59     * @param requestContext the context of the request
60     * @return the proposal as viewed by the user
61     */
62   def viewProposal(proposalId: ProposalId, requestContext: RequestContext): Future[Option[Proposal]]
63 
64   def propose(
65     proposalId: ProposalId,
66     requestContext: RequestContext,
67     user: User,
68     createdAt: ZonedDateTime,
69     content: String,
70     submittedAsLanguage: Language,
71     isAnonymous: Boolean,
72     question: Question,
73     initialProposal: Boolean,
74     proposalType: ProposalType
75   ): Future[ProposalId]
76   def update(
77     moderator: UserId,
78     proposalId: ProposalId,
79     requestContext: RequestContext,
80     updatedAt: ZonedDateTime,
81     newContent: Option[String],
82     newTranslations: Option[Multilingual[String]],
83     tags: Seq[TagId],
84     question: Question
85   ): Future[Option[Proposal]]
86   def updateVotes(
87     moderator: UserId,
88     proposalId: ProposalId,
89     requestContext: RequestContext,
90     updatedAt: ZonedDateTime,
91     votes: Seq[UpdateVoteRequest]
92   ): Future[Option[Proposal]]
93   def accept(
94     moderator: UserId,
95     proposalId: ProposalId,
96     requestContext: RequestContext,
97     sendNotificationEmail: Boolean,
98     newContent: Option[String],
99     newTranslations: Option[Multilingual[String]],
100     question: Question,
101     tags: Seq[TagId]
102   ): Future[Option[Proposal]]
103   def refuse(
104     moderator: UserId,
105     proposalId: ProposalId,
106     requestContext: RequestContext,
107     sendNotificationEmail: Boolean,
108     refusalReason: Option[String]
109   ): Future[Option[Proposal]]
110   def postpone(moderator: UserId, proposalId: ProposalId, requestContext: RequestContext): Future[Option[Proposal]]
111   def vote(params: VoteProposalParams): Future[Option[VotesActorResponse]]
112   def unvote(params: VoteProposalParams): Future[Option[VotesActorResponse]]
113   def qualification(
114     proposalId: ProposalId,
115     maybeUserId: Option[UserId],
116     requestContext: RequestContext,
117     voteKey: VoteKey,
118     qualificationKey: QualificationKey,
119     vote: Option[VoteAndQualifications],
120     voteTrust: VoteTrust
121   ): Future[Option[Qualification]]
122   def unqualification(
123     proposalId: ProposalId,
124     maybeUserId: Option[UserId],
125     requestContext: RequestContext,
126     voteKey: VoteKey,
127     qualificationKey: QualificationKey,
128     vote: Option[VoteAndQualifications],
129     voteTrust: VoteTrust
130   ): Future[Option[Qualification]]
131   def lock(
132     proposalId: ProposalId,
133     moderatorId: UserId,
134     moderatorName: Option[String],
135     requestContext: RequestContext
136   ): Future[Option[UserId]]
137   def patch(
138     proposalId: ProposalId,
139     userId: UserId,
140     changes: PatchProposalRequest,
141     requestContext: RequestContext
142   ): Future[Option[Proposal]]
143   def setKeywords(
144     proposalId: ProposalId,
145     keywords: Seq[ProposalKeyword],
146     requestContext: RequestContext
147   ): Future[Option[Proposal]]
148 }
149 
150 trait ProposalCoordinatorServiceComponent {
151   def proposalCoordinatorService: ProposalCoordinatorService
152 }
153 
154 trait DefaultProposalCoordinatorServiceComponent extends ProposalCoordinatorServiceComponent with Logging {
155   self: ActorSystemComponent with ProposalCoordinatorComponent =>
156 
157   override lazy val proposalCoordinatorService: ProposalCoordinatorService = new DefaultProposalCoordinatorService
158 
159   class DefaultProposalCoordinatorService extends ProposalCoordinatorService {
160 
161     implicit val timeout: Timeout = TimeSettings.defaultTimeout
162 
163     override def getProposal(proposalId: ProposalId): Future[Option[Proposal]] = {
164       (proposalCoordinator ?? (GetProposal(proposalId, RequestContext.empty, _))).map(asOption)
165     }
166 
167     override def viewProposal(proposalId: ProposalId, requestContext: RequestContext): Future[Option[Proposal]] = {
168       (proposalCoordinator ?? (ViewProposalCommand(proposalId, requestContext, _))).map(asOption)
169     }
170 
171     override def propose(
172       proposalId: ProposalId,
173       requestContext: RequestContext,
174       user: User,
175       createdAt: ZonedDateTime,
176       content: String,
177       submittedAsLanguage: Language,
178       isAnonymous: Boolean,
179       question: Question,
180       initialProposal: Boolean,
181       proposalType: ProposalType
182     ): Future[ProposalId] = {
183       (proposalCoordinator ?? (ProposeCommand(
184         proposalId,
185         requestContext,
186         user,
187         createdAt,
188         content,
189         submittedAsLanguage,
190         isAnonymous,
191         question,
192         initialProposal,
193         proposalType,
194         _
195       ))).map(_.value)
196     }
197 
198     override def update(
199       moderator: UserId,
200       proposalId: ProposalId,
201       requestContext: RequestContext,
202       updatedAt: ZonedDateTime,
203       newContent: Option[String],
204       newTranslations: Option[Multilingual[String]],
205       tags: Seq[TagId],
206       question: Question
207     ): Future[Option[Proposal]] = {
208       (proposalCoordinator ?? (UpdateProposalCommand(
209         moderator,
210         proposalId,
211         requestContext,
212         updatedAt,
213         newContent,
214         newTranslations,
215         tags,
216         question,
217         _
218       ))).flatMap(shapeResponse)
219     }
220 
221     override def updateVotes(
222       moderator: UserId,
223       proposalId: ProposalId,
224       requestContext: RequestContext,
225       updatedAt: ZonedDateTime,
226       votes: Seq[UpdateVoteRequest]
227     ): Future[Option[Proposal]] = {
228       (proposalCoordinator ?? (UpdateProposalVotesCommand(moderator, proposalId, requestContext, updatedAt, votes, _)))
229         .flatMap(shapeResponse)
230     }
231 
232     override def accept(
233       moderator: UserId,
234       proposalId: ProposalId,
235       requestContext: RequestContext,
236       sendNotificationEmail: Boolean,
237       newContent: Option[String],
238       newTranslations: Option[Multilingual[String]],
239       question: Question,
240       tags: Seq[TagId]
241     ): Future[Option[Proposal]] = {
242       (proposalCoordinator ?? (AcceptProposalCommand(
243         moderator,
244         proposalId,
245         requestContext,
246         sendNotificationEmail,
247         newContent,
248         newTranslations,
249         question,
250         tags,
251         _
252       ))).flatMap(shapeResponse)
253     }
254 
255     override def refuse(
256       moderator: UserId,
257       proposalId: ProposalId,
258       requestContext: RequestContext,
259       sendNotificationEmail: Boolean,
260       refusalReason: Option[String]
261     ): Future[Option[Proposal]] = {
262       (proposalCoordinator ?? (RefuseProposalCommand(
263         moderator,
264         proposalId,
265         requestContext,
266         sendNotificationEmail,
267         refusalReason,
268         _
269       ))).flatMap(shapeResponse)
270     }
271 
272     override def postpone(
273       moderator: UserId,
274       proposalId: ProposalId,
275       requestContext: RequestContext
276     ): Future[Option[Proposal]] = {
277       (proposalCoordinator ?? (PostponeProposalCommand(moderator, proposalId, requestContext, _)))
278         .flatMap(shapeResponse)
279     }
280 
281     override def vote(params: VoteProposalParams): Future[Option[VotesActorResponse]] = {
282       (proposalCoordinator ?? (VoteProposalCommand(
283         params.proposalId,
284         params.maybeUserId,
285         params.requestContext,
286         params.voteKey,
287         params.maybeOrganisationId,
288         params.vote,
289         params.voteTrust,
290         params.newProposalsVoteThreshold,
291         _
292       ))).flatMap(shapeResponse)
293     }
294 
295     override def unvote(params: VoteProposalParams): Future[Option[VotesActorResponse]] = {
296       (proposalCoordinator ?? (UnvoteProposalCommand(
297         params.proposalId,
298         params.maybeUserId,
299         params.requestContext,
300         params.voteKey,
301         params.maybeOrganisationId,
302         params.vote,
303         params.voteTrust,
304         params.newProposalsVoteThreshold,
305         _
306       ))).flatMap(shapeResponse)
307     }
308 
309     override def qualification(
310       proposalId: ProposalId,
311       maybeUserId: Option[UserId],
312       requestContext: RequestContext,
313       voteKey: VoteKey,
314       qualificationKey: QualificationKey,
315       vote: Option[VoteAndQualifications],
316       voteTrust: VoteTrust
317     ): Future[Option[Qualification]] = {
318       (proposalCoordinator ?? (QualifyVoteCommand(
319         proposalId,
320         maybeUserId,
321         requestContext,
322         voteKey,
323         qualificationKey,
324         vote,
325         voteTrust,
326         _
327       ))).flatMap(shapeResponse)
328     }
329 
330     override def unqualification(
331       proposalId: ProposalId,
332       maybeUserId: Option[UserId],
333       requestContext: RequestContext,
334       voteKey: VoteKey,
335       qualificationKey: QualificationKey,
336       vote: Option[VoteAndQualifications],
337       voteTrust: VoteTrust
338     ): Future[Option[Qualification]] = {
339       (proposalCoordinator ?? (UnqualifyVoteCommand(
340         proposalId,
341         maybeUserId,
342         requestContext,
343         voteKey,
344         qualificationKey,
345         vote,
346         voteTrust,
347         _
348       ))).flatMap(shapeResponse)
349     }
350 
351     override def lock(
352       proposalId: ProposalId,
353       moderatorId: UserId,
354       moderatorName: Option[String],
355       requestContext: RequestContext
356     ): Future[Option[UserId]] = {
357       (proposalCoordinator ?? (LockProposalCommand(proposalId, moderatorId, moderatorName, requestContext, _)))
358         .flatMap(shapeResponse)
359     }
360 
361     override def patch(
362       proposalId: ProposalId,
363       userId: UserId,
364       changes: PatchProposalRequest,
365       requestContext: RequestContext
366     ): Future[Option[Proposal]] = {
367       (proposalCoordinator ?? (PatchProposalCommand(proposalId, userId, changes, requestContext, _))).map(asOption)
368     }
369 
370     override def setKeywords(
371       proposalId: ProposalId,
372       keywords: Seq[ProposalKeyword],
373       requestContext: RequestContext
374     ): Future[Option[Proposal]] = {
375       (proposalCoordinator ?? (SetKeywordsCommand(proposalId, keywords, requestContext, _))).map(asOption)
376     }
377 
378     private def asOption[E, T](response: ProposalActorResponse[E, T]): Option[T] = response match {
379       case ProposalActorResponse.Envelope(value) => Some(value)
380       case _: ProposalActorResponse.Error[E]     => None
381     }
382 
383     private def shapeResponse[E, T](response: ProposalActorResponse[E, T]): Future[Option[T]] = response match {
384       case ProposalActorResponse.Error.AlreadyLockedBy(moderatorName) =>
385         Future.failed(
386           ValidationFailedError(errors = Seq(ValidationError("moderatorName", "already_locked", Some(moderatorName))))
387         )
388       case ProposalActorResponse.Error.HistoryError(error) => Future.failed(error)
389       case ProposalActorResponse.Error.InvalidStateError(message) =>
390         Future.failed(ValidationFailedError(errors = Seq(ValidationError("status", "invalid_state", Some(message)))))
391       case other => Future.successful(asOption(other))
392     }
393   }
394 }
395 
396 final case class VoteProposalParams(
397   proposalId: ProposalId,
398   maybeUserId: Option[UserId],
399   requestContext: RequestContext,
400   voteKey: VoteKey,
401   maybeOrganisationId: Option[UserId],
402   vote: Option[VoteAndQualifications],
403   voteTrust: VoteTrust,
404   newProposalsVoteThreshold: Int
405 )
Line Stmt Id Pos Tree Symbol Tests Code
161 9906 5384 - 5411 Select org.make.api.technical.TimeSettings.defaultTimeout org.make.api.technical.TimeSettings.defaultTimeout
164 12913 5523 - 5523 Select org.make.api.technical.ActorSystemComponent.actorSystem DefaultProposalCoordinatorServiceComponent.this.actorSystem
164 13412 5581 - 5581 Select scala.concurrent.ExecutionContext.Implicits.global scala.concurrent.ExecutionContext.Implicits.global
164 10426 5527 - 5575 Apply org.make.api.proposal.GetProposal.apply GetProposal.apply(proposalId, org.make.core.RequestContext.empty, x$1)
164 15893 5503 - 5522 Select org.make.api.proposal.ProposalCoordinatorComponent.proposalCoordinator DefaultProposalCoordinatorServiceComponent.this.proposalCoordinator
164 9792 5503 - 5591 ApplyToImplicitArgs scala.concurrent.Future.map org.make.api.technical.BetterLoggingActors.BetterLoggingTypedActorRef[org.make.api.proposal.ProposalCommand](DefaultProposalCoordinatorServiceComponent.this.proposalCoordinator).??[org.make.api.proposal.ProposalActorResponse[org.make.api.proposal.ProposalActorResponse.Error.ProposalNotFound,org.make.core.proposal.Proposal]](((x$1: akka.actor.typed.ActorRef[org.make.api.proposal.ProposalActorResponse[org.make.api.proposal.ProposalActorResponse.Error.ProposalNotFound,org.make.core.proposal.Proposal]]) => GetProposal.apply(proposalId, org.make.core.RequestContext.empty, x$1)))(scala.concurrent.ExecutionContext.Implicits.global, DefaultProposalCoordinatorServiceComponent.this.actorSystem, DefaultProposalCoordinatorService.this.timeout).map[Option[org.make.core.proposal.Proposal]](((response: org.make.api.proposal.ProposalActorResponse[Any,org.make.core.proposal.Proposal]) => DefaultProposalCoordinatorService.this.asOption[Any, org.make.core.proposal.Proposal](response)))(scala.concurrent.ExecutionContext.Implicits.global)
164 9050 5523 - 5523 Select org.make.api.proposal.DefaultProposalCoordinatorServiceComponent.DefaultProposalCoordinatorService.timeout DefaultProposalCoordinatorService.this.timeout
164 16371 5523 - 5523 Select scala.concurrent.ExecutionContext.Implicits.global scala.concurrent.ExecutionContext.Implicits.global
164 12202 5551 - 5571 Select org.make.core.RequestContext.empty org.make.core.RequestContext.empty
164 15213 5582 - 5590 Apply org.make.api.proposal.DefaultProposalCoordinatorServiceComponent.DefaultProposalCoordinatorService.asOption DefaultProposalCoordinatorService.this.asOption[Any, org.make.core.proposal.Proposal](response)
168 12790 5742 - 5742 Select org.make.api.proposal.DefaultProposalCoordinatorServiceComponent.DefaultProposalCoordinatorService.timeout org.scalatest.testsuite DefaultProposalCoordinatorService.this.timeout
168 10299 5742 - 5742 Select scala.concurrent.ExecutionContext.Implicits.global org.scalatest.testsuite scala.concurrent.ExecutionContext.Implicits.global
168 13636 5722 - 5812 ApplyToImplicitArgs scala.concurrent.Future.map org.scalatest.testsuite org.make.api.technical.BetterLoggingActors.BetterLoggingTypedActorRef[org.make.api.proposal.ProposalCommand](DefaultProposalCoordinatorServiceComponent.this.proposalCoordinator).??[org.make.api.proposal.ProposalActorResponse[org.make.api.proposal.ProposalActorResponse.Error.ProposalNotFound,org.make.core.proposal.Proposal]](((x$2: akka.actor.typed.ActorRef[org.make.api.proposal.ProposalActorResponse[org.make.api.proposal.ProposalActorResponse.Error.ProposalNotFound,org.make.core.proposal.Proposal]]) => ViewProposalCommand.apply(proposalId, requestContext, x$2)))(scala.concurrent.ExecutionContext.Implicits.global, DefaultProposalCoordinatorServiceComponent.this.actorSystem, DefaultProposalCoordinatorService.this.timeout).map[Option[org.make.core.proposal.Proposal]](((response: org.make.api.proposal.ProposalActorResponse[Any,org.make.core.proposal.Proposal]) => DefaultProposalCoordinatorService.this.asOption[Any, org.make.core.proposal.Proposal](response)))(scala.concurrent.ExecutionContext.Implicits.global)
168 9072 5803 - 5811 Apply org.make.api.proposal.DefaultProposalCoordinatorServiceComponent.DefaultProposalCoordinatorService.asOption DefaultProposalCoordinatorService.this.asOption[Any, org.make.core.proposal.Proposal](response)
168 15911 5722 - 5741 Select org.make.api.proposal.ProposalCoordinatorComponent.proposalCoordinator org.scalatest.testsuite DefaultProposalCoordinatorServiceComponent.this.proposalCoordinator
168 12224 5746 - 5796 Apply org.make.api.proposal.ViewProposalCommand.apply org.scalatest.testsuite ViewProposalCommand.apply(proposalId, requestContext, x$2)
168 15232 5802 - 5802 Select scala.concurrent.ExecutionContext.Implicits.global org.scalatest.testsuite scala.concurrent.ExecutionContext.Implicits.global
168 16137 5742 - 5742 Select org.make.api.technical.ActorSystemComponent.actorSystem org.scalatest.testsuite DefaultProposalCoordinatorServiceComponent.this.actorSystem
183 16600 6200 - 6200 Select org.make.api.proposal.DefaultProposalCoordinatorServiceComponent.DefaultProposalCoordinatorService.timeout DefaultProposalCoordinatorService.this.timeout
183 10319 6200 - 6200 Select org.make.api.technical.ActorSystemComponent.actorSystem DefaultProposalCoordinatorServiceComponent.this.actorSystem
183 12092 6200 - 6200 Select scala.concurrent.ExecutionContext.Implicits.global scala.concurrent.ExecutionContext.Implicits.global
183 9562 6180 - 6199 Select org.make.api.proposal.ProposalCoordinatorComponent.proposalCoordinator DefaultProposalCoordinatorServiceComponent.this.proposalCoordinator
183 15785 6204 - 6446 Apply org.make.api.proposal.ProposeCommand.apply ProposeCommand.apply(proposalId, requestContext, user, createdAt, content, submittedAsLanguage, isAnonymous, question, initialProposal, proposalType, x$3)
195 12550 6453 - 6460 Select org.make.api.proposal.ProposalActorResponse.Envelope.value x$4.value
195 9090 6452 - 6452 Select scala.concurrent.ExecutionContext.Implicits.global scala.concurrent.ExecutionContext.Implicits.global
195 15110 6180 - 6461 ApplyToImplicitArgs scala.concurrent.Future.map org.make.api.technical.BetterLoggingActors.BetterLoggingTypedActorRef[org.make.api.proposal.ProposalCommand](DefaultProposalCoordinatorServiceComponent.this.proposalCoordinator).??[org.make.api.proposal.ProposalActorResponse.Envelope[org.make.core.proposal.ProposalId]](((x$3: akka.actor.typed.ActorRef[org.make.api.proposal.ProposalActorResponse.Envelope[org.make.core.proposal.ProposalId]]) => ProposeCommand.apply(proposalId, requestContext, user, createdAt, content, submittedAsLanguage, isAnonymous, question, initialProposal, proposalType, x$3)))(scala.concurrent.ExecutionContext.Implicits.global, DefaultProposalCoordinatorServiceComponent.this.actorSystem, DefaultProposalCoordinatorService.this.timeout).map[org.make.core.proposal.ProposalId](((x$4: org.make.api.proposal.ProposalActorResponse.Envelope[org.make.core.proposal.ProposalId]) => x$4.value))(scala.concurrent.ExecutionContext.Implicits.global)
208 12114 6818 - 6818 Select org.make.api.technical.ActorSystemComponent.actorSystem DefaultProposalCoordinatorServiceComponent.this.actorSystem
208 10038 6822 - 7021 Apply org.make.api.proposal.UpdateProposalCommand.apply UpdateProposalCommand.apply(moderator, proposalId, requestContext, updatedAt, newContent, newTranslations, tags, question, x$5)
208 13650 6798 - 6817 Select org.make.api.proposal.ProposalCoordinatorComponent.proposalCoordinator DefaultProposalCoordinatorServiceComponent.this.proposalCoordinator
208 18398 6818 - 6818 Select org.make.api.proposal.DefaultProposalCoordinatorServiceComponent.DefaultProposalCoordinatorService.timeout DefaultProposalCoordinatorService.this.timeout
208 15889 6818 - 6818 Select scala.concurrent.ExecutionContext.Implicits.global scala.concurrent.ExecutionContext.Implicits.global
218 9330 6798 - 7046 ApplyToImplicitArgs scala.concurrent.Future.flatMap org.make.api.technical.BetterLoggingActors.BetterLoggingTypedActorRef[org.make.api.proposal.ProposalCommand](DefaultProposalCoordinatorServiceComponent.this.proposalCoordinator).??[org.make.api.proposal.ProposalActorResponse[org.make.api.proposal.ProposalActorResponse.Error.ModificationError,org.make.core.proposal.Proposal]](((x$5: akka.actor.typed.ActorRef[org.make.api.proposal.ProposalActorResponse[org.make.api.proposal.ProposalActorResponse.Error.ModificationError,org.make.core.proposal.Proposal]]) => UpdateProposalCommand.apply(moderator, proposalId, requestContext, updatedAt, newContent, newTranslations, tags, question, x$5)))(scala.concurrent.ExecutionContext.Implicits.global, DefaultProposalCoordinatorServiceComponent.this.actorSystem, DefaultProposalCoordinatorService.this.timeout).flatMap[Option[org.make.core.proposal.Proposal]](((response: org.make.api.proposal.ProposalActorResponse[Any,org.make.core.proposal.Proposal]) => DefaultProposalCoordinatorService.this.shapeResponse[Any, org.make.core.proposal.Proposal](response)))(scala.concurrent.ExecutionContext.Implicits.global)
218 16620 7032 - 7045 Apply org.make.api.proposal.DefaultProposalCoordinatorServiceComponent.DefaultProposalCoordinatorService.shapeResponse DefaultProposalCoordinatorService.this.shapeResponse[Any, org.make.core.proposal.Proposal](response)
218 13042 7031 - 7031 Select scala.concurrent.ExecutionContext.Implicits.global scala.concurrent.ExecutionContext.Implicits.global
228 15132 7288 - 7307 Select org.make.api.proposal.ProposalCoordinatorComponent.proposalCoordinator DefaultProposalCoordinatorServiceComponent.this.proposalCoordinator
228 13543 7312 - 7398 Apply org.make.api.proposal.UpdateProposalVotesCommand.apply UpdateProposalVotesCommand.apply(moderator, proposalId, requestContext, updatedAt, votes, x$6)
228 15905 7308 - 7308 Select org.make.api.technical.ActorSystemComponent.actorSystem DefaultProposalCoordinatorServiceComponent.this.actorSystem
228 12340 7308 - 7308 Select org.make.api.proposal.DefaultProposalCoordinatorServiceComponent.DefaultProposalCoordinatorService.timeout DefaultProposalCoordinatorService.this.timeout
228 10057 7308 - 7308 Select scala.concurrent.ExecutionContext.Implicits.global scala.concurrent.ExecutionContext.Implicits.global
229 12784 7288 - 7432 ApplyToImplicitArgs scala.concurrent.Future.flatMap org.make.api.technical.BetterLoggingActors.BetterLoggingTypedActorRef[org.make.api.proposal.ProposalCommand](DefaultProposalCoordinatorServiceComponent.this.proposalCoordinator).??[org.make.api.proposal.ProposalActorResponse[org.make.api.proposal.ProposalActorResponse.Error.ModificationError,org.make.core.proposal.Proposal]](((x$6: akka.actor.typed.ActorRef[org.make.api.proposal.ProposalActorResponse[org.make.api.proposal.ProposalActorResponse.Error.ModificationError,org.make.core.proposal.Proposal]]) => UpdateProposalVotesCommand.apply(moderator, proposalId, requestContext, updatedAt, votes, x$6)))(scala.concurrent.ExecutionContext.Implicits.global, DefaultProposalCoordinatorServiceComponent.this.actorSystem, DefaultProposalCoordinatorService.this.timeout).flatMap[Option[org.make.core.proposal.Proposal]](((response: org.make.api.proposal.ProposalActorResponse[Any,org.make.core.proposal.Proposal]) => DefaultProposalCoordinatorService.this.shapeResponse[Any, org.make.core.proposal.Proposal](response)))(scala.concurrent.ExecutionContext.Implicits.global)
229 18417 7418 - 7431 Apply org.make.api.proposal.DefaultProposalCoordinatorServiceComponent.DefaultProposalCoordinatorService.shapeResponse DefaultProposalCoordinatorService.this.shapeResponse[Any, org.make.core.proposal.Proposal](response)
229 16497 7417 - 7417 Select scala.concurrent.ExecutionContext.Implicits.global scala.concurrent.ExecutionContext.Implicits.global
242 9345 7775 - 7794 Select org.make.api.proposal.ProposalCoordinatorComponent.proposalCoordinator DefaultProposalCoordinatorServiceComponent.this.proposalCoordinator
242 15083 7799 - 8010 Apply org.make.api.proposal.AcceptProposalCommand.apply AcceptProposalCommand.apply(moderator, proposalId, requestContext, sendNotificationEmail, newContent, newTranslations, question, tags, x$7)
242 13556 7795 - 7795 Select scala.concurrent.ExecutionContext.Implicits.global scala.concurrent.ExecutionContext.Implicits.global
242 9474 7795 - 7795 Select org.make.api.technical.ActorSystemComponent.actorSystem DefaultProposalCoordinatorServiceComponent.this.actorSystem
242 15781 7795 - 7795 Select org.make.api.proposal.DefaultProposalCoordinatorServiceComponent.DefaultProposalCoordinatorService.timeout DefaultProposalCoordinatorService.this.timeout
252 18054 8020 - 8020 Select scala.concurrent.ExecutionContext.Implicits.global scala.concurrent.ExecutionContext.Implicits.global
252 12356 8021 - 8034 Apply org.make.api.proposal.DefaultProposalCoordinatorServiceComponent.DefaultProposalCoordinatorService.shapeResponse DefaultProposalCoordinatorService.this.shapeResponse[Any, org.make.core.proposal.Proposal](response)
252 16509 7775 - 8035 ApplyToImplicitArgs scala.concurrent.Future.flatMap org.make.api.technical.BetterLoggingActors.BetterLoggingTypedActorRef[org.make.api.proposal.ProposalCommand](DefaultProposalCoordinatorServiceComponent.this.proposalCoordinator).??[org.make.api.proposal.ProposalActorResponse[org.make.api.proposal.ProposalActorResponse.Error.ModificationError,org.make.core.proposal.Proposal]](((x$7: akka.actor.typed.ActorRef[org.make.api.proposal.ProposalActorResponse[org.make.api.proposal.ProposalActorResponse.Error.ModificationError,org.make.core.proposal.Proposal]]) => AcceptProposalCommand.apply(moderator, proposalId, requestContext, sendNotificationEmail, newContent, newTranslations, question, tags, x$7)))(scala.concurrent.ExecutionContext.Implicits.global, DefaultProposalCoordinatorServiceComponent.this.actorSystem, DefaultProposalCoordinatorService.this.timeout).flatMap[Option[org.make.core.proposal.Proposal]](((response: org.make.api.proposal.ProposalActorResponse[Any,org.make.core.proposal.Proposal]) => DefaultProposalCoordinatorService.this.shapeResponse[Any, org.make.core.proposal.Proposal](response)))(scala.concurrent.ExecutionContext.Implicits.global)
262 12802 8278 - 8297 Select org.make.api.proposal.ProposalCoordinatorComponent.proposalCoordinator DefaultProposalCoordinatorServiceComponent.this.proposalCoordinator
262 9225 8302 - 8459 Apply org.make.api.proposal.RefuseProposalCommand.apply RefuseProposalCommand.apply(moderator, proposalId, requestContext, sendNotificationEmail, refusalReason, x$8)
262 9706 8298 - 8298 Select org.make.api.proposal.DefaultProposalCoordinatorServiceComponent.DefaultProposalCoordinatorService.timeout DefaultProposalCoordinatorService.this.timeout
262 15104 8298 - 8298 Select scala.concurrent.ExecutionContext.Implicits.global scala.concurrent.ExecutionContext.Implicits.global
262 11499 8298 - 8298 Select org.make.api.technical.ActorSystemComponent.actorSystem DefaultProposalCoordinatorServiceComponent.this.actorSystem
269 18074 8278 - 8484 ApplyToImplicitArgs scala.concurrent.Future.flatMap org.make.api.technical.BetterLoggingActors.BetterLoggingTypedActorRef[org.make.api.proposal.ProposalCommand](DefaultProposalCoordinatorServiceComponent.this.proposalCoordinator).??[org.make.api.proposal.ProposalActorResponse[org.make.api.proposal.ProposalActorResponse.Error.ModificationError,org.make.core.proposal.Proposal]](((x$8: akka.actor.typed.ActorRef[org.make.api.proposal.ProposalActorResponse[org.make.api.proposal.ProposalActorResponse.Error.ModificationError,org.make.core.proposal.Proposal]]) => RefuseProposalCommand.apply(moderator, proposalId, requestContext, sendNotificationEmail, refusalReason, x$8)))(scala.concurrent.ExecutionContext.Implicits.global, DefaultProposalCoordinatorServiceComponent.this.actorSystem, DefaultProposalCoordinatorService.this.timeout).flatMap[Option[org.make.core.proposal.Proposal]](((response: org.make.api.proposal.ProposalActorResponse[Any,org.make.core.proposal.Proposal]) => DefaultProposalCoordinatorService.this.shapeResponse[Any, org.make.core.proposal.Proposal](response)))(scala.concurrent.ExecutionContext.Implicits.global)
269 15801 8470 - 8483 Apply org.make.api.proposal.DefaultProposalCoordinatorServiceComponent.DefaultProposalCoordinatorService.shapeResponse DefaultProposalCoordinatorService.this.shapeResponse[Any, org.make.core.proposal.Proposal](response)
269 11969 8469 - 8469 Select scala.concurrent.ExecutionContext.Implicits.global scala.concurrent.ExecutionContext.Implicits.global
277 11519 8674 - 8674 Select org.make.api.proposal.DefaultProposalCoordinatorServiceComponent.DefaultProposalCoordinatorService.timeout DefaultProposalCoordinatorService.this.timeout
277 14973 8674 - 8674 Select org.make.api.technical.ActorSystemComponent.actorSystem DefaultProposalCoordinatorServiceComponent.this.actorSystem
277 9246 8674 - 8674 Select scala.concurrent.ExecutionContext.Implicits.global scala.concurrent.ExecutionContext.Implicits.global
277 16282 8654 - 8673 Select org.make.api.proposal.ProposalCoordinatorComponent.proposalCoordinator DefaultProposalCoordinatorServiceComponent.this.proposalCoordinator
277 12690 8678 - 8743 Apply org.make.api.proposal.PostponeProposalCommand.apply PostponeProposalCommand.apply(moderator, proposalId, requestContext, x$9)
278 15684 8762 - 8762 Select scala.concurrent.ExecutionContext.Implicits.global scala.concurrent.ExecutionContext.Implicits.global
278 11987 8654 - 8777 ApplyToImplicitArgs scala.concurrent.Future.flatMap org.make.api.technical.BetterLoggingActors.BetterLoggingTypedActorRef[org.make.api.proposal.ProposalCommand](DefaultProposalCoordinatorServiceComponent.this.proposalCoordinator).??[org.make.api.proposal.ProposalActorResponse[org.make.api.proposal.ProposalActorResponse.Error.ModificationError,org.make.core.proposal.Proposal]](((x$9: akka.actor.typed.ActorRef[org.make.api.proposal.ProposalActorResponse[org.make.api.proposal.ProposalActorResponse.Error.ModificationError,org.make.core.proposal.Proposal]]) => PostponeProposalCommand.apply(moderator, proposalId, requestContext, x$9)))(scala.concurrent.ExecutionContext.Implicits.global, DefaultProposalCoordinatorServiceComponent.this.actorSystem, DefaultProposalCoordinatorService.this.timeout).flatMap[Option[org.make.core.proposal.Proposal]](((response: org.make.api.proposal.ProposalActorResponse[Any,org.make.core.proposal.Proposal]) => DefaultProposalCoordinatorService.this.shapeResponse[Any, org.make.core.proposal.Proposal](response)))(scala.concurrent.ExecutionContext.Implicits.global)
278 10048 8763 - 8776 Apply org.make.api.proposal.DefaultProposalCoordinatorServiceComponent.DefaultProposalCoordinatorService.shapeResponse DefaultProposalCoordinatorService.this.shapeResponse[Any, org.make.core.proposal.Proposal](response)
282 17967 8906 - 9179 Apply org.make.api.proposal.VoteProposalCommand.apply VoteProposalCommand.apply(params.proposalId, params.maybeUserId, params.requestContext, params.voteKey, params.maybeOrganisationId, params.vote, params.voteTrust, params.newProposalsVoteThreshold, x$10)
282 14853 8902 - 8902 Select scala.concurrent.ExecutionContext.Implicits.global scala.concurrent.ExecutionContext.Implicits.global
282 18095 8882 - 8901 Select org.make.api.proposal.ProposalCoordinatorComponent.proposalCoordinator DefaultProposalCoordinatorServiceComponent.this.proposalCoordinator
282 12930 8902 - 8902 Select org.make.api.technical.ActorSystemComponent.actorSystem DefaultProposalCoordinatorServiceComponent.this.actorSystem
282 9218 8902 - 8902 Select org.make.api.proposal.DefaultProposalCoordinatorServiceComponent.DefaultProposalCoordinatorService.timeout DefaultProposalCoordinatorService.this.timeout
283 14836 8935 - 8952 Select org.make.api.proposal.VoteProposalParams.proposalId params.proposalId
284 13053 8962 - 8980 Select org.make.api.proposal.VoteProposalParams.maybeUserId params.maybeUserId
285 9115 8990 - 9011 Select org.make.api.proposal.VoteProposalParams.requestContext params.requestContext
286 14995 9021 - 9035 Select org.make.api.proposal.VoteProposalParams.voteKey params.voteKey
287 11536 9045 - 9071 Select org.make.api.proposal.VoteProposalParams.maybeOrganisationId params.maybeOrganisationId
288 9923 9081 - 9092 Select org.make.api.proposal.VoteProposalParams.vote params.vote
289 16034 9102 - 9118 Select org.make.api.proposal.VoteProposalParams.voteTrust params.voteTrust
290 11877 9128 - 9160 Select org.make.api.proposal.VoteProposalParams.newProposalsVoteThreshold params.newProposalsVoteThreshold
292 9943 8882 - 9204 ApplyToImplicitArgs scala.concurrent.Future.flatMap org.make.api.technical.BetterLoggingActors.BetterLoggingTypedActorRef[org.make.api.proposal.ProposalCommand](DefaultProposalCoordinatorServiceComponent.this.proposalCoordinator).??[org.make.api.proposal.ProposalActorResponse[org.make.api.proposal.ProposalActorResponse.Error.VoteError,org.make.api.proposal.ProposalActorResponse.VotesActorResponse]](((x$10: akka.actor.typed.ActorRef[org.make.api.proposal.ProposalActorResponse[org.make.api.proposal.ProposalActorResponse.Error.VoteError,org.make.api.proposal.ProposalActorResponse.VotesActorResponse]]) => VoteProposalCommand.apply(params.proposalId, params.maybeUserId, params.requestContext, params.voteKey, params.maybeOrganisationId, params.vote, params.voteTrust, params.newProposalsVoteThreshold, x$10)))(scala.concurrent.ExecutionContext.Implicits.global, DefaultProposalCoordinatorServiceComponent.this.actorSystem, DefaultProposalCoordinatorService.this.timeout).flatMap[Option[org.make.api.proposal.ProposalActorResponse.VotesActorResponse]](((response: org.make.api.proposal.ProposalActorResponse[Any,org.make.api.proposal.ProposalActorResponse.VotesActorResponse]) => DefaultProposalCoordinatorService.this.shapeResponse[Any, org.make.api.proposal.ProposalActorResponse.VotesActorResponse](response)))(scala.concurrent.ExecutionContext.Implicits.global)
292 15013 9190 - 9203 Apply org.make.api.proposal.DefaultProposalCoordinatorServiceComponent.DefaultProposalCoordinatorService.shapeResponse DefaultProposalCoordinatorService.this.shapeResponse[Any, org.make.api.proposal.ProposalActorResponse.VotesActorResponse](response)
292 11741 9189 - 9189 Select scala.concurrent.ExecutionContext.Implicits.global scala.concurrent.ExecutionContext.Implicits.global
296 14747 9331 - 9331 Select org.make.api.proposal.DefaultProposalCoordinatorServiceComponent.DefaultProposalCoordinatorService.timeout DefaultProposalCoordinatorService.this.timeout
296 17944 9331 - 9331 Select org.make.api.technical.ActorSystemComponent.actorSystem DefaultProposalCoordinatorServiceComponent.this.actorSystem
296 15677 9335 - 9610 Apply org.make.api.proposal.UnvoteProposalCommand.apply UnvoteProposalCommand.apply(params.proposalId, params.maybeUserId, params.requestContext, params.voteKey, params.maybeOrganisationId, params.vote, params.voteTrust, params.newProposalsVoteThreshold, x$11)
296 15925 9311 - 9330 Select org.make.api.proposal.ProposalCoordinatorComponent.proposalCoordinator DefaultProposalCoordinatorServiceComponent.this.proposalCoordinator
296 12255 9331 - 9331 Select scala.concurrent.ExecutionContext.Implicits.global scala.concurrent.ExecutionContext.Implicits.global
297 12241 9366 - 9383 Select org.make.api.proposal.VoteProposalParams.proposalId params.proposalId
298 17987 9393 - 9411 Select org.make.api.proposal.VoteProposalParams.maybeUserId params.maybeUserId
299 14729 9421 - 9442 Select org.make.api.proposal.VoteProposalParams.requestContext params.requestContext
300 12946 9452 - 9466 Select org.make.api.proposal.VoteProposalParams.voteKey params.voteKey
301 9091 9476 - 9502 Select org.make.api.proposal.VoteProposalParams.maybeOrganisationId params.maybeOrganisationId
302 15245 9512 - 9523 Select org.make.api.proposal.VoteProposalParams.vote params.vote
303 11762 9533 - 9549 Select org.make.api.proposal.VoteProposalParams.voteTrust params.voteTrust
304 17688 9559 - 9591 Select org.make.api.proposal.VoteProposalParams.newProposalsVoteThreshold params.newProposalsVoteThreshold
306 12826 9621 - 9634 Apply org.make.api.proposal.DefaultProposalCoordinatorServiceComponent.DefaultProposalCoordinatorService.shapeResponse DefaultProposalCoordinatorService.this.shapeResponse[Any, org.make.api.proposal.ProposalActorResponse.VotesActorResponse](response)
306 9107 9620 - 9620 Select scala.concurrent.ExecutionContext.Implicits.global scala.concurrent.ExecutionContext.Implicits.global
306 15256 9311 - 9635 ApplyToImplicitArgs scala.concurrent.Future.flatMap org.make.api.technical.BetterLoggingActors.BetterLoggingTypedActorRef[org.make.api.proposal.ProposalCommand](DefaultProposalCoordinatorServiceComponent.this.proposalCoordinator).??[org.make.api.proposal.ProposalActorResponse[org.make.api.proposal.ProposalActorResponse.Error.VoteError,org.make.api.proposal.ProposalActorResponse.VotesActorResponse]](((x$11: akka.actor.typed.ActorRef[org.make.api.proposal.ProposalActorResponse[org.make.api.proposal.ProposalActorResponse.Error.VoteError,org.make.api.proposal.ProposalActorResponse.VotesActorResponse]]) => UnvoteProposalCommand.apply(params.proposalId, params.maybeUserId, params.requestContext, params.voteKey, params.maybeOrganisationId, params.vote, params.voteTrust, params.newProposalsVoteThreshold, x$11)))(scala.concurrent.ExecutionContext.Implicits.global, DefaultProposalCoordinatorServiceComponent.this.actorSystem, DefaultProposalCoordinatorService.this.timeout).flatMap[Option[org.make.api.proposal.ProposalActorResponse.VotesActorResponse]](((response: org.make.api.proposal.ProposalActorResponse[Any,org.make.api.proposal.ProposalActorResponse.VotesActorResponse]) => DefaultProposalCoordinatorService.this.shapeResponse[Any, org.make.api.proposal.ProposalActorResponse.VotesActorResponse](response)))(scala.concurrent.ExecutionContext.Implicits.global)
318 17709 9986 - 10164 Apply org.make.api.proposal.QualifyVoteCommand.apply QualifyVoteCommand.apply(proposalId, maybeUserId, requestContext, voteKey, qualificationKey, vote, voteTrust, x$12)
318 17963 9982 - 9982 Select org.make.api.proposal.DefaultProposalCoordinatorServiceComponent.DefaultProposalCoordinatorService.timeout DefaultProposalCoordinatorService.this.timeout
318 11398 9962 - 9981 Select org.make.api.proposal.ProposalCoordinatorComponent.proposalCoordinator DefaultProposalCoordinatorServiceComponent.this.proposalCoordinator
318 15695 9982 - 9982 Select scala.concurrent.ExecutionContext.Implicits.global scala.concurrent.ExecutionContext.Implicits.global
318 12133 9982 - 9982 Select org.make.api.technical.ActorSystemComponent.actorSystem DefaultProposalCoordinatorServiceComponent.this.actorSystem
327 9129 9962 - 10189 ApplyToImplicitArgs scala.concurrent.Future.flatMap org.make.api.technical.BetterLoggingActors.BetterLoggingTypedActorRef[org.make.api.proposal.ProposalCommand](DefaultProposalCoordinatorServiceComponent.this.proposalCoordinator).??[org.make.api.proposal.ProposalActorResponse[org.make.api.proposal.ProposalActorResponse.Error.QualificationError,org.make.core.proposal.Qualification]](((x$12: akka.actor.typed.ActorRef[org.make.api.proposal.ProposalActorResponse[org.make.api.proposal.ProposalActorResponse.Error.QualificationError,org.make.core.proposal.Qualification]]) => QualifyVoteCommand.apply(proposalId, maybeUserId, requestContext, voteKey, qualificationKey, vote, voteTrust, x$12)))(scala.concurrent.ExecutionContext.Implicits.global, DefaultProposalCoordinatorServiceComponent.this.actorSystem, DefaultProposalCoordinatorService.this.timeout).flatMap[Option[org.make.core.proposal.Qualification]](((response: org.make.api.proposal.ProposalActorResponse[Any,org.make.core.proposal.Qualification]) => DefaultProposalCoordinatorService.this.shapeResponse[Any, org.make.core.proposal.Qualification](response)))(scala.concurrent.ExecutionContext.Implicits.global)
327 12609 10174 - 10174 Select scala.concurrent.ExecutionContext.Implicits.global scala.concurrent.ExecutionContext.Implicits.global
327 14379 10175 - 10188 Apply org.make.api.proposal.DefaultProposalCoordinatorServiceComponent.DefaultProposalCoordinatorService.shapeResponse DefaultProposalCoordinatorService.this.shapeResponse[Any, org.make.core.proposal.Qualification](response)
339 17326 10538 - 10538 Select scala.concurrent.ExecutionContext.Implicits.global scala.concurrent.ExecutionContext.Implicits.global
339 14870 10518 - 10537 Select org.make.api.proposal.ProposalCoordinatorComponent.proposalCoordinator DefaultProposalCoordinatorServiceComponent.this.proposalCoordinator
339 11415 10542 - 10722 Apply org.make.api.proposal.UnqualifyVoteCommand.apply UnqualifyVoteCommand.apply(proposalId, maybeUserId, requestContext, voteKey, qualificationKey, vote, voteTrust, x$13)
339 12151 10538 - 10538 Select org.make.api.proposal.DefaultProposalCoordinatorServiceComponent.DefaultProposalCoordinatorService.timeout DefaultProposalCoordinatorService.this.timeout
339 15584 10538 - 10538 Select org.make.api.technical.ActorSystemComponent.actorSystem DefaultProposalCoordinatorServiceComponent.this.actorSystem
348 17838 10733 - 10746 Apply org.make.api.proposal.DefaultProposalCoordinatorServiceComponent.DefaultProposalCoordinatorService.shapeResponse DefaultProposalCoordinatorService.this.shapeResponse[Any, org.make.core.proposal.Qualification](response)
348 11258 10518 - 10747 ApplyToImplicitArgs scala.concurrent.Future.flatMap org.make.api.technical.BetterLoggingActors.BetterLoggingTypedActorRef[org.make.api.proposal.ProposalCommand](DefaultProposalCoordinatorServiceComponent.this.proposalCoordinator).??[org.make.api.proposal.ProposalActorResponse[org.make.api.proposal.ProposalActorResponse.Error.QualificationError,org.make.core.proposal.Qualification]](((x$13: akka.actor.typed.ActorRef[org.make.api.proposal.ProposalActorResponse[org.make.api.proposal.ProposalActorResponse.Error.QualificationError,org.make.core.proposal.Qualification]]) => UnqualifyVoteCommand.apply(proposalId, maybeUserId, requestContext, voteKey, qualificationKey, vote, voteTrust, x$13)))(scala.concurrent.ExecutionContext.Implicits.global, DefaultProposalCoordinatorServiceComponent.this.actorSystem, DefaultProposalCoordinatorService.this.timeout).flatMap[Option[org.make.core.proposal.Qualification]](((response: org.make.api.proposal.ProposalActorResponse[Any,org.make.core.proposal.Qualification]) => DefaultProposalCoordinatorService.this.shapeResponse[Any, org.make.core.proposal.Qualification](response)))(scala.concurrent.ExecutionContext.Implicits.global)
348 14395 10732 - 10732 Select scala.concurrent.ExecutionContext.Implicits.global scala.concurrent.ExecutionContext.Implicits.global
357 9004 10950 - 10969 Select org.make.api.proposal.ProposalCoordinatorComponent.proposalCoordinator DefaultProposalCoordinatorServiceComponent.this.proposalCoordinator
357 11283 10970 - 10970 Select scala.concurrent.ExecutionContext.Implicits.global scala.concurrent.ExecutionContext.Implicits.global
357 14889 10974 - 11052 Apply org.make.api.proposal.LockProposalCommand.apply LockProposalCommand.apply(proposalId, moderatorId, moderatorName, requestContext, x$14)
357 17685 10970 - 10970 Select org.make.api.technical.ActorSystemComponent.actorSystem DefaultProposalCoordinatorServiceComponent.this.actorSystem
357 15937 10970 - 10970 Select org.make.api.proposal.DefaultProposalCoordinatorServiceComponent.DefaultProposalCoordinatorService.timeout DefaultProposalCoordinatorService.this.timeout
358 12025 11072 - 11085 Apply org.make.api.proposal.DefaultProposalCoordinatorServiceComponent.DefaultProposalCoordinatorService.shapeResponse DefaultProposalCoordinatorService.this.shapeResponse[Any, org.make.core.user.UserId](response)
358 17856 11071 - 11071 Select scala.concurrent.ExecutionContext.Implicits.global scala.concurrent.ExecutionContext.Implicits.global
358 14279 10950 - 11086 ApplyToImplicitArgs scala.concurrent.Future.flatMap org.make.api.technical.BetterLoggingActors.BetterLoggingTypedActorRef[org.make.api.proposal.ProposalCommand](DefaultProposalCoordinatorServiceComponent.this.proposalCoordinator).??[org.make.api.proposal.ProposalActorResponse[org.make.api.proposal.ProposalActorResponse.Error.LockError,org.make.core.user.UserId]](((x$14: akka.actor.typed.ActorRef[org.make.api.proposal.ProposalActorResponse[org.make.api.proposal.ProposalActorResponse.Error.LockError,org.make.core.user.UserId]]) => LockProposalCommand.apply(proposalId, moderatorId, moderatorName, requestContext, x$14)))(scala.concurrent.ExecutionContext.Implicits.global, DefaultProposalCoordinatorServiceComponent.this.actorSystem, DefaultProposalCoordinatorService.this.timeout).flatMap[Option[org.make.core.user.UserId]](((response: org.make.api.proposal.ProposalActorResponse[Any,org.make.core.user.UserId]) => DefaultProposalCoordinatorService.this.shapeResponse[Any, org.make.core.user.UserId](response)))(scala.concurrent.ExecutionContext.Implicits.global)
367 17704 11307 - 11307 Select org.make.api.proposal.DefaultProposalCoordinatorServiceComponent.DefaultProposalCoordinatorService.timeout DefaultProposalCoordinatorService.this.timeout
367 14147 11386 - 11394 Apply org.make.api.proposal.DefaultProposalCoordinatorServiceComponent.DefaultProposalCoordinatorService.asOption DefaultProposalCoordinatorService.this.asOption[Any, org.make.core.proposal.Proposal](response)
367 18337 11287 - 11395 ApplyToImplicitArgs scala.concurrent.Future.map org.make.api.technical.BetterLoggingActors.BetterLoggingTypedActorRef[org.make.api.proposal.ProposalCommand](DefaultProposalCoordinatorServiceComponent.this.proposalCoordinator).??[org.make.api.proposal.ProposalActorResponse[org.make.api.proposal.ProposalActorResponse.Error.ProposalNotFound,org.make.core.proposal.Proposal]](((x$15: akka.actor.typed.ActorRef[org.make.api.proposal.ProposalActorResponse[org.make.api.proposal.ProposalActorResponse.Error.ProposalNotFound,org.make.core.proposal.Proposal]]) => PatchProposalCommand.apply(proposalId, userId, changes, requestContext, x$15)))(scala.concurrent.ExecutionContext.Implicits.global, DefaultProposalCoordinatorServiceComponent.this.actorSystem, DefaultProposalCoordinatorService.this.timeout).map[Option[org.make.core.proposal.Proposal]](((response: org.make.api.proposal.ProposalActorResponse[Any,org.make.core.proposal.Proposal]) => DefaultProposalCoordinatorService.this.asOption[Any, org.make.core.proposal.Proposal](response)))(scala.concurrent.ExecutionContext.Implicits.global)
367 9377 11311 - 11379 Apply org.make.api.proposal.PatchProposalCommand.apply PatchProposalCommand.apply(proposalId, userId, changes, requestContext, x$15)
367 12125 11385 - 11385 Select scala.concurrent.ExecutionContext.Implicits.global scala.concurrent.ExecutionContext.Implicits.global
367 15378 11307 - 11307 Select scala.concurrent.ExecutionContext.Implicits.global scala.concurrent.ExecutionContext.Implicits.global
367 11304 11307 - 11307 Select org.make.api.technical.ActorSystemComponent.actorSystem DefaultProposalCoordinatorServiceComponent.this.actorSystem
367 11134 11287 - 11306 Select org.make.api.proposal.ProposalCoordinatorComponent.proposalCoordinator DefaultProposalCoordinatorServiceComponent.this.proposalCoordinator
375 15143 11601 - 11601 Select org.make.api.technical.ActorSystemComponent.actorSystem DefaultProposalCoordinatorServiceComponent.this.actorSystem
375 9263 11601 - 11601 Select scala.concurrent.ExecutionContext.Implicits.global scala.concurrent.ExecutionContext.Implicits.global
375 17574 11671 - 11679 Apply org.make.api.proposal.DefaultProposalCoordinatorServiceComponent.DefaultProposalCoordinatorService.asOption DefaultProposalCoordinatorService.this.asOption[Any, org.make.core.proposal.Proposal](response)
375 11153 11605 - 11664 Apply org.make.api.proposal.SetKeywordsCommand.apply SetKeywordsCommand.apply(proposalId, keywords, requestContext, x$16)
375 12002 11581 - 11680 ApplyToImplicitArgs scala.concurrent.Future.map org.make.api.technical.BetterLoggingActors.BetterLoggingTypedActorRef[org.make.api.proposal.ProposalCommand](DefaultProposalCoordinatorServiceComponent.this.proposalCoordinator).??[org.make.api.proposal.ProposalActorResponse[org.make.api.proposal.ProposalActorResponse.Error.ProposalNotFound,org.make.core.proposal.Proposal]](((x$16: akka.actor.typed.ActorRef[org.make.api.proposal.ProposalActorResponse[org.make.api.proposal.ProposalActorResponse.Error.ProposalNotFound,org.make.core.proposal.Proposal]]) => SetKeywordsCommand.apply(proposalId, keywords, requestContext, x$16)))(scala.concurrent.ExecutionContext.Implicits.global, DefaultProposalCoordinatorServiceComponent.this.actorSystem, DefaultProposalCoordinatorService.this.timeout).map[Option[org.make.core.proposal.Proposal]](((response: org.make.api.proposal.ProposalActorResponse[Any,org.make.core.proposal.Proposal]) => DefaultProposalCoordinatorService.this.asOption[Any, org.make.core.proposal.Proposal](response)))(scala.concurrent.ExecutionContext.Implicits.global)
375 11323 11601 - 11601 Select org.make.api.proposal.DefaultProposalCoordinatorServiceComponent.DefaultProposalCoordinatorService.timeout DefaultProposalCoordinatorService.this.timeout
375 14167 11670 - 11670 Select scala.concurrent.ExecutionContext.Implicits.global scala.concurrent.ExecutionContext.Implicits.global
375 14630 11581 - 11600 Select org.make.api.proposal.ProposalCoordinatorComponent.proposalCoordinator DefaultProposalCoordinatorServiceComponent.this.proposalCoordinator
379 18110 11840 - 11851 Apply scala.Some.apply scala.Some.apply[T](value)
380 14645 11904 - 11908 Select scala.None scala.None
385 12016 12110 - 12253 Apply scala.concurrent.Future.failed scala.concurrent.Future.failed[Nothing](org.make.core.ValidationFailedError.apply(scala.`package`.Seq.apply[org.make.core.ValidationError](org.make.core.ValidationError.apply("moderatorName", "already_locked", scala.Some.apply[String](moderatorName)))))
386 11020 12186 - 12201 Literal <nosymbol> "moderatorName"
386 8998 12203 - 12219 Literal <nosymbol> "already_locked"
386 15014 12221 - 12240 Apply scala.Some.apply scala.Some.apply[String](moderatorName)
386 14042 12135 - 12243 Apply org.make.core.ValidationFailedError.apply org.make.core.ValidationFailedError.apply(scala.`package`.Seq.apply[org.make.core.ValidationError](org.make.core.ValidationError.apply("moderatorName", "already_locked", scala.Some.apply[String](moderatorName))))
386 11278 12170 - 12241 Apply org.make.core.ValidationError.apply org.make.core.ValidationError.apply("moderatorName", "already_locked", scala.Some.apply[String](moderatorName))
386 17588 12166 - 12242 Apply scala.collection.SeqFactory.Delegate.apply scala.`package`.Seq.apply[org.make.core.ValidationError](org.make.core.ValidationError.apply("moderatorName", "already_locked", scala.Some.apply[String](moderatorName)))
388 18124 12316 - 12336 Apply scala.concurrent.Future.failed scala.concurrent.Future.failed[Nothing](error)
390 14142 12414 - 12523 Apply scala.concurrent.Future.failed scala.concurrent.Future.failed[Nothing](org.make.core.ValidationFailedError.apply(scala.`package`.Seq.apply[org.make.core.ValidationError](org.make.core.ValidationError.apply("status", "invalid_state", scala.Some.apply[String](message)))))
390 10769 12489 - 12504 Literal <nosymbol> "invalid_state"
390 14276 12479 - 12487 Literal <nosymbol> "status"
390 16758 12506 - 12519 Apply scala.Some.apply scala.Some.apply[String](message)
390 17239 12428 - 12522 Apply org.make.core.ValidationFailedError.apply org.make.core.ValidationFailedError.apply(scala.`package`.Seq.apply[org.make.core.ValidationError](org.make.core.ValidationError.apply("status", "invalid_state", scala.Some.apply[String](message))))
390 15034 12463 - 12520 Apply org.make.core.ValidationError.apply org.make.core.ValidationError.apply("status", "invalid_state", scala.Some.apply[String](message))
390 11295 12459 - 12521 Apply scala.collection.SeqFactory.Delegate.apply scala.`package`.Seq.apply[org.make.core.ValidationError](org.make.core.ValidationError.apply("status", "invalid_state", scala.Some.apply[String](message)))
391 18331 12544 - 12578 Apply scala.concurrent.Future.successful scala.concurrent.Future.successful[Option[T]](DefaultProposalCoordinatorService.this.asOption[E, T](other))
391 12040 12562 - 12577 Apply org.make.api.proposal.DefaultProposalCoordinatorServiceComponent.DefaultProposalCoordinatorService.asOption DefaultProposalCoordinatorService.this.asOption[E, T](other)