Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
158 commits
Select commit Hold shift + click to select a range
b5fdff5
chore: add typescript support
DiegoSalas27 Aug 6, 2022
f6ed2d9
chore: add linting tools
DiegoSalas27 Aug 6, 2022
97cc227
chore: add prettier config file
DiegoSalas27 Aug 6, 2022
f5fd8c8
chore: add husky with linting pre commit hook
DiegoSalas27 Aug 6, 2022
5e26178
chore: add git hook for conventional commits support
DiegoSalas27 Aug 6, 2022
546c010
chore: add jest initial config
DiegoSalas27 Aug 6, 2022
7b0ba1c
feat: add coordinate model
DiegoSalas27 Aug 6, 2022
5cd89c0
refactor: add index files to simplify exports
DiegoSalas27 Aug 6, 2022
a9618c7
chore: add path lookups for module import simplification
DiegoSalas27 Aug 6, 2022
aa44dd2
refactor: add namespace to RetrieveCoodinates usecase to constraint d…
DiegoSalas27 Aug 6, 2022
662b4ed
feat: add DbRetrieveCoordinates usecase implementation
DiegoSalas27 Aug 6, 2022
53199ba
chore: update jest config to support module name mapping
DiegoSalas27 Aug 6, 2022
e13523e
feat: ensure DbRetrieveCoordinates calls RetrieveCoordinatesRepositor…
DiegoSalas27 Aug 6, 2022
fd73a0b
test: ensure DbRetrieveCoordinates calls RetrieveCoordinatesRepositor…
DiegoSalas27 Aug 6, 2022
5134e31
refactor: move sut creation to its own factory method
DiegoSalas27 Aug 6, 2022
2ab523e
test: ensure DbRetrieveCoordinates returns latitude and longitude coo…
DiegoSalas27 Aug 6, 2022
09c8c9b
test: ensure DbRetrieveCoordinates throws if RetrieveCoordinatesRepos…
DiegoSalas27 Aug 6, 2022
f0028aa
refactor: move RetrieveCoordinatesRepositorySpy to a mocks file
DiegoSalas27 Aug 6, 2022
289b5fc
refactor: simplifying modules exports
DiegoSalas27 Aug 6, 2022
7b21234
refactor: move throwError to is own helper method
DiegoSalas27 Aug 6, 2022
23f73d6
refactor: restructure http-clients folder
DiegoSalas27 Aug 6, 2022
ddd20fd
refactor: rename protocol RetrieveCoordinatesRepository to RetrieveCo…
DiegoSalas27 Aug 6, 2022
8bf221d
feat: add MapBoxHttpClientAdapter production class
DiegoSalas27 Aug 6, 2022
ff3f49c
feat: ensure MapBoxHttpClientAdapter calls fetch method with correct …
DiegoSalas27 Aug 6, 2022
ba55910
test: ensure MapBoxHttpClientAdapter calls fetch method with correct …
DiegoSalas27 Aug 6, 2022
f52f16c
feat: ensure MapBoxHttpClientAdapter returns latitude and longitude i…
DiegoSalas27 Aug 6, 2022
d39bf13
test: ensure MapBoxHttpClientAdapter returns latitude and longitude i…
DiegoSalas27 Aug 6, 2022
5f5764e
refactor: simplify module export
DiegoSalas27 Aug 6, 2022
2671813
feat: add BusinessError class for fine-grained error treatment
DiegoSalas27 Aug 6, 2022
2d2f432
chore: update eslint rules
DiegoSalas27 Aug 6, 2022
11df888
feat: add BadRequest error
DiegoSalas27 Aug 6, 2022
78b7be3
feat: ensure MapBoxHttpClientAdapter returns BadRequest error if give…
DiegoSalas27 Aug 6, 2022
2b20555
test: ensure MapBoxHttpClientAdapter returns BadRequest error if give…
DiegoSalas27 Aug 6, 2022
2d5b61f
refactor: return null instead of customized error
DiegoSalas27 Aug 6, 2022
715b2c7
chore: deleted unnecesary helper
DiegoSalas27 Aug 6, 2022
8c08c12
refactor: update mockImplementationOce when RetrieveCoordinatesReposi…
DiegoSalas27 Aug 6, 2022
bbd5b2b
test: ensure MapBoxHttpClientAdapter throws if fetch api throws
DiegoSalas27 Aug 6, 2022
b6e6ef6
feat: ensure DbRetrieveCoordinates throws BadRequestError if Retrieve…
DiegoSalas27 Aug 6, 2022
910d219
test: ensure DbRetrieveCoordinates throws BadRequestError if Retrieve…
DiegoSalas27 Aug 6, 2022
c18a601
chore: update commit-msg hook to support longer size comments
DiegoSalas27 Aug 6, 2022
756a2f8
feat: add protocols for controllers
DiegoSalas27 Aug 6, 2022
793509f
chore: add presentation path mapping
DiegoSalas27 Aug 6, 2022
be6fa7c
feat: add RetrieveCoordinateController production class
DiegoSalas27 Aug 6, 2022
7db7830
refactor: update name of spy dependency class
DiegoSalas27 Aug 6, 2022
0cd6582
feat: ensure RetrieveCoordinatesController calls RetrieveCoordinates …
DiegoSalas27 Aug 6, 2022
092ae35
test: ensure RetrieveCoordinatesController calls RetrieveCoordinates …
DiegoSalas27 Aug 6, 2022
9f30b12
refactor: move sut creation to its own factory method
DiegoSalas27 Aug 6, 2022
2cb5c8d
feat: ensure RetrieveCoordinatesController returns coordinates on suc…
DiegoSalas27 Aug 6, 2022
0d4c8dc
test: ensure RetrieveCoordinatesController returns coordinates on suc…
DiegoSalas27 Aug 6, 2022
33bae1e
feat: ensure RetrieveCoordinatesController returns catchError if Retr…
DiegoSalas27 Aug 6, 2022
3977773
test: ensure RetrieveCoordinatesController returns catchError if Retr…
DiegoSalas27 Aug 6, 2022
0c503bf
refactor: cleaning up project
DiegoSalas27 Aug 7, 2022
45ca070
refactor: update dependency name
DiegoSalas27 Aug 7, 2022
3fbddf7
feat: add RetrieveCoordinatesController factory method
DiegoSalas27 Aug 7, 2022
7fa6ac5
chore: add path of main folder
DiegoSalas27 Aug 7, 2022
c2d316d
chore: add production dependencies
DiegoSalas27 Aug 7, 2022
3911452
feat: add apollo server initial configuration
DiegoSalas27 Aug 7, 2022
aaa7dd6
feat: add express app with apollo server integration
DiegoSalas27 Aug 7, 2022
cb38586
style: update path to apollo setup server
DiegoSalas27 Aug 7, 2022
0cdc39e
feat: add CoordinateType entity
DiegoSalas27 Aug 7, 2022
390b337
chore: update eslint rules
DiegoSalas27 Aug 7, 2022
fda378d
feat: add adaptResolver for GraphQL resolvers
DiegoSalas27 Aug 7, 2022
4ecf837
feat: add CoordinateResolver
DiegoSalas27 Aug 7, 2022
595df73
refactor: update server.ts use graphql server
DiegoSalas27 Aug 7, 2022
7fdd30f
fix: add argument type
DiegoSalas27 Aug 7, 2022
e32db0f
feat: add CoordinateResolver to buildSchema
DiegoSalas27 Aug 7, 2022
659b9b4
feat: add node-fetch to support import statem,nt
DiegoSalas27 Aug 7, 2022
7f987ec
chore: add start script for development
DiegoSalas27 Aug 7, 2022
c6979a0
fix: change order coordinates
DiegoSalas27 Aug 7, 2022
1c3cab2
test: update test to test node-fetch
DiegoSalas27 Aug 7, 2022
76c28f7
chore!: add github workflows
DiegoSalas27 Aug 8, 2022
b3bbf10
chore(release): v0.1.0
invalid-email-address Aug 8, 2022
19277d8
refactor: update entity name
DiegoSalas27 Aug 8, 2022
bea1d56
feat: ensure LogControllerDecorator calls controller handle with corr…
DiegoSalas27 Aug 8, 2022
652382d
test: ensure LogControllerDecorator calls controller handle with corr…
DiegoSalas27 Aug 8, 2022
531c3cc
feat: ensure LogControllerDecorator returns httpResponse from controller
DiegoSalas27 Aug 8, 2022
d46033b
test: ensure LogControllerDecorator returns httpResponse from controller
DiegoSalas27 Aug 8, 2022
eb21c52
chore: move ControllerSpy to test folder
DiegoSalas27 Aug 8, 2022
3feaeb8
feat: ensure LogControllerDecoratorFactory returns a LogControllerDec…
DiegoSalas27 Aug 8, 2022
ab741c9
test: ensure LogControllerDecoratorFactory returns a LogControllerDec…
DiegoSalas27 Aug 8, 2022
c41d73d
feat: ensure DbRetrieveCoordinatesFactory returns DbRetrieveCoordinat…
DiegoSalas27 Aug 8, 2022
680ef84
test: ensure DbRetrieveCoordinatesFactory returns DbRetrieveCoordinat…
DiegoSalas27 Aug 8, 2022
b6de2b0
feat: ensure RetrieveCoordinateControllerFactory returns a LogControl…
DiegoSalas27 Aug 8, 2022
a65b5c3
test: ensure RetrieveCoordinateControllerFactory returns a LogControl…
DiegoSalas27 Aug 8, 2022
99884a5
test: ensure RetrieveCoordinateControllerFactory invokes LogControlle…
DiegoSalas27 Aug 8, 2022
b768c4d
feat: ensure ApolloServerResolverAdapter adds agrs to request body
DiegoSalas27 Aug 8, 2022
cd29344
test: ensure ApolloServerResolverAdapter adds agrs to request body
DiegoSalas27 Aug 8, 2022
70d062f
test: ensure ApolloServerResolverAdapter calls Controller with correc…
DiegoSalas27 Aug 8, 2022
80d8246
test: ensure ApolloServerResolverAdapter returns Controller response
DiegoSalas27 Aug 8, 2022
29564d0
refactor: move adaptResolver creation to its own factory method
DiegoSalas27 Aug 8, 2022
2082509
feat: ensure ApolloServerResolverAdapter throws UserInputError on 400…
DiegoSalas27 Aug 8, 2022
4d33aa2
test: ensure ApolloServerResolverAdapter throws UserInputError on 400…
DiegoSalas27 Aug 8, 2022
4c99f0b
feat: ensure ApolloServerResolverAdapter throws ApolloError on 500 error
DiegoSalas27 Aug 8, 2022
f7c246d
test: ensure ApolloServerResolverAdapter throws ApolloError on 500 error
DiegoSalas27 Aug 8, 2022
6773890
feat: add status code on thrown exepcetions
DiegoSalas27 Aug 8, 2022
5b11139
chore: add jest env variables for integration test
DiegoSalas27 Aug 8, 2022
55f0b41
test: ensure CoordinateResolver returns coordinates on success
DiegoSalas27 Aug 8, 2022
1d84768
chore: add scripts for unit and integratiopn testing
DiegoSalas27 Aug 8, 2022
0f4ee4e
test: ensure CoordinateResolver returns UserInputError on invalid input
DiegoSalas27 Aug 8, 2022
5a9aedb
test: ensure CoordinateResolver returns ApolloError on 500 error
DiegoSalas27 Aug 8, 2022
1f538af
refactor: rename test file
DiegoSalas27 Aug 8, 2022
64f5acb
feat: ensure ErrorMiddleware logs error on production environemnt
DiegoSalas27 Aug 8, 2022
2ee177e
test: ensure ErrorMiddleware logs error on production environemnt
DiegoSalas27 Aug 8, 2022
c95235f
feat: ensure ErrorMiddleware returns userError with default error mes…
DiegoSalas27 Aug 8, 2022
95f1772
test: ensure ErrorMiddleware returns userError with default error mes…
DiegoSalas27 Aug 8, 2022
fd25b01
test: ensure ErrorMiddleware returns userError with error message on …
DiegoSalas27 Aug 8, 2022
b30f4d4
feat: ensure ErrorMiddleware returns developerError on development en…
DiegoSalas27 Aug 8, 2022
d9ac765
test: ensure ErrorMiddleware returns developerError on development en…
DiegoSalas27 Aug 8, 2022
db3aa90
refactor: move sut creation to its own factory method
DiegoSalas27 Aug 8, 2022
6ab136d
style: add types
DiegoSalas27 Aug 8, 2022
83b0fb6
feat: ensure ErrorHandlerMiddleware calls sendErrorDev when in develo…
DiegoSalas27 Aug 8, 2022
07c5e20
test: ensure ErrorHandlerMiddleware calls sendErrorDev when in develo…
DiegoSalas27 Aug 8, 2022
7a61f82
test: ensure ErrorHandlerMiddleware calls sendErrorProd when in produ…
DiegoSalas27 Aug 8, 2022
8a08ae0
feat: add formatError pipeline to handle errors gracefully
DiegoSalas27 Aug 8, 2022
28553b5
chore: prepare api for production build
DiegoSalas27 Aug 8, 2022
77fb176
test: ensure BusinessError sets bussiness errors attributes with corr…
DiegoSalas27 Aug 8, 2022
23f2f0b
test: ensure BusinessErrors set bussiness errors attributes with corr…
DiegoSalas27 Aug 8, 2022
ce1d2e3
refactor: comment unused if statement
DiegoSalas27 Aug 8, 2022
c6d84a1
feat: ensure ApolloServer returns checkErrorExists false on non match…
DiegoSalas27 Aug 8, 2022
05bf238
test: ensure ApolloServer returns checkErrorExists false on non match…
DiegoSalas27 Aug 8, 2022
5889735
test: ensure ApolloServer returns checkErrorExists true on matching e…
DiegoSalas27 Aug 9, 2022
2fc87f0
refactor: remove unnecessary constructor
DiegoSalas27 Aug 9, 2022
f8c9178
refactor: rename file
DiegoSalas27 Aug 9, 2022
9f65082
build: second pre-release
DiegoSalas27 Aug 9, 2022
34f9903
chore: merged changes
DiegoSalas27 Aug 9, 2022
da71bcf
chore(release): v0.2.0
invalid-email-address Aug 9, 2022
12666f6
build: update project dependencies for serverless
DiegoSalas27 Aug 9, 2022
89a684e
refactor: update config for project bundling
DiegoSalas27 Aug 9, 2022
dc3d5e0
refactor: cleaning up project
DiegoSalas27 Aug 9, 2022
ba8cd0f
refactor: update controller input
DiegoSalas27 Aug 10, 2022
30391a4
test: refactor tests
DiegoSalas27 Aug 10, 2022
390415f
refactor: update request argument
DiegoSalas27 Aug 10, 2022
643fc4b
feat: add apollo-server-lambda and handler function
DiegoSalas27 Aug 10, 2022
45296a4
refactor: update coordinate resolver parameters
DiegoSalas27 Aug 10, 2022
f6ae06d
test: update integration test to use apollo-server-lambda
DiegoSalas27 Aug 10, 2022
a417326
build: add serverles.yml file for project bootstrapping
DiegoSalas27 Aug 10, 2022
93cd971
ci: update workflows config file to support deployment
DiegoSalas27 Aug 10, 2022
b87a9a6
chore(release): v1.1.0
invalid-email-address Aug 10, 2022
9d60049
refactor: update tsconfig-build exclude
DiegoSalas27 Aug 10, 2022
0ea179b
chore: merge changes
DiegoSalas27 Aug 10, 2022
0f533d8
chore: merge changes
DiegoSalas27 Aug 10, 2022
7673204
refactor: fix pipeline
DiegoSalas27 Aug 10, 2022
b7a21bc
ci: update pipeline
DiegoSalas27 Aug 10, 2022
cda8822
fix: add extra validation for mapbox geocoding api
DiegoSalas27 Aug 10, 2022
4aa7c2f
test: update 500 error test case
DiegoSalas27 Aug 10, 2022
3013944
build: update package.json for local testing
DiegoSalas27 Aug 10, 2022
8f10901
ci: update workflows deployment pipeline
DiegoSalas27 Aug 10, 2022
3f075d4
chore(release): v1.1.1
invalid-email-address Aug 10, 2022
b3e7f75
docs: add component and aws architecture diagrams
DiegoSalas27 Aug 10, 2022
cb06d6a
chore: merge new patch version
DiegoSalas27 Aug 10, 2022
7906046
docs: moved test guidelines to new file
DiegoSalas27 Aug 10, 2022
8cd84b0
docs: add public images
DiegoSalas27 Aug 10, 2022
9ae2d43
docs: merge test documentation
DiegoSalas27 Aug 10, 2022
a1e0072
docs: update README.md
DiegoSalas27 Aug 10, 2022
a11ddc8
docs: add serverless framework docs link
DiegoSalas27 Aug 10, 2022
4ac0bd7
docs: add testing prerequisite
DiegoSalas27 Aug 10, 2022
9b4488a
Merge pull request #1 from DiegoSalas27/graphql-api-serverless
DiegoSalas27 Aug 10, 2022
c2a90e2
docs: add author to README file
DiegoSalas27 Aug 11, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
node_modules
launch.json
jest-env-vars.js
coverage
dist
build
.build
.serverless
16 changes: 16 additions & 0 deletions .eslintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"extends": "standard-with-typescript",
"parserOptions": {
"project": "./tsconfig.json"
},
"rules": {
"@typescript-eslint/strict-boolean-expressions": "off",
"@typescript-eslint/no-namespace": "off",
"@typescript-eslint/no-unused-vars": "off",
"@typescript-eslint/no-unused-expressions": "off",
"@typescript-eslint/no-floating-promises": "off",
"@typescript-eslint/no-var-requires": "off",
"@typescript-eslint/return-await": "off",
"@typescript-eslint/explicit-function-return-type": "off"
}
}
78 changes: 78 additions & 0 deletions .github/workflows/pre-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
# https://blog.jakoblind.no/aws-lambda-github-actions/

