finclip-app-manager/infrastructure/db/repo/mongo/app_build_info.go

174 lines
5.5 KiB
Go
Raw Normal View History

2023-10-31 14:07:26 +08:00
package mongo
import (
"context"
"finclip-app-manager/domain/entity"
"finclip-app-manager/domain/repository"
"finclip-app-manager/infrastructure/db/entity/mongo"
mgo "gitlab.finogeeks.club/finclip-backend-v2/finclip-mgo"
"gitlab.finogeeks.club/finclip-backend-v2/finclip-mgo/bson"
)
var _ repository.IAppBuildInfoRepo = new(AppBuildInfoMongoRepo)
type AppBuildInfoMongoRepo struct {
}
func NewAppBuildInfoMongoRepo() *AppBuildInfoMongoRepo {
return &AppBuildInfoMongoRepo{}
}
func (a *AppBuildInfoMongoRepo) Insert(ctx context.Context, item entity.AppBuildInfo) error {
mgoInfo := tr.CovertAppBuildInfoToMgo(&item)
return appBuildInfoTable.Insert(ctx, mgoInfo)
}
func (a *AppBuildInfoMongoRepo) GetInfoById(ctx context.Context, id string) (*entity.AppBuildInfo, error) {
filter := bson.M{"id": id}
item := mongo.AppBuildInfo{}
err := appBuildInfoTable.GetOne(ctx, filter, &item)
if err != nil {
return nil, err
}
return tr.CovertAppBuildInfoToEntity(&item), nil
}
func (a *AppBuildInfoMongoRepo) GetInfoByBuildInfoId(ctx context.Context, buildInfoId string) (*entity.AppBuildInfo, error) {
filter := bson.M{"buildInfoId": buildInfoId}
item := mongo.AppBuildInfo{}
err := appBuildInfoTable.GetOne(ctx, filter, &item)
if err != nil {
return nil, err
}
return tr.CovertAppBuildInfoToEntity(&item), nil
}
func (a *AppBuildInfoMongoRepo) GetInfoByBuildId(ctx context.Context, id string) (*entity.AppBuildInfo, error) {
filter := bson.M{"buildInfoId": id}
item := mongo.AppBuildInfo{}
err := appBuildInfoTable.GetOne(ctx, filter, &item)
if err != nil {
return nil, err
}
return tr.CovertAppBuildInfoToEntity(&item), nil
}
func (a *AppBuildInfoMongoRepo) GetLatestInfoByAppId(ctx context.Context, appId string) (*entity.AppBuildInfo, error) {
filter := bson.M{"appId": appId}
item := mongo.AppBuildInfo{}
err := appBuildInfoTable.GetSortOne(ctx, filter, []string{"-created"}, &item)
if err != nil {
return nil, err
}
return tr.CovertAppBuildInfoToEntity(&item), nil
}
func (a *AppBuildInfoMongoRepo) GetTrialInfoByAppId(ctx context.Context, appId string) (*entity.AppBuildInfo, error) {
filter := bson.M{"appId": appId, "source": entity.APP_BUILD_SOURCE_TRIAL}
item := mongo.AppBuildInfo{}
err := appBuildInfoTable.GetOne(ctx, filter, &item)
if err != nil {
return nil, err
}
return tr.CovertAppBuildInfoToEntity(&item), nil
}
func (a *AppBuildInfoMongoRepo) GetTrialInfoById(ctx context.Context, id string) (*entity.AppBuildInfo, error) {
filter := bson.M{"id": id, "source": entity.APP_BUILD_SOURCE_TRIAL}
item := mongo.AppBuildInfo{}
err := appBuildInfoTable.GetOne(ctx, filter, &item)
if err != nil {
return nil, err
}
return tr.CovertAppBuildInfoToEntity(&item), nil
}
func (a *AppBuildInfoMongoRepo) AddTrial(ctx context.Context, id string) error {
filter := bson.M{"id": id}
update := bson.M{"$set": bson.M{"source": entity.APP_BUILD_SOURCE_TRIAL}}
return appBuildInfoTable.UpdateOne(ctx, filter, update)
}
func (a *AppBuildInfoMongoRepo) CancelTrial(ctx context.Context, id string) error {
filter := bson.M{"id": id}
update := bson.M{"$set": bson.M{"source": entity.APP_BUILD_SOURCE_BUILD, "startParams.path_and_query": ""}}
return appBuildInfoTable.UpdateOne(ctx, filter, update)
}
func (a *AppBuildInfoMongoRepo) UpdateTrialStartParams(ctx context.Context, id string, params entity.AppStartParams) error {
filter := bson.M{"id": id}
update := bson.M{"$set": bson.M{"startParams.path_and_query": params.PathAndQuery}}
return appBuildInfoTable.UpdateOne(ctx, filter, update)
}
func (a *AppBuildInfoMongoRepo) UpdateTrialPath(ctx context.Context, id, path string) error {
filter := bson.M{"id": id}
update := bson.M{"$set": bson.M{"path": path}}
return appBuildInfoTable.UpdateOne(ctx, filter, update)
}
func (a *AppBuildInfoMongoRepo) UpdateOneStatus(ctx context.Context, id string, status bool) error {
filter := bson.M{"id": id}
update := bson.M{"$set": bson.M{"status": status}}
return appBuildInfoTable.UpdateOne(ctx, filter, update)
}
func (a *AppBuildInfoMongoRepo) GetList(ctx context.Context, appId string, pageNo, pageSize int) (int64, []entity.AppBuildInfo, error) {
list := make([]mongo.AppBuildInfo, 0)
filter := bson.M{"appId": appId}
total, err := appBuildInfoTable.GetSome(ctx, filter, []string{"-created"}, pageSize, pageNo, &list)
if err != nil {
return 0, nil, err
}
result := make([]entity.AppBuildInfo, 0)
for _, v := range list {
temp := v
result = append(result, *tr.CovertAppBuildInfoToEntity(&temp))
}
return int64(total), result, nil
}
func (a *AppBuildInfoMongoRepo) GetAll(ctx context.Context) ([]entity.AppBuildInfo, error) {
list := make([]mongo.AppBuildInfo, 0)
_, err := appBuildInfoTable.GetAll(ctx, bson.M{}, []string{}, &list)
if err != nil {
return nil, err
}
result := make([]entity.AppBuildInfo, 0)
for _, v := range list {
temp := v
result = append(result, *tr.CovertAppBuildInfoToEntity(&temp))
}
return result, nil
}
func (a *AppBuildInfoMongoRepo) GetAppBuilds(ctx context.Context, groupID, appId string, pageSize, pageNo int) (int64, []entity.AppBuildInfo, error) {
list := make([]mongo.AppBuildInfo, 0)
filter := bson.M{"appId": appId, "groupId": groupID}
total, err := appBuildInfoTable.GetSome(ctx, filter, []string{"-created"}, pageSize, pageNo, &list)
if err != nil {
return 0, nil, err
}
result := make([]entity.AppBuildInfo, 0)
for _, v := range list {
temp := v
result = append(result, *tr.CovertAppBuildInfoToEntity(&temp))
}
return int64(total), result, nil
}
func (a *AppBuildInfoMongoRepo) NotFound(err error) bool {
return err == mgo.ErrNotFound
}