Skip to content

Commit e050bad

Browse files
committed
Report planes
1 parent 8fd988b commit e050bad

File tree

5 files changed

+30
-16
lines changed

5 files changed

+30
-16
lines changed

src/Client/Experiments/Update.purs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import Effect.Class as EC
1919
import Flame (Update)
2020
import Flame as F
2121
import Flame.Subscription as FS
22-
import Shared.Im.Types (RetryableRequest(..))
22+
import Shared.Im.Types (ReportReason(..), RetryableRequest(..))
2323
import Shared.Im.Types as SIT
2424
import Shared.Modal (Modal(..), ScreenModal(..))
2525
import Shared.ResizeInput as SIR
@@ -56,6 +56,14 @@ update model =
5656
AfterCatchPlane id → afterCatchPlane id model
5757
PassPaperPlane id → passPaperPlane id model
5858
AfterPassPlane id → afterPassPlane id model
59+
ReportPlane id userId → reportPlane id userId model
60+
61+
reportPlane Int Int ExperimentsModel ExperimentsModel /\ (Array (Aff (Maybe ExperimentsMessage)))
62+
reportPlane id userId model = model { paperPlane = model.paperPlane { loading = true } } /\ [ setIt ]
63+
where
64+
setIt = do
65+
void <<< CCN.silentResponse $ request.im.report { body: { userId, reason: OtherReason, comment: Just $ "paper plane reported: " <> show id } }
66+
pure <<< Just $ PassPaperPlane id
5967

6068
afterPassPlane Int ExperimentsModel ExperimentsModel /\ (Array (Aff (Maybe ExperimentsMessage)))
6169
afterPassPlane id model =
@@ -119,7 +127,7 @@ afterThrowPlane id model =
119127
{ paperPlane = model.paperPlane
120128
{ loading = false
121129
, message = Nothing
122-
, thrown = { id, message: SU.fromJust model.paperPlane.message, status: Flying } : model.paperPlane.thrown
130+
, thrown = { id, thrower: model.user.id, message: SU.fromJust model.paperPlane.message, status: Flying } : model.paperPlane.thrown
123131
}
124132
} /\ []
125133

src/Client/css/experiments.css

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,11 +102,16 @@
102102
}
103103

104104
.paper-catch {
105-
color: var(--merochat-green);
105+
color:var(--light-color);
106106
margin-left: 10px;
107107
margin-bottom: 15px;
108108
}
109109

110+
.paper-catch.report {
111+
margin-right: auto;
112+
margin-left: 0;
113+
}
114+
110115
.paper-catch:last-child {
111116
font-weight: bold;
112117
}

