Maxime Delporte
|
8954318e40
|
Adding godotenv library to use our .env file for the smtp configuration. Updating main.go adding our logger first, load our .env file, retrieve values to initialize the mail application's struct. Updating registerUserHandler sending the user_welcome.tmpl email.
Deploy Greenlight API / deploy (push) Failing after 15m11s
|
2025-11-30 17:22:32 +01:00 |
|
Maxime Delporte
|
68e606976f
|
Adding go-mail package instead of using internal go package. Defining a mailer package to send our emails.
|
2025-11-30 17:02:48 +01:00 |
|
Maxime Delporte
|
72503a55ff
|
Creating registerUserHandler and registering the endpoint in our routes.go
Deploy Greenlight API / deploy (push) Successful in 1m34s
|
2025-11-25 15:54:43 +01:00 |
|
Maxime Delporte
|
2bd0ae90bc
|
Adding Insert(), GetByEmail(), Update() UserModel's methods.
Deploy Greenlight API / deploy (push) Failing after 51s
|
2025-11-25 13:44:54 +01:00 |
|
Maxime Delporte
|
5a4b7bceb0
|
Adding crypto package to hash user's password on our User Model. Create our User Model with some helpers. Creating migration for our users table.
Deploy Greenlight API / deploy (push) Failing after 49s
|
2025-11-25 11:35:24 +01:00 |
|
Maxime Delporte
|
6b4056e0f5
|
Handling graceful shutdown.
Deploy Greenlight API / deploy (push) Successful in 1m21s
|
2025-11-23 16:59:02 +01:00 |
|
Maxime Delporte
|
b04086f9da
|
Adding goroutine to intercept SIGINT and SIGTERM signals to properly shutdown the app.
|
2025-11-23 16:00:58 +01:00 |
|
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Deploy Greenlight API / deploy (push) Successful in 1m16s
|
2025-11-03 17:39:46 +01:00 |
|
Maxime Delporte
|
a5025cd98e
|
Updating CI.
Deploy Greenlight API / deploy (push) Successful in 55s
|
2025-10-31 12:12:57 +01:00 |
|
Maxime Delporte
|
72508f9bdb
|
Fix typo.
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.
Deploy Greenlight API / deploy (push) Successful in 55s
|
2025-10-31 12:05:53 +01:00 |
|
Maxime Delporte
|
80800b214c
|
Updating CI.
Deploy Greenlight API / deploy (push) Successful in 54s
|
2025-10-31 10:49:50 +01:00 |
|
Maxime Delporte
|
ab17b9f8f1
|
Updating CI.
Deploy Greenlight API / deploy (push) Failing after 41s
|
2025-10-31 10:48:34 +01:00 |
|
Maxime Delporte
|
8f047f2b4a
|
Updating CI.
Deploy Greenlight API / deploy (push) Failing after 40s
|
2025-10-31 10:46:18 +01:00 |
|
Maxime Delporte
|
17a69b32be
|
Updating CI.
Deploy Greenlight API / deploy (push) Failing after 38s
|
2025-10-31 10:42:17 +01:00 |
|
Maxime Delporte
|
eb0a0bb221
|
Updating CI.
Deploy Greenlight API / deploy (push) Failing after 38s
|
2025-10-31 10:40:08 +01:00 |
|