name: pre-release
on:
push:
branches:
- graphql-api-serverless

jobs:
changelog:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2

- name: conventional Changelog Action
id: changelog
uses: TriPSs/conventional-changelog-action@v3.7.1
with:
github-token: ${{ secrets.CHANGELOG_RELEASE }}

- name: create release
uses: actions/create-release@v1
if: ${{ steps.changelog.outputs.skipped == 'false' }}
env:
GITHUB_TOKEN: ${{ secrets.CHANGELOG_RELEASE }}
with:
tag_name: ${{ steps.changelog.outputs.tag }}
release_name: ${{ steps.changelog.outputs.tag }}
body: ${{ steps.changelog.outputs.clean_changelog }}
prerelease: true

deploy_source:
name: build and deploy lambda
strategy:
matrix:
node-version: [12.x]
runs-on: ubuntu-latest
steps:
- name: checkout source code
uses: actions/checkout@v1
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: create enviroment variables for testing
run: |
touch .env
echo process.env.ACCESS_TOKEN=${ENV_DEV} > .env
touch jest-env-vars.js
echo process.env.ACCESS_TOKEN=${ENV_JEST} > jest-env-vars.js
env:
ENV_DEV: ${{ secrets.ENV_DEV }}
ENV_JEST: ${{ secrets.ENV_JEST }}
- name: npm install and build
run: |
npm install
npm run test:ci
npm run build --if-present
env:
CI: true
- name: npm install prod
run: |
rm -r node_modules
npm install --production
- name: zip
uses: montudor/action-zip@v0.1.0
with:
args: zip -qq -r ./bundle.zip ./
- name: default deploy
uses: appleboy/lambda-action@master
with:
aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws_region: ${{ secrets.AWS_REGION }}
function_name: apollo-coordinates-service-dev-graphql
zip_file: bundle.zip
environment: ACCESS_TOKEN=${{ secrets.ACCESS_TOKEN }}

