Commit Graph

1016 Commits

Author SHA1 Message Date
shockrah
afdeef0a49 More warning removals and more db-lib result wrapping
This should be everything now
2021-03-30 23:00:50 -07:00
shockrah
4615374357 Comfy dev scripts to make life a little bit easier 2021-03-30 22:49:46 -07:00
shockrah
498da4c899 Updating dependancies to latest versions and removing some fluff interim libs 2021-03-30 22:49:20 -07:00
shockrah
c45f8d0482 More db-lib ok/err wrapping
Some misc changes that don't really belong with anything else are bundled here
Those changes aren't actually very important however
2021-03-30 22:46:59 -07:00
shockrah
75dcb7b73e No more jwt db checks
Also wrapping relevant db code with ok/err checks
2021-03-30 22:45:39 -07:00
shockrah
41202507c1 removing warning 2021-03-30 22:44:09 -07:00
shockrah
4cbbfdd7a2 mysql_async updates
* More shorthand usage for clearer code in invite create
2021-03-30 22:43:07 -07:00
shockrah
54f4dd53be - Removing non-result returns
+ Updating further for newest version of mysql_async
2021-03-30 22:42:34 -07:00
shockrah
fea94bffa0 Removing features flag from db-lib as its not needed 2021-03-30 21:41:57 -07:00
shockrah
15b56353b8 Removing passthrough for message send handler
This means we get more opaque errors for the clients but it also results in way less code to maintain
2021-03-30 21:39:44 -07:00
shockrah
d88948385d Upgrading mysql_async to latest version
This version comes with the benefit of having much more concise exec_map functionality among other things

This commit and the following ones also move db-lib to using a more 'try' based approach
2021-03-30 21:38:16 -07:00
shockrah
f7d90e4a09 - Removal of auth code in db-lib 2021-03-30 21:36:21 -07:00
shockrah
8eec9abd74 + More dev files 2021-03-30 12:25:34 -07:00
shockrah
56e4e22b4c + JWT Authentication
* Server JWT's and Client JWT's built with seperate signature types
2021-03-30 12:24:10 -07:00
shockrah
5bbc57313f + Json-API now pushes proper new-message event to rtc server correctly
+ Rtc server takes in new-message correctly but with basically no ux/auth for now
This should be fine as we can layer on security afterwards with no issue
2021-03-25 20:46:10 -07:00
shockrah
291505201b removng fluff and adding link to repo 2021-03-24 15:19:43 -07:00
shockrah
52fab01119 + Clearer logging from the json api
* Renamed db helper function to be (debatably) more clear in its intentions
	That function and everything in that module is quickly become awful however

+ Adding some notes for later db-lib development
2021-03-24 01:43:52 -07:00
shockrah
a1f86fdf6e * Moving away from auto_increment
! Initial id size will stay as u64 but u128 are easily the next major change
This change shouldn't break clients written in high level languages since most already use 128's under the hood anyway
- This commit also removes the auto_increment flag from basically everything that uses RNG id's
2021-03-24 01:14:37 -07:00
shockrah
d02084a22c + Adding proper file upload support
! Requirements for variable message fetching not yet met
! /message/get?id=<id> needs a way of passing back file contents
! The file upload is sketchy at best and not necessarily guaranteed to sync the
database with the file system
2021-03-23 17:16:05 -07:00
shockrah
92dc4d888f meta tags and favicon 2021-03-22 22:39:51 -07:00
shockrah
185b64d9db Base version of the rtc server
Authorization is required for implementation
So is a proper messaging model to make implementation clean and scalable
For now this serves as a good starting point for the rest of this project
2021-03-22 02:45:54 -07:00
shockrah
3ee22ff932 - Removed remaining mentions of joindate 2021-03-20 22:54:00 -07:00
shockrah
975acfd606 Backend REST API changes:
* Fixed weird match with get_online_members
+ Now using special(smoll) Public Member struct for public member data fetches as.
They're size on networks should be pretty small so we can package a ton of them in a single request

DOCS changes:
- Removing references to unix timestamps in seconds
- Removing references to joindate
* Exact content-type values now specified
2021-03-20 22:44:22 -07:00
shockrah
03c41b6833 - Removed joindate from members schema
+ Auth module now uses std::time for time based calculations
! All time notations are i64 and rounded to the Millisecond

* Moving db pool to a lazy static to avoid constructing a whole pool on every request

+ Adding more logging per request, even if its lazy logging
* Content-Types are now correctly written per type
2021-03-20 19:47:59 -07:00
shockrah
8812ff7198 + text/plain Message sending works now
+ More skeleton code for the caching system

! Ready for rtc on text based message listening which is where heavy caching comes into play
2021-03-20 19:35:38 -07:00
shockrah
530d287431 Merge branch 'master' of gitlab.com:shockrah/freechat 2021-03-20 15:00:58 -07:00
shockrah
939042a4c5 skeleton code ready to start pluggin in async fetch calls to remote servers
Some model still has to be built to put RTC somewhere
Also stdout still requires async handling
2021-03-20 15:00:49 -07:00
shockrah
988aa9f155 Removal of chrono and async_trait as dependancy in db-lib
Removig chrono from api code as well

