Commit Graph

44 Commits

Author SHA1 Message Date
efim 62d63546c4 adding alpha create room capability 2023-04-28 10:08:04 +04:00
efim e1364c9b9b simple routes mapped to room service 2023-04-28 09:28:57 +04:00
efim 8098f24552 rooms service methods implementation
removed stubbed room, but thing compiles and maybe will work?
lot's of pain with trying to store Topic inside Ref together with Room.

storing them together in a tuple means for the room there should always
be a topic
but then modifying the room in side of ref is uncomfortable, because i
want to do F[Unit] send updated room together with room modification,
but Ref seems to take in only pure function to update the value

there got to be maybe some semaphors or something like that?
and storing topics where? in a separate state?
that would maybe simplify things, but i'm coding well into the night and
that's not a good idea really

now before testing this with front end, i need a way to create a room.
2023-04-28 02:54:15 +04:00
efim bd38a29b6d backend: move roomService usage to httpService
no longer used in auth module,
ready to connect rest routes to room service
2023-04-28 00:46:25 +04:00
efim ed6d30ec42 models: separate backend room model
not viewable on front end, since doesn't have json codecs, yay!
2023-04-27 22:17:47 +04:00
efim da9b96de84 own hand control - adding interactivity 2023-04-27 21:36:06 +04:00
efim 9a27a5c943 own controls - hide own active vote card 2023-04-27 21:21:02 +04:00
efim 11e65c009c add very dummy own card controls 2023-04-27 21:07:35 +04:00
efim 107e7507f4 front other players - move to separate file 2023-04-27 20:58:53 +04:00
efim ecb1717eb3 front: simple table control buttons 2023-04-27 11:57:20 +04:00
efim f8bf1b961b new logout button
triggers /api/logout and updates app loggedIn state
2023-04-27 10:34:40 +04:00
efim 9db42cb522 connect login and room pages via logged in state
moving websocket into being managed by the room component.
if the partent would want access to "user signal" it can ask via
observer.
that would mean bidirectionality, and i already hear screeching of my
intuitions from react, but maybe that's ok and in react i would still
scope the websocket to the room page, plus callbacks
2023-04-26 22:32:53 +04:00
efim 90e886c62d new Join Room form that requests authcookie
getting stubbed session #1,
with auth module stubbed to accept that session in.
and stubbed method for streaming room state,
but that's enough to start testing room calling api's for other actions

next - pass in observable from parent to re-toggle subscription
websocket after successful login
2023-04-26 11:42:40 +04:00
efim 1f28a03d47 temporarily hardcoding backend room and session 2023-04-26 08:56:51 +04:00
efim 6c1220b544 more initial impl of auth utils 2023-04-26 08:39:43 +04:00
efim b29d1a1ef1 new auth method for joining room 2023-04-25 12:17:37 +04:00
efim 1b71c942ec adding room service, joining room
adding nick password into model, stored in the Room
to allow more secure joining for repeated times
2023-04-25 11:41:32 +04:00
efim 2244f38348 scalafmt all 2023-04-25 10:25:36 +04:00
efim 0a721b135f stubbed auth with tagless final 2023-04-25 10:23:13 +04:00
efim 64267a5f67 backend - adding room service and wiring
preparing to create a better auth module that uses room service
2023-04-25 09:55:45 +04:00
efim dfff814079 cleanup 2023-04-25 09:45:21 +04:00
efim 62a4b265c2 fix vite plugin configuration for mutliproject sbt
without 'projectID' vite plugin uses root project to run fastLinkJS
and that results in `import scalajs:main.js` attempting to import
common/.js/main.js which does not exist
2023-04-24 09:17:32 +04:00
efim 8716385ea1 adding fork := true for backend server interrupts
without it app starts in same jvm and we're told that Ctrl+C will not
always kill the Ember server:

https://typelevel.org/cats-effect/docs/2.x/datatypes/ioapp
WARNING: If you run your IOApp program from sbt, you may observe cancellation and resource releasing is not happening. This is due to sbt, by default, running programs in the same JVM as sbt, so when your program is canceled sbt avoids stopping its own JVM. To properly allow cancellation, ensure your progam is forked into its own JVM via a setting like fork := true in your sbt configuration.
2023-04-23 23:35:45 +04:00
efim 77b34a2ca7 change Map to List in model, scalajs didn't decode 2023-04-23 23:15:59 +04:00
efim f3e51a4750 fixing websocket, it was misspelled port
wow. just wow
2023-04-23 23:01:51 +04:00
efim 5ac864f15e not working: attempt to stream in websocket
added Vite proxy, tested with websocat, with direct js websocket.
the error seems to be Laminex related
2023-04-23 22:22:02 +04:00
efim 329dc6e8b2 initial way to run the server:
sbt:backend> assembly
java -jar backend/target/scala-3.2.0/backend-assembly-0.1.0-SNAPSHOT.jar
2023-04-23 18:33:29 +04:00
efim 1f7fdfb387 fix tailwind search path 2023-04-23 18:07:00 +04:00
efim fe4fe8a51d hack to fix Vite loading
for some reason I was getting error:
Failed to load url 	/home/enefedov/Documents/personal/planning-poker-grargh/common/.js/target/scala-3.2.0/common-fastopt/main.js (resolved id: 	/home/enefedov/Documents/personal/planning-poker-grargh/common/.js/target/scala-3.2.0/common-fastopt/main.js) in /home/enefedov/Documents/personal/planning-poker-grargh/main.js. Does the file exist?
2023-04-23 18:06:37 +04:00
efim d171dc31f5 removing scalajs annotations as unavailable in jvm 2023-04-23 17:57:04 +04:00
efim 313cf3a405 fixing common as crossCompiled 2023-04-23 17:48:24 +04:00
efim 2c66a9a8c2 adding websocket connection to room state 2023-04-23 16:29:05 +04:00
efim df35f09b71 circe codec derivation to models 2023-04-23 15:00:00 +04:00
efim c6bfdacd1d dummy Auth and authed routes 2023-04-23 13:40:37 +04:00
efim c501d14094 add sub routes to backend app
in the shape of websocket and post \ get
with receiving of some request model
2023-04-23 11:55:53 +04:00
efim d8af92787d adding backend project
will try to do rest & websocket api with http4s
2023-04-23 11:19:38 +04:00
efim 7e488b7e62 table - make my own vote visible
adding overall app state, "my player id"
with intent to feed in data from auth methods, and read in other parts,
for example visibility of sections

don't quite sure that's the intended way
2023-04-22 01:03:04 +04:00
efim 42e092e747 some absolute positioning for other players 2023-04-22 00:46:10 +04:00
efim f845f91a8e prettify table rendering 2023-04-21 23:51:10 +04:00
efim acbda22a5d new ugly rendering of other players and table 2023-04-21 22:58:08 +04:00
efim 527e12dbd8 add simple rendering of other players 2023-04-21 19:51:43 +04:00
efim a25d915bb5 added tailwind 2023-04-21 18:24:24 +04:00
efim fd7ddd9588 adding scalajs & laminar
https://www.scala-js.org/doc/tutorial/laminar.html
2023-04-21 17:22:17 +04:00
efim 6c8e9ea4ee npm create vite 2023-04-21 17:12:21 +04:00