26 changes: 26 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: release
on:
push:
branches:
- main
jobs:
changelog:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2

- name: conventional Changelog Action
id: changelog
uses: TriPSs/conventional-changelog-action@v3.7.1
with:
github-token: ${{ secrets.CHANGELOG_RELEASE }}

- name: create release
uses: actions/create-release@v1
if: ${{ steps.changelog.outputs.skipped == 'false' }}
env:
GITHUB_TOKEN: ${{ secrets.CHANGELOG_RELEASE }}
with:
tag_name: ${{ steps.changelog.outputs.tag }}
release_name: ${{ steps.changelog.outputs.tag }}
body: ${{ steps.changelog.outputs.clean_changelog }}
9 changes: 9 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
node_modules
.env*
launch.json
jest-env-vars.js
coverage
dist
build
.build
.serverless
9 changes: 9 additions & 0 deletions .husky/commit-msg
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#!/bin/sh
if ! head -1 "$1" | grep -qE "^(feat|fix|chore|docs|test|style|refactor|perf|build|ci|revert)!?(\(.+?\))?: .{1,}$"; then
echo "Aborting commit. Your commit message is invalid." >&2
exit 1
fi
if ! head -1 "$1" | grep -qE "^.{1,120}$"; then
echo "Aborting commit. Your commit message is too long." >&2
exit 1
fi
4 changes: 4 additions & 0 deletions .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"

