Commit Graph

108 Commits

Author SHA1 Message Date
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
Maxime Delporte
0f7515e198 Removing string json's parameter from Runtime variable inside Movie's struct. Creating errors.go handling different json's error for our API.
All checks were successful
Deploy Greenlight API / deploy (push) Successful in 54s
2025-10-21 18:55:45 +02:00
Maxime Delporte
bc21c4cf87 Use Runtime type instead of int32 in our Movie struct.
All checks were successful
Deploy Greenlight API / deploy (push) Successful in 54s
2025-10-21 16:29:11 +02:00
Maxime Delporte
cc588a1dc0 Adding 'Advanced JSON Customization' section in the README.md. Creating a runtime type (internal/data/runtime.go) to show how we can customize a JSON field.
All checks were successful
Deploy Greenlight API / deploy (push) Successful in 56s
2025-10-21 16:26:06 +02:00
Maxime Delporte
e7944c3117 Fixing CI.
All checks were successful
Deploy Greenlight API / deploy (push) Successful in 53s
2025-10-20 18:28:35 +02:00
Maxime Delporte
b253d7ada3 Fixing CI.
Some checks failed
Deploy Greenlight API / deploy (push) Has been cancelled
2025-10-20 15:57:18 +02:00
Maxime Delporte
85cb67de34 Fixing CI
Some checks failed
Deploy Greenlight API / deploy (push) Failing after 51s
2025-10-20 15:54:37 +02:00
Maxime Delporte
5d93100758 Fixing CI
Some checks failed
Deploy Greenlight API / deploy (push) Failing after 52s
2025-10-20 15:49:55 +02:00
Maxime Delporte
221d2c45df Fixing CI
Some checks failed
Deploy Greenlight API / deploy (push) Failing after 52s
2025-10-20 15:47:30 +02:00
Maxime Delporte
67656bdcc9 Fixing CI
Some checks failed
Deploy Greenlight API / deploy (push) Failing after 52s
2025-10-20 15:45:23 +02:00
Maxime Delporte
c17f0d6909 Fixing CI
Some checks failed
Deploy Greenlight API / deploy (push) Failing after 1m8s
2025-10-20 15:35:16 +02:00
Maxime Delporte
c7828fe5d7 Fixing CI.
Some checks failed
Deploy Greenlight API / deploy (push) Has been cancelled
2025-10-20 15:33:53 +02:00
Maxime Delporte
f282e7943a Fixing CI.
Some checks failed
Deploy Greenlight API / deploy (push) Failing after 5m20s
2025-10-20 15:27:48 +02:00
Maxime Delporte
650c7fa894 Fixing CI.
Some checks failed
Deploy Greenlight API / deploy (push) Failing after 5m16s
2025-10-20 14:49:28 +02:00
Maxime Delporte
d482d5afb7 Fixing CI.
Some checks failed
Deploy Greenlight API / deploy (push) Failing after 7m23s
2025-10-20 14:40:21 +02:00
Maxime Delporte
0df71deae7 Creating deploy.yml for CI/CD.
Some checks failed
Deploy Greenlight API / deploy (push) Has been cancelled
2025-10-20 14:35:05 +02:00
Maxime Delporte
5ca50c6566 Fixing typo. 2025-10-19 18:08:58 +02:00
Maxime Delporte
43612c90e0 Updating README typo. 2025-10-19 11:50:17 +02:00
Maxime Delporte
d2e38e75ac Updating README typo. 2025-10-19 11:49:51 +02:00
Maxime Delporte
1927c64047 Creating an envelope struct type inside our helpers file to update our writeJSON data type method's parameter. Updating healthcheckHandler and showMovieHandler with this new type to update our responses. 2025-10-19 11:47:25 +02:00
Maxime Delporte
d7ccef3713 Updating writeJSON helper method replacing json.Marshal() by json.MarshalIndent() method to improve responses readability. Updating README adding Performance sub-section. 2025-10-19 11:34:42 +02:00
Maxime Delporte
9a0cb4db10 Creating Movie struct inside internal/data/movies.go to be used in cmd/api/movies.go. Updating the showMovieHandler with the Movie struct. 2025-10-19 11:03:04 +02:00
Maxime Delporte
1b886109be Updating README.md with Additional Information section. 2025-10-12 20:34:59 +02:00
Maxime Delporte
cb3691ce04 Creating writeJSON method inside helpers.go file. Using writeJSON helper inside healthcheckHandler. 2025-10-11 21:15:50 +02:00
Maxime Delporte
0db52ad9de Updating healthcheckHandler using json.Marshal method instead of raw json string. 2025-10-11 11:31:58 +02:00
Maxime Delporte
4f531c6fe0 Updating healthcheckHandler with JSON response. 2025-10-11 11:22:59 +02:00
Maxime Delporte
5b6f33c3f0 Creating helpers.go file : allowing us to extract readIDParam method for further use. Updating showMovieHandler with the new method. 2025-10-10 20:50:32 +02:00