Commit Graph

101 Commits

Author SHA1 Message Date
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
Maxime Delporte
6e4b4c6ca4 Updating CI.
Some checks failed
Deploy Greenlight API / deploy (push) Failing after 38s
2025-10-30 15:35:21 +01:00
Maxime Delporte
dd259e608e Updating CI.
Some checks failed
Deploy Greenlight API / deploy (push) Failing after 38s
2025-10-30 15:33:57 +01:00
Maxime Delporte
93a328c0ef Updating CI.
Some checks failed
Deploy Greenlight API / deploy (push) Failing after 40s
2025-10-30 15:32:05 +01:00
Maxime Delporte
4c9d604733 Updating CI.
Some checks failed
Deploy Greenlight API / deploy (push) Failing after 43s
2025-10-30 15:28:29 +01:00
Maxime Delporte
6198a930ee Updating CI.
Some checks failed
Deploy Greenlight API / deploy (push) Failing after 39s
2025-10-30 15:27:11 +01:00
Maxime Delporte
f96baad6a8 Updating CI.
All checks were successful
Deploy Greenlight API / deploy (push) Successful in 54s
2025-10-30 15:22:42 +01:00
Maxime Delporte
641f430fd4 Creating migrations files to create movies table and add movies check constraints. Updating API version number. Updating README.md adding 'SQL Migrations' section. Updating deployment file to make migrations before building API. Adding some .idea files into .gitignore.
Some checks failed
Deploy Greenlight API / deploy (push) Failing after 40s
2025-10-30 15:16:20 +01:00
Maxime Delporte
f72ad2aa2f Updating README.md adding 'Configuring the Database Connection Pool'. Updating main.go configurating the database connection pool with maxOpenConns, maxIdleConns and maxIdleTime values. 2025-10-30 12:13:55 +01:00