npx lint-staged
4 changes: 4 additions & 0 deletions .husky/pre-push
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"

npm run test:ci
3 changes: 3 additions & 0 deletions .lintstagedrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"*.(js|ts)": ["eslint 'src/**' --fix", "npm run test:staged"]
}
8 changes: 8 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"tabWidth": 2,
"printWidth": 120,
"singleQuote": true,
"trailingComma": "none",
"arrowParens": "avoid",
"semi": false
}
78 changes: 78 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
## [1.1.1](https://github.com/DiegoSalas27/cloud-backend-test/compare/v1.1.0...v1.1.1) (2022-08-10)


### Bug Fixes

* add extra validation for mapbox geocoding api ([cda8822](https://github.com/DiegoSalas27/cloud-backend-test/commit/cda882250b261b6e4b80f448f343a724ada67b33))



# [1.1.0](https://github.com/DiegoSalas27/cloud-backend-test/compare/v0.2.0...v1.1.0) (2022-08-10)


### Features

* add apollo-server-lambda and handler function ([643fc4b](https://github.com/DiegoSalas27/cloud-backend-test/commit/643fc4bc8407dd3b545d1576182d0d4a1746a2fa))



# [0.2.0](https://github.com/DiegoSalas27/cloud-backend-test/compare/v0.1.0...v0.2.0) (2022-08-09)


### Features

* add formatError pipeline to handle errors gracefully ([8a08ae0](https://github.com/DiegoSalas27/cloud-backend-test/commit/8a08ae03a76025f95768ec9ab9746536c9c18c97))
* add status code on thrown exepcetions ([6773890](https://github.com/DiegoSalas27/cloud-backend-test/commit/67738902702fc0fe6e74ccb4a772b081b1ed08b3))
* ensure ApolloServer returns checkErrorExists false on non matching error name ([c6d84a1](https://github.com/DiegoSalas27/cloud-backend-test/commit/c6d84a1c11fefdc34c93a24db29946a1d8466143))
* ensure ApolloServerResolverAdapter adds agrs to request body ([b768c4d](https://github.com/DiegoSalas27/cloud-backend-test/commit/b768c4d6f132220ba6f96d847d293dd18015fc1a))
* ensure ApolloServerResolverAdapter throws ApolloError on 500 error ([4c99f0b](https://github.com/DiegoSalas27/cloud-backend-test/commit/4c99f0b4f89ba196e1382762a409a90128fc8d46))
* ensure ApolloServerResolverAdapter throws UserInputError on 400 error ([2082509](https://github.com/DiegoSalas27/cloud-backend-test/commit/20825093f1e12cd5b6b6a61444318882d2864910))
* ensure DbRetrieveCoordinatesFactory returns DbRetrieveCoordinates instance ([c41d73d](https://github.com/DiegoSalas27/cloud-backend-test/commit/c41d73d3583315c11ce9f1ae0ee6c83ee1a22b42))
* ensure ErrorHandlerMiddleware calls sendErrorDev when in development environment ([83b0fb6](https://github.com/DiegoSalas27/cloud-backend-test/commit/83b0fb687adb889a5b4b2a1403af425263dd15e3))
* ensure ErrorMiddleware logs error on production environemnt ([64f5acb](https://github.com/DiegoSalas27/cloud-backend-test/commit/64f5acb702c429d1299325430f36903774673bf8))
* ensure ErrorMiddleware returns developerError on development environment ([b30f4d4](https://github.com/DiegoSalas27/cloud-backend-test/commit/b30f4d4b1e1d160ef1a6a580a6ba962b90bcd826))
* ensure ErrorMiddleware returns userError with default error message on INTERNAL_SERVER_ERROR ([c95235f](https://github.com/DiegoSalas27/cloud-backend-test/commit/c95235f836ca8e5c9b2141949874c1b680b1d86e))
* ensure LogControllerDecorator calls controller handle with correct arguments ([bea1d56](https://github.com/DiegoSalas27/cloud-backend-test/commit/bea1d5671a10f9aac45547751127f5da46d18e5f))
* ensure LogControllerDecorator returns httpResponse from controller ([531c3cc](https://github.com/DiegoSalas27/cloud-backend-test/commit/531c3cc58eb0a0ad4be04279f070393f24f3e8cf))
* ensure LogControllerDecoratorFactory returns a LogControllerDecorator instance ([3feaeb8](https://github.com/DiegoSalas27/cloud-backend-test/commit/3feaeb8c0bf3e2c50cb5d1d81e2bc4bbf8a6c6e7))
* ensure RetrieveCoordinateControllerFactory returns a LogControllerDecorator instance ([b6de2b0](https://github.com/DiegoSalas27/cloud-backend-test/commit/b6de2b0afab32f9a33804f27770bd76d9edf0425))



# [0.1.0](https://github.com/DiegoSalas27/cloud-backend-test/compare/7b0ba1c0b2bfedc36703c745ed341ba2b7794acb...v0.1.0) (2022-08-08)


### Bug Fixes

* add argument type ([7fdd30f](https://github.com/DiegoSalas27/cloud-backend-test/commit/7fdd30f9759e5e0b5ea21d8fc2e8a668a45de680))
* change order coordinates ([c6979a0](https://github.com/DiegoSalas27/cloud-backend-test/commit/c6979a0c982b68274cfd9475beb0f34565d384e8))


### Features

* add adaptResolver for GraphQL resolvers ([fda378d](https://github.com/DiegoSalas27/cloud-backend-test/commit/fda378db2e4678701065aea5efa39cb39880285e))
* add apollo server initial configuration ([3911452](https://github.com/DiegoSalas27/cloud-backend-test/commit/3911452a3e4e0762aad77ae91fd7c59e6f9500a8))
* add BadRequest error ([11df888](https://github.com/DiegoSalas27/cloud-backend-test/commit/11df888a2b805c071cfdc1e178dcc43208697377))
* add BusinessError class for fine-grained error treatment ([2671813](https://github.com/DiegoSalas27/cloud-backend-test/commit/26718138a4628fa898063644dae09bd10719a731))
* add coordinate model ([7b0ba1c](https://github.com/DiegoSalas27/cloud-backend-test/commit/7b0ba1c0b2bfedc36703c745ed341ba2b7794acb))
* add CoordinateResolver ([4ecf837](https://github.com/DiegoSalas27/cloud-backend-test/commit/4ecf8378ee719498f66182e2326cd49abcd17dbe))
* add CoordinateResolver to buildSchema ([e32db0f](https://github.com/DiegoSalas27/cloud-backend-test/commit/e32db0fc46e522ea1b3f3c1b0586e4fa75f7d291))
* add CoordinateType entity ([0cdc39e](https://github.com/DiegoSalas27/cloud-backend-test/commit/0cdc39eb047281cfed478831effc163669b1a9f7))
* add DbRetrieveCoordinates usecase implementation ([662b4ed](https://github.com/DiegoSalas27/cloud-backend-test/commit/662b4edfc5907edebce0f4428c0cca3a8e847f71))
* add express app with apollo server integration ([aaa7dd6](https://github.com/DiegoSalas27/cloud-backend-test/commit/aaa7dd67c27c9f97c1de2b23ace8d6387e0531ea))
* add MapBoxHttpClientAdapter production class ([8bf221d](https://github.com/DiegoSalas27/cloud-backend-test/commit/8bf221d8024aa1aebf31769aa25119ff4726af74))
* add node-fetch to support import statem,nt ([659b9b4](https://github.com/DiegoSalas27/cloud-backend-test/commit/659b9b479ee8ba1dbe8dad53d0b22fa9346ba00b))
* add protocols for controllers ([756a2f8](https://github.com/DiegoSalas27/cloud-backend-test/commit/756a2f8a5e46b45a2c172aa5e485b50ee38a5ad6))
* add RetrieveCoordinateController production class ([be6fa7c](https://github.com/DiegoSalas27/cloud-backend-test/commit/be6fa7ccc1176ba22a43ba499c329e7dc3a91e2f))
* add RetrieveCoordinatesController factory method ([3fbddf7](https://github.com/DiegoSalas27/cloud-backend-test/commit/3fbddf79e0ce7c0cc3771da998c465b4d3065767))
* ensure DbRetrieveCoordinates calls RetrieveCoordinatesRepository with correct address ([e13523e](https://github.com/DiegoSalas27/cloud-backend-test/commit/e13523ea59bc812e97f35ee535c59e2a2639a2dc))
* ensure DbRetrieveCoordinates throws BadRequestError if RetrieveCoordinatesRepository returns null ([b6e6ef6](https://github.com/DiegoSalas27/cloud-backend-test/commit/b6e6ef6d646e0c7407bf4ccadb096329dc0a0ae7))
* ensure MapBoxHttpClientAdapter calls fetch method with correct values ([ff3f49c](https://github.com/DiegoSalas27/cloud-backend-test/commit/ff3f49c28b10d430b507de0367b6ce6a707b55f8))
* ensure MapBoxHttpClientAdapter returns BadRequest error if given address is incorrect ([78b7be3](https://github.com/DiegoSalas27/cloud-backend-test/commit/78b7be3b90ba75366261e17f60cff177378ce592))
* ensure MapBoxHttpClientAdapter returns latitude and longitude if feature list is not empty ([f52f16c](https://github.com/DiegoSalas27/cloud-backend-test/commit/f52f16cf64a8edc9d74ff942efc8163770721d89))
* ensure RetrieveCoordinatesController calls RetrieveCoordinates with correct address ([0cd6582](https://github.com/DiegoSalas27/cloud-backend-test/commit/0cd658288bba52760971ca72306862f3705c5380))
* ensure RetrieveCoordinatesController returns catchError if RetrieveCoordinates throws ([33bae1e](https://github.com/DiegoSalas27/cloud-backend-test/commit/33bae1ea74cd922bc48595ff9d2149d9e6f3e500))
* ensure RetrieveCoordinatesController returns coordinates on success ([2cb5c8d](https://github.com/DiegoSalas27/cloud-backend-test/commit/2cb5c8d1c9c9558c71b1073569476eff1d69a688))



Loading