Commit Graph

84 Commits

Author SHA1 Message Date
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
Maxime Delporte
8cdf3c7ada Adding 'github.com/lib/pq' library to use our PostgreSQL database. Updating our main.go file to establish a connection with the database pool.
All checks were successful
Deploy Greenlight API / deploy (push) Successful in 53s
2025-10-28 17:02:36 +01:00
Maxime Delporte
84741de60e Adding 'Optimizing PostgreSQL settings' sub-section.
All checks were successful
Deploy Greenlight API / deploy (push) Successful in 54s
2025-10-28 16:29:42 +01:00
Maxime Delporte
13d670c9a5 Adding .gitignore to prevent useless or private files to be pushed.
All checks were successful
Deploy Greenlight API / deploy (push) Successful in 1m14s
2025-10-28 16:03:45 +01:00
Maxime Delporte
6ef731573b Exporting the validation from cmd/api/movies.go to internal/data/movies.go by creating the ValidateMovie method. Updating createMovieHandler to use our new ValidateMovie method.
All checks were successful
Deploy Greenlight API / deploy (push) Successful in 55s
2025-10-28 12:07:04 +01:00
Maxime Delporte
e5ddfa120f Creating validator.go allowing us to validate received data from our endpoints. Updating errors.go adding failedValidationResponse method allowing us to deliver a StatusUnprocessableEntity error. Updating createMovieHandler with the use of our new validator package.
All checks were successful
Deploy Greenlight API / deploy (push) Successful in 53s
2025-10-28 11:04:18 +01:00
Maxime Delporte
040ace30ad Updating createMovieHandler accepting data.Runtime for the Runtime field. Updating internal/data/runtime.go with the json.Unmarshaler interface to transform our client's runtime string field '%d mins' into a Runtime type format.
All checks were successful
Deploy Greenlight API / deploy (push) Successful in 58s
2025-10-27 20:03:52 +01:00
Maxime Delporte
599ab6b3c6 Prevent client to send more than one JSON's object. Prevent client to send unknown fields. Prevent client to send more than 1MB of data per endpoint, preventing DDOS attacks. 2025-10-27 19:45:37 +01:00
Maxime Delporte
c3fdb40ae4 Adding more context for invalidUnmarshalError management inside readJSON function. Updating 'Panicking vs returning errors' section.
All checks were successful
Deploy Greenlight API / deploy (push) Successful in 54s
2025-10-25 09:57:41 +02:00
Maxime Delporte
6d09a4f545 Adding 'Panicking vs returning errors' section
All checks were successful
Deploy Greenlight API / deploy (push) Successful in 55s
2025-10-25 09:52:57 +02:00
Maxime Delporte
906bd868f9 Creating badRequestResponse helper method inside errors.go and use in in the createMovieHandler.
All checks were successful
Deploy Greenlight API / deploy (push) Successful in 53s
2025-10-24 18:55:05 +02:00
Maxime Delporte
12e1c7a523 Updating createMovieHandler using helper's readJSON method.
All checks were successful
Deploy Greenlight API / deploy (push) Successful in 52s
2025-10-24 14:47:20 +02:00
Maxime Delporte
c6baa807e4 Creating readJSON method to manage errors that can happen once.
All checks were successful
Deploy Greenlight API / deploy (push) Successful in 54s
2025-10-24 14:27:46 +02:00
Maxime Delporte
b3502631c2 Creating 'Supported destinations types' and 'Triaging the Decode error' sections.
Some checks are pending
Deploy Greenlight API / deploy (push) Has started running
2025-10-24 14:27:06 +02:00
Maxime Delporte
d650691b08 Updating createMovieHandler decoding received data from client.
All checks were successful
Deploy Greenlight API / deploy (push) Successful in 58s
2025-10-24 14:02:36 +02:00
Maxime Delporte
e30eac9c4d Updating README.md adding 'System-generated error responses' and 'Panic recovery in other goroutines' sections.
All checks were successful
Deploy Greenlight API / deploy (push) Successful in 59s
2025-10-23 17:16:25 +02:00
Maxime Delporte
7057f89038 Creating recoverPanic method inside our middleware.go file and use it inside routes.go wrapping our router.
All checks were successful
Deploy Greenlight API / deploy (push) Successful in 59s
2025-10-23 14:19:53 +02:00
Maxime Delporte
2124f2f882 Using the new error's helper methods inside our current API endpoint and with our httprouter Handlers NotFound and MethodNotAllowed (will override the default responses with our helper's methods)
All checks were successful
Deploy Greenlight API / deploy (push) Successful in 52s
2025-10-21 19:02:42 +02:00