{"id":18497863,"url":"https://github.com/juanmachuca95/conductores_go","last_synced_at":"2026-05-03T23:34:34.084Z","repository":{"id":57705794,"uuid":"495806954","full_name":"juanmachuca95/conductores_go","owner":"juanmachuca95","description":"Challenge - Golang Gin-Framework, MySQL, Seeders. GoMocks, Clean Architecture, Unit-Testing","archived":false,"fork":false,"pushed_at":"2022-06-11T18:08:01.000Z","size":5379,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-01T16:59:58.973Z","etag":null,"topics":["clean-architecture","gin","golang","gomock","mysql","sqlmock","testing"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/juanmachuca95.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-05-24T12:09:44.000Z","updated_at":"2022-06-11T18:09:40.000Z","dependencies_parsed_at":"2022-08-24T10:40:46.240Z","dependency_job_id":null,"html_url":"https://github.com/juanmachuca95/conductores_go","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/juanmachuca95/conductores_go","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juanmachuca95%2Fconductores_go","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juanmachuca95%2Fconductores_go/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juanmachuca95%2Fconductores_go/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juanmachuca95%2Fconductores_go/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/juanmachuca95","download_url":"https://codeload.github.com/juanmachuca95/conductores_go/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juanmachuca95%2Fconductores_go/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32589260,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T22:12:39.696Z","status":"ssl_error","status_checked_at":"2026-05-03T22:09:10.534Z","response_time":103,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["clean-architecture","gin","golang","gomock","mysql","sqlmock","testing"],"created_at":"2024-11-06T13:36:21.507Z","updated_at":"2026-05-03T23:34:34.062Z","avatar_url":"https://github.com/juanmachuca95.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Deployment\n\nPara este challenge utilizaré docker y docker-compose para crear el contenedor de la api y para la conexión a la base de datos con mysql, simplemente configuraré las variables de entorno (```.env```) al servicio externo. \n\n## Step by Step\n\nIniciamos nuestra conexion via ssh o de su preferencia para conectarse con su instancia para deploy de aplicación de acuerdo a su proveedor, en mi caso será un ubuntu 20.04 - en digitalocean. Primero clonamos el repositorio:\n\n```sh\ngit clone https://github.com/juanmachuca95/conductores_go\n```\n\n```sh\ncd conductores_go\nnano .env\n```\n\n2. Seteamos nuestras variables de entorno:\n\n```\nDATABASE=\"\"\nPORT=\"3306\"\nUSERNAME=\"\"\nPASSWORD=\"\"\nHOSTNAME=\"\"\n\nTOKEN_API_AUTH=\"\"\nAPI_PORT=\":8080\"\n```\n\n\n3. Una vez especificada nuestra conexión a la base de datos externa. \nEn nuestro directorio raiz ```/db/mysq.sql``` se encuentra el archivo que importaremos en nuestro servicio mysql.\nAl termniar la importación podemos continuar con docker.\n\n```docker\ndocker-compose build\ndocker-compose up -d \n```\n\n4. 👍 Todo listo! La esta en marcha.\n\u003cbr\u003e\u003cbr\u003e\n## Primeras pruebas\nLancemos algunas solicitudes a la api para comprobar su correcto funcionamiento. Vamos logearnos con un usuario administrador.\n\n```sh\ncurl -X POST http://localhost:8080/login -H 'Content-Type: application/json' -d '{\"email\":\"admin@spaceguru.com\", \"password\":\"123456\"}'\n```\n\nCon el token de la respuesta. Nos dirigimos a https://jwt.io y pegamos nuestro token.\n\n```json\n{\n  \"user\": {\n    \"id\": 1,\n    \"name\": \"Administrador\",\n    \"email\": \"admin@spaceguru.com\"\n  },\n  \"roles\": [\n    \"admin\"\n  ],\n  \"exp\": 1653711999\n}\n```\n\nIngresamos una cuenta de conductor:\n```bash \ncurl -X POST http://localhost:8080/login -H 'Content-Type: application/json' -d '{\"email\":\"conductor@spaceguru.com\", \"password\":\"123456\"}'\n```\n\n```json\n{\n  \"user\": {\n    \"id\": 102,\n    \"name\": \"Conductor test\",\n    \"email\": \"conductor@spaceguru.com\"\n  },\n  \"roles\": [\n    \"conductor\"\n  ],\n  \"exp\": 1653712180\n}\n```\n\n\n2. Obtener los conductores - utilizando paginación\n\n```sh\ncurl -X GET http://localhost:8080/conductores -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImlkIjoxLCJuYW1lIjoiQWRtaW5pc3RyYWRvciIsImVtYWlsIjoiYWRtaW5Ac3BhY2VndXJ1LmNvbSJ9LCJyb2xlcyI6WyJhZG1pbiJdLCJleHAiOjE2NTM2OTYzMzJ9.TKWpE2ut1HfKFlsjmi7jvpWRd_jwJepcW_lAwOeVp00' -d '{\"page\":5}'\n```\n\n```json\n{\n  \"conductores\": [\n    {\n      \"id\": 11,\n      \"users_id\": 31,\n      \"name\": \"Mrs. Clarissa McDermott\",\n      \"email\": \"gCAdxcw@AxUsYny.org\",\n      \"matricula\": \"472\",\n      \"vehiculo\": \"Prof. Emely Goodwin\",\n      \"created_at\": \"2022-05-25 17:11:13\",\n      \"updated_at\": \"2022-05-25 17:11:13\"\n    },\n    {\n      \"id\": 12,\n      \"users_id\": 37,\n      \"name\": \"Miss Zita Emard\",\n      \"email\": \"ggLhBly@UXspyFv.ru\",\n      \"matricula\": \"1502\",\n      \"vehiculo\": \"Miss Dasia Nienow\",\n      \"created_at\": \"2022-05-25 17:11:13\",\n      \"updated_at\": \"2022-05-25 17:11:13\"\n    },\n    {\n      \"id\": 13,\n      \"users_id\": 45,\n      \"name\": \"Queen Juana Schroeder\",\n      \"email\": \"hrcxbwv@VkaByfn.net\",\n      \"matricula\": \"171\",\n      \"vehiculo\": \"Queen Mikayla Walker\",\n      \"created_at\": \"2022-05-25 17:11:13\",\n      \"updated_at\": \"2022-05-25 17:11:13\"\n    },\n    {\n      \"id\": 14,\n      \"users_id\": 39,\n      \"name\": \"Princess Kenyatta Mertz\",\n      \"email\": \"Hygujte@hVVrYJT.net\",\n      \"matricula\": \"1719\",\n      \"vehiculo\": \"Queen Jeanne Jacobs\",\n      \"created_at\": \"2022-05-25 17:11:13\",\n      \"updated_at\": \"2022-05-25 17:11:13\"\n    },\n    {\n      \"id\": 15,\n      \"users_id\": 34,\n      \"name\": \"Princess Hortense Gleason\",\n      \"email\": \"IfKTxIY@ZrigpOe.com\",\n      \"matricula\": \"1371\",\n      \"vehiculo\": \"Lady Callie Labadie\",\n      \"created_at\": \"2022-05-25 17:11:13\",\n      \"updated_at\": \"2022-05-25 17:11:13\"\n    }\n  ],\n  \"status\": \"Success\"\n}\n```\n\n3. Obtener los conductores que no esta realizando viajes\n\n```sh\ncurl -X GET http://localhost:8080/conductoresdisponibles -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImlkIjoxLCJuYW1lIjoiQWRtaW5pc3RyYWRvciIsImVtYWlsIjoiYWRtaW5Ac3BhY2VndXJ1LmNvbSJ9LCJyb2xlcyI6WyJhZG1pbiJdLCJleHAiOjE2NTM2OTYzMzJ9.TKWpE2ut1HfKFlsjmi7jvpWRd_jwJepcW_lAwOeVp00'  \n```\n\nRespuesta: \n\n```json\n{\n  \"conductores\": [\n    {\n      \"id\": 2,\n      \"users_id\": 69,\n      \"name\": \"Ms. Kimberly Monahan\",\n      \"email\": \"bkScYfL@qNcunro.org\",\n      \"matricula\": \"1674\",\n      \"vehiculo\": \"Dr. Sunny Runolfsdottir\",\n      \"created_at\": \"2022-05-25 17:11:13\",\n      \"updated_at\": \"2022-05-25 17:11:13\"\n    },\n    {\n      \"id\": 3,\n      \"users_id\": 57,\n      \"name\": \"Ms. Libby O\\\"Keefe\",\n      \"email\": \"BtHgSsT@aHTBWvN.ru\",\n      \"matricula\": \"622\",\n      \"vehiculo\": \"Dr. Madalyn Roberts\",\n      \"created_at\": \"2022-05-25 17:11:13\",\n      \"updated_at\": \"2022-05-25 17:11:13\"\n    },\n    {\n      \"id\": 4,\n      \"users_id\": 47,\n      \"name\": \"Miss Leilani Towne\",\n      \"email\": \"CmnYaFt@vuVmUDr.biz\",\n      \"matricula\": \"359\",\n      \"vehiculo\": \"Dr. Jaunita Cronin\",\n      \"created_at\": \"2022-05-25 17:11:13\",\n      \"updated_at\": \"2022-05-25 17:11:13\"\n    },\n  ],\n  \"message\": \"Conductores disponibles que no están realizando viajes\",\n  \"status\": \"Success\"\n}\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuanmachuca95%2Fconductores_go","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjuanmachuca95%2Fconductores_go","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuanmachuca95%2Fconductores_go/lists"}