Commit Graph

109 Commits

Author SHA1 Message Date
Maxime Delporte
78d9edf62b Moving starting server part into new server.go file. Using the new serve() function from this file into main.go 2025-11-23 15:54:32 +01:00
Maxime Delporte
f88edf082e Adding 'Sending Shutdown Signals' section.
All checks were successful
Deploy Greenlight API / deploy (push) Successful in 1m2s
2025-11-19 14:39:15 +01:00
Maxime Delporte
83bb7294db Configuring the Rate Limiters. 2025-11-18 20:10:55 +01:00
Maxime Delporte
7de9ef89b7 Adding 'Addictional Information for Rate Limiting' sub section. 2025-11-16 19:35:28 +01:00
Maxime Delporte
116cdb099f Updating rateLimit middleware with IP-based Rate Limiting 2025-11-16 10:48:55 +01:00
Maxime Delporte
5517aa29f9 Adding 'IP-based Rate Limiting' sub section. 2025-11-16 10:37:09 +01:00
Maxime Delporte
8b0c51123f Enforcing a global rate limit. 2025-11-16 10:36:36 +01:00
Maxime Delporte
e93375d441 Returning pagination metadata.
All checks were successful
Deploy Greenlight API / deploy (push) Successful in 2m48s
2025-11-15 16:51:13 +01:00
Maxime Delporte
28b25fed6e Returning empty array instead of null if we don't have any movies to return. 2025-11-15 16:37:08 +01:00
Maxime Delporte
6fc5e725e6 Paginating Lists 2025-11-15 16:34:40 +01:00
Maxime Delporte
fc2e401f6f Adding sorting lists.
All checks were successful
Deploy Greenlight API / deploy (push) Successful in 58s
2025-11-14 17:31:29 +01:00
Maxime Delporte
6b3a6ee4f5 Adding indexes migration. 2025-11-14 16:46:21 +01:00
Maxime Delporte
a17a49e814 Adding 'Indexes' sub section.
All checks were successful
Deploy Greenlight API / deploy (push) Successful in 1m25s
2025-11-13 18:57:24 +01:00
Maxime Delporte
0d1062d995 Adding full-text search. 2025-11-13 18:52:59 +01:00
Maxime Delporte
1b71a1a8ad Creating GetAll MovieModel method to retrieve all movies. Updating the listMovieHandler to use the new GetAll MovieModel's method.
All checks were successful
Deploy Greenlight API / deploy (push) Successful in 59s
2025-11-13 15:25:00 +01:00
Maxime Delporte
95d9de60b4 Adding ValidateFilters method in filters.go and use it in our listMoviesHandler 2025-11-12 11:09:57 +01:00
Maxime Delporte
bf7c53e565 Creating Filters struct and using it inside our listMoviesHandler 2025-11-11 10:47:25 +01:00
Maxime Delporte
041d302a79 Creating listMoviesHandler and adding /v1/movies GET endpoint to use it. 2025-11-11 10:43:34 +01:00
Maxime Delporte
b77d3adb55 Adding readString, readInt and readCSV helper functions 2025-11-11 10:29:15 +01:00
Maxime Delporte
0ba997475b Updating database model with 3-second timeout deadline for all our operations.
All checks were successful
Deploy Greenlight API / deploy (push) Successful in 58s
2025-11-10 17:00:06 +01:00
Maxime Delporte
5413312875 Adding a query timeout. 2025-11-10 16:45:42 +01:00
Maxime Delporte
fd3bca1226 Adding a check on the X-Expected-Version header field.
All checks were successful
Deploy Greenlight API / deploy (push) Successful in 1m0s
2025-11-10 10:21:14 +01:00
Maxime Delporte
f8f78c3eec Adding concurrency control in our updateMovieHandler and documenting it.
All checks were successful
Deploy Greenlight API / deploy (push) Successful in 57s
2025-11-08 10:41:44 +01:00
Maxime Delporte
b76496e096 Updating updateMovieHandler to be able to update only some fields (patch instead of put). Update routes with the correct verb.
All checks were successful
Deploy Greenlight API / deploy (push) Successful in 1m20s
2025-11-07 11:57:04 +01:00
Maxime Delporte
1270a3bda6 Updating MovieModel's Delete method from internal/data/movies.go file. Create the deleteMovieHandler function inside cmd/api/movies.go. Adding the route into routes.go to delete a movie. 2025-11-07 11:37:19 +01:00
Maxime Delporte
69651c58b7 Updating MovieModel's method from internal/data/movies.go file. Create the updateMovieHandler function inside cmd/api/movies.go. Adding the route into routes.go to update a movie. 2025-11-07 11:27:45 +01:00
Maxime Delporte
490c3174ca Adding 'Why not use an unsigned integer for the movie ID?' sub-section. 2025-11-07 11:06:35 +01:00
Maxime Delporte
0824a127b9 Updating internal/data/movies.go to Get a movie from the database. Updating cmd/api/movies.go showMovieHandler method to fetch a movie from a request (using the MovieModel's Get method). 2025-11-07 10:58:58 +01:00
Maxime Delporte
0653a46101 Adding ' notation' and 'Executing multiple statements' sub-sections. 2025-11-07 10:47:15 +01:00
Maxime Delporte
19a844ea2e Updating Insert MovieModel's method inserting a new record in the movies table. Updating createMovieHandler to use Insert MovieModel's method.
All checks were successful
Deploy Greenlight API / deploy (push) Successful in 1m0s
2025-11-06 17:10:33 +01:00
Maxime Delporte
1a658d3063 Updating movies.go with MovieModel: this struct is the gateway between our app and the database. Adding CRUD methods alongside for the Movie object. Creating models.go: this file holds a Models struct wrapping all of our Models. This way, we are able to use in our application struct in our main.go. 2025-11-06 10:41:12 +01:00
Maxime Delporte
0874a6aac4 Adding 'Remote migration files' sub-section. 2025-11-06 10:17:12 +01:00
Maxime Delporte
6997490335 Adding 'Fixing errors in SQL migrations' sub-section. 2025-11-06 10:14:02 +01:00
Maxime Delporte
ece88f7e71 Creating 'Migrating to a specific version' and 'Executing down migrations' sub sections.
All checks were successful
Deploy Greenlight API / deploy (push) Successful in 1m0s
2025-11-03 17:57:51 +01:00
Maxime Delporte
4b42c5edfc Updating 'Executing the migrations' sub-section.
All checks were successful
Deploy Greenlight API / deploy (push) Successful in 1m16s
2025-11-03 17:39:46 +01:00
Maxime Delporte
a5025cd98e Updating CI.
All checks were successful
Deploy Greenlight API / deploy (push) Successful in 55s
2025-10-31 12:12:57 +01:00
Maxime Delporte
72508f9bdb Fix typo.
All checks were successful
Deploy Greenlight API / deploy (push) Successful in 56s
2025-10-31 12:07:27 +01:00
Maxime Delporte
10ea699625 Adding 'Executing the migrations' subsection into README.md. Adding log messages on deploy.yml.
All checks were successful
Deploy Greenlight API / deploy (push) Successful in 55s
2025-10-31 12:05:53 +01:00
Maxime Delporte
80800b214c Updating CI.
All checks were successful
Deploy Greenlight API / deploy (push) Successful in 54s
2025-10-31 10:49:50 +01:00
Maxime Delporte
ab17b9f8f1 Updating CI.
Some checks failed
Deploy Greenlight API / deploy (push) Failing after 41s
2025-10-31 10:48:34 +01:00
Maxime Delporte
8f047f2b4a Updating CI.
Some checks failed
Deploy Greenlight API / deploy (push) Failing after 40s
2025-10-31 10:46:18 +01:00
Maxime Delporte
17a69b32be Updating CI.
Some checks failed
Deploy Greenlight API / deploy (push) Failing after 38s
2025-10-31 10:42:17 +01:00
Maxime Delporte
eb0a0bb221 Updating CI.
Some checks failed
Deploy Greenlight API / deploy (push) Failing after 38s
2025-10-31 10:40:08 +01:00
Maxime Delporte
3476d82ada Updating CI.
Some checks failed
Deploy Greenlight API / deploy (push) Failing after 39s
2025-10-31 10:35:33 +01:00
Maxime Delporte
9fdd6c117f Updating CI.
Some checks failed
Deploy Greenlight API / deploy (push) Failing after 38s
2025-10-31 10:33:07 +01:00
Maxime Delporte
1c7977fd73 Updating CI.
Some checks failed
Deploy Greenlight API / deploy (push) Failing after 39s
2025-10-31 10:30:30 +01:00
Maxime Delporte
42461ef8fb Updating CI.
Some checks failed
Deploy Greenlight API / deploy (push) Failing after 40s
2025-10-31 10:18:37 +01:00
Maxime Delporte
4f31716a22 Updating CI.
Some checks failed
Deploy Greenlight API / deploy (push) Failing after 40s
2025-10-31 10:17:20 +01:00
Maxime Delporte
0229af2932 Updating CI.
Some checks failed
Deploy Greenlight API / deploy (push) Failing after 41s
2025-10-31 10:14:05 +01:00
Maxime Delporte
e639e44d72 Updating CI.
Some checks failed
Deploy Greenlight API / deploy (push) Failing after 41s
2025-10-30 15:36:45 +01:00