diff --git a/.env.example b/server/.env.example similarity index 100% rename from .env.example rename to server/.env.example diff --git a/.gitignore b/server/.gitignore similarity index 100% rename from .gitignore rename to server/.gitignore diff --git a/Dockerfile b/server/Dockerfile similarity index 100% rename from Dockerfile rename to server/Dockerfile diff --git a/app/database.go b/server/app/database.go similarity index 100% rename from app/database.go rename to server/app/database.go diff --git a/app/server.go b/server/app/server.go similarity index 100% rename from app/server.go rename to server/app/server.go diff --git a/config/config.go b/server/config/config.go similarity index 100% rename from config/config.go rename to server/config/config.go diff --git a/go.mod b/server/go.mod similarity index 100% rename from go.mod rename to server/go.mod diff --git a/go.sum b/server/go.sum similarity index 100% rename from go.sum rename to server/go.sum diff --git a/main.go b/server/main.go similarity index 100% rename from main.go rename to server/main.go diff --git a/routes/sensor_config.go b/server/routes/sensor_config.go similarity index 100% rename from routes/sensor_config.go rename to server/routes/sensor_config.go diff --git a/routes/sensor_values.go b/server/routes/sensor_values.go similarity index 100% rename from routes/sensor_values.go rename to server/routes/sensor_values.go diff --git a/routes/sensors.go b/server/routes/sensors.go similarity index 100% rename from routes/sensors.go rename to server/routes/sensors.go diff --git a/server/services/auth_service.go b/server/services/auth_service.go new file mode 100644 index 0000000..76694a9 --- /dev/null +++ b/server/services/auth_service.go @@ -0,0 +1,17 @@ +package services + +import "github.com/gin-gonic/gin" + +type AuthService struct { + ctx *Context +} + +func (s *AuthService) FromContext(ctx *gin.Context) (*User, error) { + session, err := s.ctx.Services.Sessions.FromContext(ctx) + + if err != nil { + return nil, err + } + + return s.ctx.Services.Users.GetById(session.UserId) +} diff --git a/services/sensor_config_service.go b/server/services/sensor_config_service.go similarity index 100% rename from services/sensor_config_service.go rename to server/services/sensor_config_service.go diff --git a/services/sensor_values_service.go b/server/services/sensor_values_service.go similarity index 100% rename from services/sensor_values_service.go rename to server/services/sensor_values_service.go diff --git a/services/sensors_service.go b/server/services/sensors_service.go similarity index 100% rename from services/sensors_service.go rename to server/services/sensors_service.go diff --git a/services/services.go b/server/services/services.go similarity index 72% rename from services/services.go rename to server/services/services.go index 8e026d3..db81dd4 100644 --- a/services/services.go +++ b/server/services/services.go @@ -9,6 +9,9 @@ type Services struct { SensorConfig *SensorConfigService SensorValues *SensorValuesService Sensors *SensorsService + Sessions *SessionsService + Users *UsersService + Auth *AuthService } type Context struct { @@ -25,6 +28,9 @@ func InitializeServices(ctx *Context) *Services { services.SensorConfig = &SensorConfigService{ctx: ctx} services.SensorValues = &SensorValuesService{ctx: ctx} services.Sensors = &SensorsService{ctx: ctx} + services.Sessions = &SessionsService{ctx: ctx} + services.Auth = &AuthService{ctx: ctx} + services.Users = &UsersService{ctx: ctx} return &services }