src/Server/Experiments/Database.purs

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,7 @@ fetchExperiments = SD.query $ select (_id /\ _code /\ _name /\ _description) # f
3636
fetchExperimentUser Int ServerEffect ChatExperimentUser
3737
fetchExperimentUser loggedUserId = do
3838
record ← SD.single $ select (array_agg _feature # as _privileges) # from (join privileges karma_leaderboard # on (_ranker .=. loggedUserId .&&. _quantity .<=. _current_karma))
39-
pure <<< { privileges: _ } $ SU.fromJust do
40-
r ← record
41-
r.privileges
39+
pure { id: loggedUserId, privileges: SU.fromJust (record >>= _.privileges) }
4240

4341
fetchAnswerCount Int ServerEffect Int
4442
fetchAnswerCount loggedUserId = do
@@ -71,20 +69,20 @@ countPaperPlanes loggedUserId = do
7169
count ← SD.single $ select (count _id # as c) # from paper_planes # wher (_thrower .=. loggedUserId .&&. _status .<>. Crashed)
7270
pure $ map _.c count
7371

74-
updatePlaneStatus Int Int -> PaperPlaneStatus -> ServerEffect Unit
75-
updatePlaneStatus loggedUserId id status = SD.execute $ update paper_planes # set (_status .=. status) # wher (_id .=. id .&&. _by .=. loggedUserId)
72+
updatePlaneStatus Int Int PaperPlaneStatus ServerEffect Unit
73+
updatePlaneStatus loggedUserId id status = SD.execute $ update paper_planes # set (_status .=. status) # wher (_id .=. id .&&. _by .=. loggedUserId)
7674

77-
updatePlaneBy Int Int -> ServerEffect Unit
78-
updatePlaneBy loggedUserId id = SD.execute $ update paper_planes # set (_by .=. Nothing) # wher (_id .=. id .&&. _by .=. loggedUserId)
75+
updatePlaneBy Int Int ServerEffect Unit
76+
updatePlaneBy loggedUserId id = SD.execute $ update paper_planes # set (_by .=. Nothing) # wher (_id .=. id .&&. _by .=. loggedUserId)
7977

8078
fetchPaperPlanes Int ServerEffect (Array PaperPlane)
81-
fetchPaperPlanes loggedUserId = SD.query $ select (_id /\ _message /\ _status) # from paper_planes # wher (_thrower .=. loggedUserId .&&. _status .<>. Crashed) # orderBy _created
79+
fetchPaperPlanes loggedUserId = SD.query $ select (_id /\ _message /\ _thrower /\ _status) # from paper_planes # wher (_thrower .=. loggedUserId .&&. _status .<>. Crashed) # orderBy _created
8280

8381
fetchPaperPlanesFlying Int ServerEffect (Array PaperPlane)
84-
fetchPaperPlanesFlying loggedUserId = SD.query $ select (_id /\ _message /\ _status) # from paper_planes # wher (_by .=. loggedUserId .&&. _status .=. Flying) # orderBy _byAt
82+
fetchPaperPlanesFlying loggedUserId = SD.query $ select (_id /\ _message /\ _thrower /\ _status) # from paper_planes # wher (_by .=. loggedUserId .&&. _status .=. Flying) # orderBy _byAt
8583

8684
fetchPaperPlanesCaught Int ServerEffect (Array PaperPlane)
87-
fetchPaperPlanesCaught loggedUserId = SD.query $ select (_id /\ _message /\ _status) # from paper_planes # wher (_by .=. loggedUserId .&&. _status .=. Caught) # orderBy _byAt
85+
fetchPaperPlanesCaught loggedUserId = SD.query $ select (_id /\ _message /\ _thrower /\ _status) # from paper_planes # wher (_by .=. loggedUserId .&&. _status .=. Caught) # orderBy _byAt
8886

8987
q Proxy "q"
9088
q = Proxy

src/Shared/Experiments/PaperPlane.purs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ view model = HE.div [ HA.class' "paper-plane duller" ]
2121
, case model.paperPlane.section of
2222
ShowNew → new model
2323
ShowFlyingBy → flyingBy model
24-
ShowCaught -> caught model
24+
ShowCaught caught model
2525
]
2626

2727
caught ExperimentsModel Html ExperimentsMessage
@@ -51,7 +51,8 @@ flyingBy model =
5151
[ HE.div [ HA.class' "paper-flown-message" ] [ HE.text plane.message ]
5252
]
5353
, HE.div [ HA.class' "paper-thrown-options" ]
54-
[ HE.a [ HA.class' "paper-catch", HA.onClick $ PassPaperPlane plane.id ] [ HE.text "Pass" ]
54+
[ HE.a [ HA.class' "paper-catch report", HA.onClick $ ReportPlane plane.id plane.thrower ] [ HE.text "Report" ]
55+
, HE.a [ HA.class' "paper-catch", HA.onClick $ PassPaperPlane plane.id ] [ HE.text "Pass" ]
5556
, HE.a [ HA.class' "paper-catch", HA.onClick $ CatchPaperPlane plane.id ] [ HE.text "Catch!" ]
5657
]
5758
]

src/Shared/Experiments/Types.purs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ type ChatExperiment =
2525
, code Experiment
2626
}
2727

28-
type ChatExperimentUser = { privileges Array Privilege }
28+
type ChatExperimentUser = { id :: Int, privileges Array Privilege }
2929

3030
data ExperimentsMessage
3131
= ToggleVisibility ScreenModal
@@ -52,6 +52,7 @@ data ExperimentsMessage
5252
| AfterCatchPlane Int
5353
| PassPaperPlane Int
5454
| AfterPassPlane Int
55+
| ReportPlane Int Int
5556

5657
type Match =
5758
{ name String
@@ -61,6 +62,7 @@ type Match =
6162
type PaperPlane =
6263
{ id Int
6364
, message String
65+
, thrower :: Int
6466
, status PaperPlaneStatus
6567
}
6668

0 commit comments

Comments
 (0)