Skip to content

manavellam/TestingGorm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

#VER ESTRUCTURA DEBAJO

Para probar de manera local:

1 - $git clone https://github.com/manavellam/TestingGorm

2 - Modificar el app/config.json con la info(User, Pass, DBname) para acceder a una base de datos, donde se creara la tabla "user"

3 - En la terminal de Code $go run main.go
El archivo go.mod instalara automaticamente las librerias utilizadas. Esto facilita la implementacion.

4 - En postman, colocar los siguiente en el Body para /login/auth:
    
        {
            "Name": "Matias",
            "Password": "1234"
        }

5 - Probar los endpoints con el Token devuelto. Para agregar un User(/user/add) atencion a los corchetes:
        [	        
            {
                "Name": "Nicolas",
                "Password": "4567"
            }
        ]

Durante el proyecto, las funciones utilizan siempre que sea posible punteros. De esta forma se evita ocupar la memoria de manera innecesaria y aumenta la velocidad de respuesta.

Durante las consultas, el middleware provisto por gin tonic arrojara alguna info sobre que consulta llego, a que endpoint y cuanto demoro la consulta.

Estructura del proyecto:

TestingGorm
|_App
| |_config.json           Contiene informacion de configuracion. Ejemplo, puerto del server
| |_ReadConfig.go         Vuelca info de config.json a struct  
|_Controllers
| |_LoginUser.go          Responde a /login/auth, loggea usuario dado un par valido de U+P, y que no este loggeado
| |_UserAdd.go            Responde a /user/add, agrega usuario a DB dado un token valido
| |_UserReadAll.go        Responde a /user/read, dado un tkn  valido, devuelve la info en DB users
|_Middleware
| |_IsTknValid.go         Checkea si el token existe, y si es valido
| |_IsUser.go             Checkea si un par U+P es valido
| |_TokenGen.go           Genera un Tkn con tiempo de expiracion para un usuario
|_Models
| |_ClaimsJWT.go          Struct utilizada para Claims a agregarse en un JWT (ExpiresAt, Issuer, etc...)
| |_Config.go             Struct utilizada para cargar los datos de configuracion
| |_User.go               Struct utilizada para leer y escribir en DB user con GORM
|_Routes
| |_loginpaths.go         Agrupa endpoints /login/...
| |_routes.go             Configura las routas en el router de GIN GONIC
| |_userpaths.go          Agrupa endpoints /user/...
|_Services
| |_Contains.go           Checks if database contains a pair of User+Pass
| |_DBInit.go             Initiates a  conection with the DB
| |_Insert.go             Inserts a new User into DB (Generico, funciona con cualquier DB y modelo)
| |_Query.go              SELECT * FROM "tablename" (Generico tambien)
|_main.go

Releases

No releases published

Packages

No packages published

Languages