Commit Graph

413 Commits

Author SHA1 Message Date
jaina heartles 856619b286 Finish using middleware impl 2022-11-26 17:52:30 -08:00
jaina heartles 9c5e46ec5a Fix middleware compilation??? 2022-11-26 17:33:46 -08:00
jaina heartles 04a95a280b use new middleware system 2022-11-25 17:43:30 -08:00
jaina heartles 43ddc7534b debugging changes for middleware 2022-11-25 17:43:16 -08:00
jaina heartles a28af9e1fe Move json and query helpers 2022-11-25 17:42:58 -08:00
jaina heartles 039377f168 Add router helper fn 2022-11-24 03:55:47 -08:00
jaina heartles 503ab62607 Get api source from context 2022-11-24 03:50:25 -08:00
jaina heartles 051217cdaf Use middlewares in controller endpoint helper 2022-11-24 03:31:24 -08:00
jaina heartles 03338da307 Update server.zig to use new handlers 2022-11-24 03:30:49 -08:00
jaina heartles 73f7022d36 Start work on middleware api 2022-11-23 20:51:30 -08:00
jaina heartles f457b7a0d6 Add drive files to db 2022-11-21 03:58:54 -08:00
jaina heartles 14c75e0659 Add build flags for sqlite/postgres support 2022-11-21 02:18:46 -08:00
jaina heartles 3544222065 Percent encode/decode header values 2022-11-21 00:54:03 -08:00
jaina heartles e1c0d2942c Customize allocation strategy per endpoint 2022-11-20 15:42:34 -08:00
jaina heartles 252c12403a Add unfollow endpoint 2022-11-19 03:33:35 -08:00
jaina heartles 4e85c0225b Sample Cluster admin page 2022-11-19 03:13:05 -08:00
jaina heartles 1b379513f7 ugly fucking global timeline endpoint 2022-11-18 04:07:58 -08:00
jaina heartles 6748f065ef Move api calls to /api/v0 subpath 2022-11-18 03:43:41 -08:00
jaina heartles 37ee6f9593 Remove redundant content-type header 2022-11-18 03:37:54 -08:00
jaina heartles ea837f78bd Change error name on invalid cookie 2022-11-18 03:37:42 -08:00
jaina heartles fdf0a84593 Fix whitespace stripping after control blocks 2022-11-18 03:32:30 -08:00
jaina heartles 229acd6d3b Refactor template code 2022-11-18 03:24:25 -08:00
jaina heartles 802e6402bf Token -> ControlToken 2022-11-18 02:05:13 -08:00
jaina heartles 1340862c28 Add It param to ParseResult 2022-11-18 02:02:24 -08:00
jaina heartles 52bb8739f8 Rename statement -> ControlBlock 2022-11-18 02:00:26 -08:00
jaina heartles 1a7db9a834 Split expression/statements in parser 2022-11-18 01:58:13 -08:00
jaina heartles 58adc38945 Parse whitespace stripping chars 2022-11-18 00:09:10 -08:00
jaina heartles 22277beffc Add fields for whitespace stripping 2022-11-17 23:52:07 -08:00
jaina heartles c9af99d08f Add if statements to templating engine 2022-11-17 23:39:32 -08:00
jaina heartles 5bb9742ab9 Change syntax for end_for statement 2022-11-17 23:23:02 -08:00
jaina heartles 67ad5bfa48 Get token from cookie 2022-11-17 22:51:51 -08:00
jaina heartles b68dcc8fbf Add new pages 2022-11-17 20:12:49 -08:00
jaina heartles 0e034a2064 Fix double free 2022-11-17 20:11:23 -08:00
jaina heartles f33b4a856f Template helpers 2022-11-17 20:11:04 -08:00
jaina heartles 58a0dd900f Fix print call 2022-11-17 19:48:25 -08:00
jaina heartles fcbb1bb623 Use read instead of recv on socket 2022-11-17 19:48:07 -08:00
jaina heartles dac9d7c05d Support cookies 2022-11-17 19:39:24 -08:00
jaina heartles 6accb775d4 Cleanup of networking code 2022-11-17 18:42:23 -08:00
jaina heartles 58a81d74ec Use send() syscall instead of write() 2022-11-16 21:11:51 -08:00
jaina heartles 432a11dbc9 Use templating system 2022-11-16 19:55:38 -08:00
jaina heartles 305c5f8c92 Support for nested structs in sql layer 2022-11-16 02:23:14 -08:00
jaina heartles e4a04b869e refactor 2022-11-16 00:33:06 -08:00
jaina heartles c9d0090ab2 Add loop captures to capture struct 2022-11-16 00:18:14 -08:00
jaina heartles 61493dc797 Combine Expressions and statements 2022-11-16 00:06:53 -08:00
jaina heartles 8ebe77541f Add capture syntax 2022-11-16 00:01:45 -08:00
jaina heartles 9d74bce266 Add loop captures 2022-11-15 23:53:29 -08:00
jaina heartles dcf777f5ea Iterate over for loop 2022-11-15 23:39:36 -08:00
jaina heartles 934296b384 Parse for loop 2022-11-15 23:16:46 -08:00
jaina heartles efb50a325b Further split parsing and execution 2022-11-15 22:35:27 -08:00
jaina heartles d24957b7a0 Create ParseResult 2022-11-15 22:11:16 -08:00
jaina heartles 7191ad8f27 Split up template parsing and execution 2022-11-15 22:07:45 -08:00
jaina heartles 3b03764be7 Start work on template package 2022-11-15 19:11:29 -08:00
jaina heartles 861c31c3ad Allow passing params by application/x-www-form-urlencoded 2022-11-15 01:03:47 -08:00
jaina heartles a15baaf2e7 Decode query string chars 2022-11-15 01:03:25 -08:00
jaina heartles db1bd0f7c7 Remove Body param
Yeah I just misunderstood something in the HTML spec whoops
2022-11-15 00:56:30 -08:00
jaina heartles 0b04ad5e00 Support for 'Data' field in controllers 2022-11-14 23:49:23 -08:00
jaina heartles 85f57df0cb Controller helper refactor 2022-11-14 23:22:40 -08:00
jaina heartles 76b9018297 Add basic webpage 2022-11-14 21:38:08 -08:00
jaina heartles 721bf7e61a Rename follower/followee 2022-11-14 20:25:59 -08:00
jaina heartles 81c705d519 Home timeline endpoint 2022-11-14 15:00:01 -08:00
jaina heartles 763327292a Following/follower endpoints 2022-11-14 01:03:11 -08:00
jaina heartles 568c6cd6b6 Combine pagination code 2022-11-14 00:25:52 -08:00
jaina heartles c49f1487a7 Add list followers api calls 2022-11-14 00:14:29 -08:00
jaina heartles ebf8b34e15 Add follow table 2022-11-13 23:56:58 -08:00
jaina heartles 4773a86313 Add args to timeline controller 2022-11-13 23:00:20 -08:00
jaina heartles 4e81441a0d Move query format helpers into common code 2022-11-13 21:57:32 -08:00
jaina heartles bfd73b7a1f Add union support to query parser 2022-11-13 20:40:13 -08:00
jaina heartles 8694516180 Add local timeline 2022-11-12 05:23:55 -08:00
jaina heartles 5630c6160f Rename prep_allocator 2022-11-12 05:08:01 -08:00
jaina heartles 139fc92854 Add queryRowsWithOptions method to db helper 2022-11-12 05:04:33 -08:00
jaina heartles 83da3c914b Basic global timeline 2022-11-12 04:39:49 -08:00
jaina heartles 7d13b2546b Fixes for stage1 compiler 2022-11-10 01:53:09 -08:00
jaina heartles 181e57a631 Make inline for loops compatible with stage1 2022-11-09 16:49:42 -08:00
jaina heartles cfdc8c5761 Remove debug logging 2022-11-09 16:49:26 -08:00
jaina heartles cbf98c1cf3 Fix chunked transfer encoding 2022-11-07 00:25:33 -08:00
jaina heartles d2151ae326 Switch to ArrayHashMap 2022-11-06 23:59:35 -08:00
jaina heartles 2d464f0820 Chunked transfer encoding 2022-11-06 23:38:21 -08:00
jaina heartles 438c72b7e9 Make request generic based on reader 2022-11-05 03:09:59 -07:00
jaina heartles b46e82746c Parse list-based headers 2022-11-05 01:54:00 -07:00
jaina heartles 4cb574bc91 Clean up header handling 2022-11-05 00:26:53 -07:00
jaina heartles 5d94f6874d Fixes for zig 0.10.0 2022-11-03 23:26:50 -07:00
jaina heartles 1ba1b18c39 Move query helpers into common code 2022-10-16 14:46:01 -07:00
jaina heartles e90d9daf77 Serve on ipv6 by default 2022-10-16 05:48:36 -07:00
jaina heartles e4cbb0acc3 Add basic websocket support 2022-10-16 05:48:12 -07:00
jaina heartles cb2f97a28f Add multithreading 2022-10-13 21:05:52 -07:00
jaina heartles 0ce315368a Minor HTTP refactor 2022-10-13 02:23:57 -07:00
jaina heartles 159f1c28cc Add sql connection pool 2022-10-12 23:19:59 -07:00
jaina heartles 23da0c6857 Get integration tests working 2022-10-11 22:48:08 -07:00
jaina heartles b2c87dd207 account + local_account -> actor + account 2022-10-11 20:06:29 -07:00
jaina heartles d852a3d153 Fix string concatenation 2022-10-11 19:28:36 -07:00
jaina heartles 46e71d8b44 Provide page links in communities query 2022-10-11 19:19:34 -07:00
jaina heartles 37e0192c4f Return next set of query arguments 2022-10-10 22:19:58 -07:00
jaina heartles 195b201564 Add support for Community query 2022-10-10 21:49:36 -07:00
jaina heartles add17c0a0a Use new controller layout 2022-10-10 20:28:23 -07:00
jaina heartles 228b9490ef Start re-adding controllers 2022-10-09 19:31:15 -07:00
jaina heartles 83ee7efba0 Controller refactor 2022-10-09 19:06:11 -07:00
jaina heartles 2aa9569050 controllers refactor 2022-10-09 02:05:01 -07:00
jaina heartles 581159963f Move api to package 2022-10-08 13:47:54 -07:00
jaina heartles 1aec8031e6 Preliminary support for query parameters 2022-10-08 00:51:57 -07:00
jaina heartles 0e7484543e Some refactoring 2022-10-08 00:51:22 -07:00
jaina heartles b12b9c766f Making the api work again 2022-10-03 23:38:26 -07:00
jaina heartles 69a51a7d7f Take community id's instead of hosts 2022-10-03 22:57:09 -07:00
jaina heartles d6cf778053 Move registration to auth 2022-10-03 22:50:09 -07:00
jaina heartles 753ae2729e Add nested transaction logic 2022-10-03 22:42:22 -07:00
jaina heartles 955df7b044 refactor 2022-10-03 19:41:59 -07:00
jaina heartles 4b5d11b00a More refactoring 2022-10-01 22:18:24 -07:00
jaina heartles c6d80fd4d3 Sql refactor 2022-10-01 02:05:33 -07:00
jaina heartles c42039c559 Refactoring 2022-09-29 14:52:01 -07:00
jaina heartles 33d1834f19 SQL Refactor 2022-09-25 01:10:30 -07:00
jaina heartles 33cf0ff87a Move to new DB api 2022-09-14 18:12:07 -07:00
jaina heartles db225b6689 Create helper utils in sql pkg 2022-09-11 04:38:46 -07:00
jaina heartles e94e4384bb Add postgres support in db package 2022-09-11 01:55:20 -07:00
jaina heartles c8641247fe Add utility alloc/clone functions 2022-09-10 15:29:22 -07:00
jaina heartles 994c9e8cf2 Add Url type 2022-09-10 15:29:08 -07:00
jaina heartles 0a42274b27 Build paginated query 2022-09-09 21:02:51 -07:00
jaina heartles 8763132d35 Create integration test 2022-09-08 22:01:57 -07:00
jaina heartles 6e2754225f Playing with tests in build.zig 2022-09-08 01:50:10 -07:00
jaina heartles ca123c1cc0 Notes 2022-09-08 00:52:23 -07:00
jaina heartles 8222d651ad Make email parameter optional 2022-09-08 00:06:55 -07:00
jaina heartles e0fd7097eb User creation 2022-09-07 23:56:29 -07:00
jaina heartles a28f9fd38c Invites 2022-09-07 22:10:58 -07:00
jaina heartles 075b922ef5 Mvoing controllers around 2022-09-07 19:19:46 -07:00
jaina heartles 99337b6429 Remove dead code 2022-09-07 19:01:24 -07:00
jaina heartles 91c116a303 Narrowing down error sets 2022-09-07 18:55:55 -07:00
jaina heartles ab96b3b734 messing w/ stuff 2022-09-07 16:14:52 -07:00
jaina heartles 913a84c4fa Add login verification endpoint 2022-09-05 03:54:17 -07:00
jaina heartles 8ee663000d Create cluster community 2022-09-05 02:15:16 -07:00
jaina heartles 1d4b0a6e77 Use default admin user 2022-09-05 01:52:49 -07:00
jaina heartles e2381f1eaf Disable routes for now 2022-09-05 00:10:03 -07:00
jaina heartles 4bddb9f633 fucking around w/ db stuff 2022-09-05 00:07:46 -07:00
jaina heartles d694674585 Fixes for stage2 compiler 2022-07-13 07:42:30 -07:00
jaina heartles 84e62ffe38 Fully working query builder 2022-08-07 13:28:20 -07:00
jaina heartles b6a3b68cff Add query builder struct 2022-08-07 00:54:22 -07:00
jaina heartles ee4aa9e826 Construct QueryTables from model list 2022-08-03 22:08:32 -07:00
jaina heartles f28046bd79 Add QueryTable 2022-08-03 21:52:07 -07:00
jaina heartles 80ded57904 Add conditions to query builder 2022-08-03 21:32:59 -07:00
jaina heartles 4087345323 Read host header 2022-08-01 23:35:56 -07:00
jaina heartles 9c94cafe95 Log errors instead of panic 2022-08-01 23:24:16 -07:00
jaina heartles bdd2d48a87 Take community url as string 2022-08-01 22:21:03 -07:00
jaina heartles 6c15849882 Add communities 2022-08-01 21:33:23 -07:00
jaina heartles c31633cade refactor 2022-07-30 13:40:20 -07:00
jaina heartles c1f8b8f0e2 Track DB migrations 2022-07-30 00:26:35 -07:00
jaina heartles 40a2391942 Add config file 2022-07-29 23:14:42 -07:00
jaina heartles 99192bccdd Clean up db models 2022-07-29 22:52:00 -07:00
jaina heartles f6f24a557e Fix compile errors on latest zig 2022-07-27 20:13:25 -07:00
jaina heartles ae9a062caf Track invite uses and handle properly 2022-07-26 23:03:27 -07:00
jaina heartles 76f2b818ab Allow registration with invite 2022-07-26 22:30:52 -07:00
jaina heartles 01ef4427f5 Generate invite codes 2022-07-26 22:02:09 -07:00
jaina heartles a020199773 Refactor api calls 2022-07-25 19:07:05 -07:00
jaina heartles 47e157e31b Use threadlocal prng 2022-07-24 17:18:25 -07:00
jaina heartles a7b1361048 Verify incoming tokens 2022-07-24 17:04:44 -07:00
jaina heartles b05abf95ac Move models to db subdir 2022-07-24 02:01:17 -07:00
jaina heartles 7fc83b6e56 Issue tokens on login 2022-07-23 22:19:32 -07:00
jaina heartles 3e91d66565 Remove storage policy from sql lib 2022-07-23 21:29:38 -07:00
jaina heartles ada0eb71f5 Add sql support for blobs 2022-07-23 21:14:46 -07:00
jaina heartles ab61efc44a Add id and created_at fields to db models 2022-07-22 00:08:01 -07:00
jaina heartles dc8877eef3 Refactoring controllers 2022-07-21 23:53:05 -07:00
jaina heartles ee0db68c5e Split users into actors and localusers 2022-07-21 21:19:08 -07:00
jaina heartles a4f6fca675 Support optional types in sql 2022-07-21 21:18:43 -07:00
jaina heartles cc44bbf12b Better error messages 2022-07-21 21:18:20 -07:00
jaina heartles e6217d543d Basic password auth 2022-07-20 22:26:13 -07:00
jaina heartles 7b1e4030b0 Refactoring 2022-07-20 20:42:16 -07:00
jaina heartles 73662d675a Fully implement api free() 2022-07-19 02:22:19 -07:00
jaina heartles 718da7b408 Basic reacts 2022-07-19 00:07:01 -07:00
jaina heartles 07019cb090 Track creation time for notes 2022-07-18 00:37:10 -07:00
jaina heartles b1190ddea8 Add DateTime 2022-07-18 00:03:29 -07:00
jaina heartles f28f71c978 Remove dead code 2022-07-17 23:13:20 -07:00
jaina heartles 11d4a52b2d Collect author id from user context 2022-07-17 23:11:42 -07:00
jaina heartles 87903ca17b Create user contexts 2022-07-17 16:21:03 -07:00
jaina heartles 52003f5e4f Remove unused helpers 2022-07-16 12:31:36 -07:00
jaina heartles b80eba6fcf Check user handle is available 2022-07-16 12:30:47 -07:00
jaina heartles 1d6f7bfa08 Allow querying by other fields 2022-07-16 12:00:33 -07:00
jaina heartles 90d2dcd4c1 Remove references to memdb 2022-07-16 11:44:46 -07:00
jaina heartles 74fb8d2574 Use sql api for users 2022-07-16 11:41:09 -07:00
jaina heartles 40e7037444 Type-introspected insert 2022-07-15 22:29:08 -07:00
jaina heartles c9c5958849 Use type introspection in db wrapper 2022-07-15 21:33:01 -07:00
jaina heartles b82600e8cd Store notes in SQLite 2022-07-15 00:27:27 -07:00
jaina heartles 163811caa0 Basic sqlite adapter 2022-07-14 17:58:08 -07:00
jaina heartles caa599986d Reorganize controllers 2022-07-13 00:57:21 -07:00
jaina heartles 2092bbdffa Check users for duplicates 2022-07-12 22:35:39 -07:00
jaina heartles f5548c0243 Create Table abstraction 2022-07-12 22:08:18 -07:00
jaina heartles 16d093b4f7 Add users 2022-07-12 21:56:47 -07:00
jaina heartles b3c9c3b600 Move body parsing to new fn 2022-07-12 21:41:26 -07:00
jaina heartles d27c38330b Better error messages 2022-07-12 21:31:52 -07:00
jaina heartles 44cb7017b2 Make api return full note 2022-07-12 21:28:54 -07:00
jaina heartles 3f3e9e039e Add JSON stringification for UUIDs 2022-07-12 21:23:50 -07:00
jaina heartles ad6f1454a6 Use Uuids for id 2022-07-12 21:16:33 -07:00
jaina heartles 20af2c82c8 Use u128 as backing field for Uuid 2022-07-12 20:55:19 -07:00
jaina heartles ccf79febe4 Basic api server 2022-07-12 20:40:48 -07:00
jaina heartles 255a11bc8b Add createNote endpoint 2022-07-10 19:39:28 -07:00
jaina heartles d8f8a3ec89 Create putNote 2022-07-10 17:58:39 -07:00
jaina heartles b3a3a66068 Handle not found errors better 2022-07-10 17:52:28 -07:00
jaina heartles 470fa50bb1 Get ID from route 2022-07-10 17:40:17 -07:00
jaina heartles b738a02e16 Pass note ID to db 2022-07-10 17:14:32 -07:00
jaina heartles 5933e37f85 Retrieve note dynamically 2022-07-10 17:12:52 -07:00
jaina heartles 80c94711ae Add id 2022-07-10 17:10:15 -07:00
jaina heartles c130391186 Build Database connection 2022-07-10 17:07:15 -07:00
jaina heartles 9c2bd11526 Split out json printing code 2022-07-10 17:01:36 -07:00
jaina heartles 685dc13455 Another shot at db shit 2022-07-10 16:53:17 -07:00
jaina heartles 1bcbeb098e Log chosen route 2022-07-10 15:24:54 -07:00