Skip to content

Commit

Permalink
[merge] pull request #39 from akrck02/feature-native-http
Browse files Browse the repository at this point in the history
Feature native http
  • Loading branch information
akrck02 authored Jul 20, 2024
2 parents 08c66fe + 6ed0a9d commit 4656eb8
Show file tree
Hide file tree
Showing 8 changed files with 157 additions and 157 deletions.
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

0 comments on commit 4656eb8

Please sign in to comment.