Removing chrono as dep in api code
+ Using Content-Type for /message/send content type

Updating cargo lists for removal of fluff deps

Removal of more fluff

Addking makefile to avoid compiling debug builds by accident while developing
2021-03-20 14:59:06 -07:00
shockrah
ba14600b34 Removal of chrono and async_trait as dependancy in db-lib
Removig chrono from api code as well
2021-03-20 13:56:02 -07:00
shockrah
cb5975f235 FULL REWORK AND PORT TO TERMION
This patch is simply meant to mark the beginning of the newest phase for the tui build.
I've 100% settled on using termion as the backend and marking what is done so far

Renderer side:
	Termion has a similar issue where moving data happens very quietly so its best
	if the two (renderer and cache) have the their data to use as they please

Cache Side:
	Basically we own the data we're using because we constantly have to mutate data
	ourselves

Config in the middle:
	Mutable but only from the rendering side because the cache is completely transient
	It technically to own its data but it does anyway because the render(backend)
	 likes to consume data like there's no tomorrow
2021-03-17 20:39:42 -07:00
shockrah
c3d5c75cc0 messages rebind now work properly and sends message correctly,
Message constructor no longer incorrectly check message type
2021-03-12 23:16:06 -08:00
shockrah
c667f69d0e Fixing busted config adder thingy 2021-03-12 21:36:44 -08:00
shockrah
67575cda53 adding tsc to make build 2021-03-12 02:20:33 -08:00
shockrah
5b2e92da06 Caching is still being designed but it _will_ be written in typescript to a more well docc'ed api for everything else
+ Basically im doing this to straight up abuse
- Moving cache types + methods to their own module
2021-03-12 02:20:00 -08:00
shockrah
9ce04e96a7 Query string parameter 'type' is now enforced by the api
+ Flag is literally called 'type'
2021-03-12 02:17:06 -08:00
shockrah
dc117ba02f Moving message type to types.ts 2021-03-11 17:22:22 -08:00
shockrah
d620d3cc61 New types module written with typescript to slowly start migrating code over to typescript
The main reason for this change is for writing more descriptive code
Such a change isn't impossible with JS but requires annoying doccing that  most dev environments don't really pick up on ever

Also the cache system is goingto be much more complex than anything else in this project so static compilation should help remove annoyances
2021-03-11 17:22:05 -08:00
shockrah
049e8aea82 Misc fixes
- I've no idea how to describe these but they're really not that important
2021-03-11 17:20:13 -08:00
shockrah
e4f6e71ac8 ! Fixing message box to look decent
- Moving Initialization code into src/init.js
2021-03-11 17:18:26 -08:00
shockrah
b5822cd3f1 Moving as much auth/initialization logic out of index.html
 New local push function in auth for push server buttons onto the dom
2021-03-09 15:36:55 -08:00
shockrah
911edd8114 Supporting content_type flag in messages properly now 2021-03-09 00:11:34 -08:00
shockrah
2fa1ec6f34 Async rewrite of entire module !
 Channels list now fully asynchronous
 html pusher is now its own function for cleanness
 New ANY_CHANNEL integer is supported by the backend for requesting all channels in one go instead of voice|text
 Removed more callback hell code
 JSDocs updated to reflect their respective function signatures
2021-03-09 00:10:59 -08:00
shockrah
7fede3b4e1 New css making channel buttons not ugly as hell
 Moving channels.list behind async call
 Moved server-name to top of dom to reduce clutter(i think)
2021-03-09 00:07:41 -08:00
shockrah
ddb08818b1 Updating schemas to support content_type 2021-03-09 00:03:12 -08:00
shockrah
ae675d000b content_type now a supported column in db-lib
 API layer now behaves as expected, returning 'content_type' flag with each message
2021-03-09 00:02:20 -08:00
shockrah
d8244388c2 Removing myself from callback hell slowly but surely
 Removing ipc calls reducing chance to shrek the drive
2021-03-08 19:53:14 -08:00
shockrah
ef0bc70f90 Complexity in auth.login by basically cutting it in half and throwing the bad half out
 auth.init is now the more complex site since it literally has 1 chance to fire
2021-03-08 19:51:57 -08:00
shockrah
c4e3fa72ce More comprehensive example user config
 Moving main.js to use more async code and make things a bit more homogeneous
2021-03-08 19:50:01 -08:00
shockrah
7125fc954d SERVER_PROTOCOL is now an official env variable for the json-api to read 2021-03-07 23:55:38 -08:00
shockrah
f14390f4bb Callback settings.add_server_to_config now in effect for people that don't want to fuck with config files 2021-03-07 23:54:57 -08:00