Skip to content

Commit

Permalink
feat: Get All Inactive User API Added
Browse files Browse the repository at this point in the history
  • Loading branch information
keyurboss committed Dec 18, 2024
1 parent 3b4b59c commit c116473
Show file tree
Hide file tree
Showing 6 changed files with 48 additions and 0 deletions.
21 changes: 21 additions & 0 deletions src/apis/data/trade-user/get-in-active-trade-user.api.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package tradeuser

import (
"github.com/gofiber/fiber/v2"
"github.com/rpsoftech/bullion-server/src/interfaces"
"github.com/rpsoftech/bullion-server/src/services"
)

func apiGetInActiveTradeUsers(c *fiber.Ctx) error {
bullionId, err := interfaces.ExtractBullionIdFromCtx(c)
if err != nil {
return err
}
entity, err := services.TradeUserService.FindAndReturnAllInActiveTradeUsers(bullionId)
if err != nil {
return err
} else {
return c.JSON(entity)
}

}
1 change: 1 addition & 0 deletions src/apis/data/trade-user/index.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import (

func AddTradeUserAPIs(router fiber.Router) {
adminGroup := router.Use(middleware.AllowOnlyBigAdmins.Validate)
adminGroup.Get("/getInActiveTradeUsers", apiGetInActiveTradeUsers)
adminGroup.Get("/getTradeUser", apiGetTradeUserDetails)
adminGroup.Patch("/updateTradeUserDetails", apiUpdateTradeUserDetails)
adminGroup.Patch("/updateTradeUserStatus", apiChangeTradeUserStatus)
Expand Down
5 changes: 5 additions & 0 deletions src/interfaces/base-entity.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,11 @@ type BaseEntity struct {
// return json.Marshal(base)
// }

func (b *BaseEntity) RevertTimeStamps() *BaseEntity {
b.CreatedAt = b.CreatedAtExported
b.ModifiedAt = b.ModifiedAtExported
return b
}
func (b *BaseEntity) AddTimeStamps() *BaseEntity {
b.CreatedAtExported = b.CreatedAt
b.ModifiedAtExported = b.ModifiedAt
Expand Down
2 changes: 2 additions & 0 deletions src/mongodb/repos/bank-rate-calc.repo.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ func init() {
}

func (repo *BankRateCalcRepoStruct) cacheDataToRedis(entity *interfaces.BankRateCalcEntity) {
entity.AddTimeStamps()
if entityStringBytes, err := json.Marshal(entity); err == nil {
entityString := string(entityStringBytes)
repo.redis.SetStringDataWithExpiry(fmt.Sprintf("%s/%s", bankRateRedisCollection, entity.BullionId), entityString, time.Duration(24)*time.Hour)
Expand Down Expand Up @@ -73,6 +74,7 @@ func (repo *BankRateCalcRepoStruct) FindOneByBullionId(id string) (*interfaces.B
result := new(interfaces.BankRateCalcEntity)
if redisData := repo.redis.GetStringData(fmt.Sprintf("%s/%s", bankRateRedisCollection, id)); redisData != "" {
if err := json.Unmarshal([]byte(redisData), result); err == nil {
result.RevertTimeStamps()
return result, err
}
}
Expand Down
16 changes: 16 additions & 0 deletions src/mongodb/repos/trade-user.repo.go
Original file line number Diff line number Diff line change
Expand Up @@ -133,10 +133,25 @@ func (repo *TradeUserRepoStruct) findByFilter(filter *mongoDbFilter) (*[]interfa
return &result, err
}

func (repo *TradeUserRepoStruct) FindAllInActiveUser(bullionId string) (*[]interfaces.TradeUserEntity, error) {
return repo.findByFilter(&mongoDbFilter{
conditions: &bson.D{
{
Key: "$and",
Value: bson.A{
bson.D{{Key: "bullionId", Value: bullionId}},
bson.D{{Key: "isActive", Value: false}},
},
},
},
})
}

func (repo *TradeUserRepoStruct) FindOne(id string) (*interfaces.TradeUserEntity, error) {
result := new(interfaces.TradeUserEntity)
if redisData := repo.redis.GetStringData(fmt.Sprintf("tradeUser/%s", id)); redisData != "" {
if err := json.Unmarshal([]byte(redisData), result); err == nil {
result.RevertTimeStamps()
return result, err
}
}
Expand Down Expand Up @@ -167,6 +182,7 @@ func (repo *TradeUserRepoStruct) FindOne(id string) (*interfaces.TradeUserEntity
}

func (repo *TradeUserRepoStruct) cacheDataToRedis(entity *interfaces.TradeUserEntity) {
entity.AddTimeStamps()
if entityStringBytes, err := json.Marshal(entity); err == nil {
entityString := string(entityStringBytes)
repo.redis.SetStringDataWithExpiry(fmt.Sprintf("tradeUser/%s", entity.ID), entityString, time.Duration(24)*time.Hour)
Expand Down
3 changes: 3 additions & 0 deletions src/services/trade-user.service.go
Original file line number Diff line number Diff line change
Expand Up @@ -327,6 +327,9 @@ func (service *tradeUserServiceStruct) generateTokensForTradeUserWithPasswordMat
return service.generateTokensForTradeUser(tradeUser)
}

func (service *tradeUserServiceStruct) FindAndReturnAllInActiveTradeUsers(bullionId string) (*[]interfaces.TradeUserEntity, error) {
return service.tradeUserRepo.FindAllInActiveUser(bullionId)
}
func (service *tradeUserServiceStruct) FindOneUserById(id string) (*interfaces.TradeUserEntity, error) {
return service.tradeUserRepo.FindOne(id)
}
Expand Down

0 comments on commit c116473

Please sign in to comment.