Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature native http #39

Merged
merged 2 commits into from
Jul 20, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ go 1.22
toolchain go1.22.3

require (
github.com/akrck02/valhalla-core-sdk v0.0.11-20240719200736-dev
github.com/akrck02/valhalla-core-sdk v0.0.12-20240720153807-feature-native-http
github.com/golang-jwt/jwt/v5 v5.2.1
github.com/joho/godotenv v1.5.1
go.mongodb.org/mongo-driver v1.15.0
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
github.com/akrck02/valhalla-core-sdk v0.0.11-20240719200736-dev h1:hZoHpK0WOa3rEglZpdES+tRFrSyjeAV01kornldXLhY=
github.com/akrck02/valhalla-core-sdk v0.0.11-20240719200736-dev/go.mod h1:qBovw83Vo/iXggXZS4ttcMqF9xFSR5ogu7G+RWh/jGg=
github.com/akrck02/valhalla-core-sdk v0.0.12-20240720153807-feature-native-http h1:rBZorfoXI9iwUrASfNnOOulM0qUWQopSFOe2bdkGnoY=
github.com/akrck02/valhalla-core-sdk v0.0.12-20240720153807-feature-native-http/go.mod h1:qBovw83Vo/iXggXZS4ttcMqF9xFSR5ogu7G+RWh/jGg=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk=
Expand Down
26 changes: 13 additions & 13 deletions services/device/device.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ import (
"github.com/akrck02/valhalla-core-dal/database"
"github.com/akrck02/valhalla-core-sdk/http"
"github.com/akrck02/valhalla-core-sdk/log"
apimodels "github.com/akrck02/valhalla-core-sdk/models/api"
devicemodels "github.com/akrck02/valhalla-core-sdk/models/device"
systemmodels "github.com/akrck02/valhalla-core-sdk/models/system"
usersmodels "github.com/akrck02/valhalla-core-sdk/models/users"
"github.com/akrck02/valhalla-core-sdk/utils"
"github.com/akrck02/valhalla-core-sdk/valerror"
Expand All @@ -15,11 +15,11 @@ import (
"go.mongodb.org/mongo-driver/mongo"
)

func AddUserDevice(conn *mongo.Client, user *usersmodels.User, device *devicemodels.Device) (*devicemodels.Device, *systemmodels.Error) {
func AddUserDevice(conn *mongo.Client, user *usersmodels.User, device *devicemodels.Device) (*devicemodels.Device, *apimodels.Error) {

token, err := utils.GenerateAuthToken(user, device, configuration.Params.Secret)
if err != nil {
return nil, &systemmodels.Error{
return nil, &apimodels.Error{
Status: http.HTTP_STATUS_INTERNAL_SERVER_ERROR,
Error: valerror.DATABASE_ERROR,
Message: "Error generating token",
Expand All @@ -45,7 +45,7 @@ func AddUserDevice(conn *mongo.Client, user *usersmodels.User, device *devicemod
log.Debug("Creating new device...")
_, insertErr := coll.InsertOne(database.GetDefaultContext(), device)
if insertErr != nil {
return device, &systemmodels.Error{
return device, &apimodels.Error{
Status: http.HTTP_STATUS_INTERNAL_SERVER_ERROR,
Error: valerror.DATABASE_ERROR,
Message: "Error creating device",
Expand All @@ -55,7 +55,7 @@ func AddUserDevice(conn *mongo.Client, user *usersmodels.User, device *devicemod
return device, nil
}

func FindDevice(coll *mongo.Collection, device *devicemodels.Device) (*devicemodels.Device, *systemmodels.Error) {
func FindDevice(coll *mongo.Collection, device *devicemodels.Device) (*devicemodels.Device, *apimodels.Error) {

var found devicemodels.Device
err := coll.FindOne(
Expand All @@ -64,7 +64,7 @@ func FindDevice(coll *mongo.Collection, device *devicemodels.Device) (*devicemod
).Decode(&found)

if err != nil {
return nil, &systemmodels.Error{
return nil, &apimodels.Error{
Status: http.HTTP_STATUS_BAD_REQUEST,
Error: valerror.DEVICE_DOES_NOT_EXIST,
Message: "Device doesn't exists",
Expand All @@ -74,7 +74,7 @@ func FindDevice(coll *mongo.Collection, device *devicemodels.Device) (*devicemod
return &found, nil
}

func FindDeviceByAuthToken(coll *mongo.Collection, device *devicemodels.Device) (*devicemodels.Device, *systemmodels.Error) {
func FindDeviceByAuthToken(coll *mongo.Collection, device *devicemodels.Device) (*devicemodels.Device, *apimodels.Error) {

var found devicemodels.Device
err := coll.FindOne(
Expand All @@ -83,7 +83,7 @@ func FindDeviceByAuthToken(coll *mongo.Collection, device *devicemodels.Device)
).Decode(&found)

if err != nil {
return nil, &systemmodels.Error{
return nil, &apimodels.Error{
Status: http.HTTP_STATUS_BAD_REQUEST,
Error: valerror.DEVICE_DOES_NOT_EXIST,
Message: "Device doesn't exists",
Expand All @@ -94,7 +94,7 @@ func FindDeviceByAuthToken(coll *mongo.Collection, device *devicemodels.Device)

}

func DeleteDevice(conn *mongo.Client, device *devicemodels.Device) *systemmodels.Error {
func DeleteDevice(conn *mongo.Client, device *devicemodels.Device) *apimodels.Error {

//check if device exists
existsErr := DeviceExists(conn, device)
Expand All @@ -107,7 +107,7 @@ func DeleteDevice(conn *mongo.Client, device *devicemodels.Device) *systemmodels
_, err := coll.DeleteOne(database.GetDefaultContext(), bson.M{"user": device.User, "address": device.Address, "useragent": device.UserAgent})

if err != nil {
return &systemmodels.Error{
return &apimodels.Error{
Status: http.HTTP_STATUS_INTERNAL_SERVER_ERROR,
Error: valerror.DATABASE_ERROR,
Message: "Error deleting device",
Expand All @@ -117,22 +117,22 @@ func DeleteDevice(conn *mongo.Client, device *devicemodels.Device) *systemmodels
return nil
}

func DeviceExists(conn *mongo.Client, device *devicemodels.Device) *systemmodels.Error {
func DeviceExists(conn *mongo.Client, device *devicemodels.Device) *apimodels.Error {

// check if device exists
coll := conn.Database(database.CurrentDatabase).Collection(database.DEVICE)
obtained, err := FindDevice(coll, device)

if err != nil {
return &systemmodels.Error{
return &apimodels.Error{
Status: http.HTTP_STATUS_BAD_REQUEST,
Error: valerror.DEVICE_DOES_NOT_EXIST,
Message: "Device doesn't exist",
}
}

if obtained == nil {
return &systemmodels.Error{
return &apimodels.Error{
Status: http.HTTP_STATUS_BAD_REQUEST,
Error: valerror.DEVICE_DOES_NOT_EXIST,
Message: "Device doesn't exist",
Expand Down
6 changes: 3 additions & 3 deletions services/notification.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package services

import (
"github.com/akrck02/valhalla-core-sdk/http"
systemmodels "github.com/akrck02/valhalla-core-sdk/models/system"
apimodels "github.com/akrck02/valhalla-core-sdk/models/api"
teammodels "github.com/akrck02/valhalla-core-sdk/models/team"
)

Expand All @@ -11,9 +11,9 @@ type Alert struct {
Message string
}

func AlertTeam(team teammodels.Team) systemmodels.Error {
func AlertTeam(team teammodels.Team) *apimodels.Error {

return systemmodels.Error{
return &apimodels.Error{
Status: http.HTTP_STATUS_OK,
Message: "Ok.",
}
Expand Down
42 changes: 21 additions & 21 deletions services/project/project.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ import (
"github.com/akrck02/valhalla-core-dal/database"
userdal "github.com/akrck02/valhalla-core-dal/services/user"
"github.com/akrck02/valhalla-core-sdk/http"
apimodels "github.com/akrck02/valhalla-core-sdk/models/api"
projectmodels "github.com/akrck02/valhalla-core-sdk/models/project"
systemmodels "github.com/akrck02/valhalla-core-sdk/models/system"
usersmodels "github.com/akrck02/valhalla-core-sdk/models/users"
"github.com/akrck02/valhalla-core-sdk/utils"
"github.com/akrck02/valhalla-core-sdk/valerror"
Expand All @@ -14,11 +14,11 @@ import (
"go.mongodb.org/mongo-driver/mongo"
)

func CreateProject(conn *mongo.Client, project *projectmodels.Project) *systemmodels.Error {
func CreateProject(conn *mongo.Client, project *projectmodels.Project) *apimodels.Error {

// if the project name is empty, return an error
if utils.IsEmpty(project.Name) {
return &systemmodels.Error{
return &apimodels.Error{
Status: http.HTTP_STATUS_BAD_REQUEST,
Error: valerror.EMPTY_PROJECT_NAME,
Message: "Project name cannot be empty",
Expand All @@ -27,7 +27,7 @@ func CreateProject(conn *mongo.Client, project *projectmodels.Project) *systemmo

// if the project description is empty, return an error
if utils.IsEmpty(project.Description) {
return &systemmodels.Error{
return &apimodels.Error{
Status: http.HTTP_STATUS_BAD_REQUEST,
Error: valerror.EMPTY_PROJECT_DESCRIPTION,
Message: "Project description cannot be empty",
Expand All @@ -36,7 +36,7 @@ func CreateProject(conn *mongo.Client, project *projectmodels.Project) *systemmo

// if the project owner is empty, return an error
if utils.IsEmpty(project.Owner) {
return &systemmodels.Error{
return &apimodels.Error{
Status: http.HTTP_STATUS_BAD_REQUEST,
Error: valerror.EMPTY_PROJECT_OWNER,
Message: "Owner cannot be empty",
Expand All @@ -52,7 +52,7 @@ func CreateProject(conn *mongo.Client, project *projectmodels.Project) *systemmo
// convert the owner ID to an object ID
_, parsingError := utils.StringToObjectId(owner.ID)
if parsingError != nil {
return &systemmodels.Error{
return &apimodels.Error{
Status: http.HTTP_STATUS_BAD_REQUEST,
Error: valerror.INVALID_OBJECT_ID,
Message: "Invalid ID",
Expand All @@ -65,7 +65,7 @@ func CreateProject(conn *mongo.Client, project *projectmodels.Project) *systemmo
found := projectNameExists(coll, project.Name, owner.ID)

if found {
return &systemmodels.Error{
return &apimodels.Error{
Status: http.HTTP_STATUS_CONFLICT,
Error: valerror.PROJECT_ALREADY_EXISTS,
Message: "Project already exists",
Expand All @@ -79,15 +79,15 @@ func CreateProject(conn *mongo.Client, project *projectmodels.Project) *systemmo
insertResult, insertError := coll.InsertOne(database.GetDefaultContext(), project)

if insertError != nil {
return &systemmodels.Error{
return &apimodels.Error{
Status: http.HTTP_STATUS_INTERNAL_SERVER_ERROR,
Error: valerror.UNEXPECTED_ERROR,
Message: insertError.Error(),
}
}

if insertResult.InsertedID == nil {
return &systemmodels.Error{
return &apimodels.Error{
Status: http.HTTP_STATUS_INTERNAL_SERVER_ERROR,
Error: valerror.UNEXPECTED_ERROR,
Message: "Project not created",
Expand All @@ -97,14 +97,14 @@ func CreateProject(conn *mongo.Client, project *projectmodels.Project) *systemmo
return nil
}

func EditProject(conn *mongo.Client, project *projectmodels.Project) *systemmodels.Error {
func EditProject(conn *mongo.Client, project *projectmodels.Project) *apimodels.Error {

// Transform team id to object id
// also check if team id is valid
objID, err := utils.StringToObjectId(project.ID)

if err != nil {
return &systemmodels.Error{
return &apimodels.Error{
Status: http.HTTP_STATUS_BAD_REQUEST,
Error: valerror.INVALID_OBJECT_ID,
Message: "Invalid object id",
Expand All @@ -123,7 +123,7 @@ func EditProject(conn *mongo.Client, project *projectmodels.Project) *systemmode

// Check if team was updated
if err != nil {
return &systemmodels.Error{
return &apimodels.Error{
Status: http.HTTP_STATUS_BAD_REQUEST,
Error: valerror.UPDATE_ERROR,
Message: "Could not update team: " + err.Error(),
Expand All @@ -133,14 +133,14 @@ func EditProject(conn *mongo.Client, project *projectmodels.Project) *systemmode
return nil
}

func DeleteProject(conn *mongo.Client, project *projectmodels.Project) *systemmodels.Error {
func DeleteProject(conn *mongo.Client, project *projectmodels.Project) *apimodels.Error {

// Connect database
var client = database.Connect()
defer database.Disconnect(*client)

if utils.IsEmpty(project.Name) {
return &systemmodels.Error{
return &apimodels.Error{
Status: http.HTTP_STATUS_BAD_REQUEST,
Error: valerror.EMPTY_PROJECT_NAME,
Message: "Project name cannot be empty",
Expand All @@ -150,7 +150,7 @@ func DeleteProject(conn *mongo.Client, project *projectmodels.Project) *systemmo
// Check if the project ID is valid
id, parsingError := utils.StringToObjectId(project.ID)
if parsingError != nil {
return &systemmodels.Error{
return &apimodels.Error{
Status: http.HTTP_STATUS_BAD_REQUEST,
Error: valerror.INVALID_OBJECT_ID,
Message: "Invalid ID",
Expand All @@ -163,7 +163,7 @@ func DeleteProject(conn *mongo.Client, project *projectmodels.Project) *systemmo

// If an error occurs, return the error
if err != nil {
return &systemmodels.Error{
return &apimodels.Error{
Status: http.HTTP_STATUS_INTERNAL_SERVER_ERROR,
Error: valerror.PROJECT_NOT_DELETED,
Message: "Project not deleted",
Expand All @@ -172,7 +172,7 @@ func DeleteProject(conn *mongo.Client, project *projectmodels.Project) *systemmo

// If the project is not found, return an error
if deleteResult.DeletedCount == 0 {
return &systemmodels.Error{
return &apimodels.Error{
Status: http.HTTP_STATUS_NOT_FOUND,
Error: valerror.PROJECT_NOT_FOUND,
Message: "Project not found",
Expand All @@ -182,7 +182,7 @@ func DeleteProject(conn *mongo.Client, project *projectmodels.Project) *systemmo
return nil
}

func GetProject(conn *mongo.Client, project *projectmodels.Project) (*projectmodels.Project, *systemmodels.Error) {
func GetProject(conn *mongo.Client, project *projectmodels.Project) (*projectmodels.Project, *apimodels.Error) {

// Connect database
var client = database.Connect()
Expand All @@ -191,7 +191,7 @@ func GetProject(conn *mongo.Client, project *projectmodels.Project) (*projectmod
// Check if the project ID is valid
projectIdObject, parsingError := utils.StringToObjectId(project.ID)
if parsingError != nil {
return nil, &systemmodels.Error{
return nil, &apimodels.Error{
Status: http.HTTP_STATUS_BAD_REQUEST,
Error: valerror.INVALID_OBJECT_ID,
Message: "Invalid ID",
Expand All @@ -205,7 +205,7 @@ func GetProject(conn *mongo.Client, project *projectmodels.Project) (*projectmod

// If an error occurs, return the error
if err != nil {
return nil, &systemmodels.Error{
return nil, &apimodels.Error{
Status: http.HTTP_STATUS_INTERNAL_SERVER_ERROR,
Error: valerror.UNEXPECTED_ERROR,
Message: err.Error(),
Expand All @@ -214,7 +214,7 @@ func GetProject(conn *mongo.Client, project *projectmodels.Project) (*projectmod

// If the project is not found, return an error
if utils.IsEmpty(found.ID) {
return nil, &systemmodels.Error{
return nil, &apimodels.Error{
Status: http.HTTP_STATUS_NOT_FOUND,
Error: valerror.PROJECT_NOT_FOUND,
Message: "Project not found",
Expand Down
10 changes: 5 additions & 5 deletions services/role/role.go
Original file line number Diff line number Diff line change
@@ -1,26 +1,26 @@
package roledal

import (
apimodels "github.com/akrck02/valhalla-core-sdk/models/api"
rolemodels "github.com/akrck02/valhalla-core-sdk/models/role"
systemmodels "github.com/akrck02/valhalla-core-sdk/models/system"
)

func CreateRole(user rolemodels.Role) *systemmodels.Error {
func CreateRole(user rolemodels.Role) *apimodels.Error {

return nil
}

func DeleteRole(user rolemodels.Role) *systemmodels.Error {
func DeleteRole(user rolemodels.Role) *apimodels.Error {

return nil
}

func UpdateRole(user rolemodels.Role) *systemmodels.Error {
func UpdateRole(user rolemodels.Role) *apimodels.Error {

return nil
}

func GetRole(user rolemodels.Role) *systemmodels.Error {
func GetRole(user rolemodels.Role) *apimodels.Error {

return nil
}
Loading
Loading