diff --git a/Cargo.lock b/Cargo.lock index d0c2755..d67c30a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -68,13 +68,13 @@ checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" [[package]] name = "async-nats" -version = "0.42.0" +version = "0.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f6da6d49a956424ca4e28fe93656f790d748b469eaccbc7488fec545315180" +checksum = "351fc678084ed17ee61a56285eda9443b10452ed5ea611a35d06b28000bf07fd" dependencies = [ "base64 0.22.1", "bytes", - "futures", + "futures-util", "memchr", "nkeys", "nuid", @@ -95,6 +95,7 @@ dependencies = [ "time", "tokio", "tokio-rustls", + "tokio-stream", "tokio-util", "tokio-websockets", "tracing", @@ -1522,9 +1523,9 @@ dependencies = [ [[package]] name = "rbx_asset" -version = "0.4.10" +version = "0.5.0" source = "sparse+https://git.itzana.me/api/packages/strafesnet/cargo/" -checksum = "a711a8c43b4bbcd3c72832e51a680e407b3a062e1ddc66cb90e57b86c0e65f80" +checksum = "ec9ba978afc1d204d49e01691bcf65dfe84f9d7242307cf2cc61e28ba994ae8e" dependencies = [ "bytes", "chrono", diff --git a/pkg/service/maps.go b/pkg/service/maps.go index cdf33b7..3365988 100644 --- a/pkg/service/maps.go +++ b/pkg/service/maps.go @@ -2,6 +2,7 @@ package service import ( "context" + "time" "git.itzana.me/strafesnet/go-grpc/maps" "git.itzana.me/strafesnet/maps-service/pkg/datastore" @@ -26,7 +27,7 @@ func (update MapUpdate) SetGameID(game_id uint32) { datastore.OptionalMap(update).Add("game_id", game_id) } func (update MapUpdate) SetDate(date int64) { - datastore.OptionalMap(update).Add("date", date) + datastore.OptionalMap(update).Add("date", time.Unix(date, 0)) } func (update MapUpdate) SetSubmitter(submitter uint64) { datastore.OptionalMap(update).Add("submitter", submitter) diff --git a/pkg/web_api/submissions.go b/pkg/web_api/submissions.go index 890ed5a..b83ce36 100644 --- a/pkg/web_api/submissions.go +++ b/pkg/web_api/submissions.go @@ -1065,6 +1065,9 @@ func (svc *Service) ReleaseSubmissions(ctx context.Context, request []api.Releas return nil, err } + // the submissions are not ordered the same as the idList! + id_to_submission := make(map[int64]*model.Submission, len(submissions)) + // check each submission to make sure it is ready to release for _,submission := range submissions{ if submission.StatusID != model.SubmissionStatusUploaded{ @@ -1073,14 +1076,16 @@ func (svc *Service) ReleaseSubmissions(ctx context.Context, request []api.Releas if submission.UploadedAssetID == 0{ return nil, ErrReleaseNoUploadedAssetID } + id_to_submission[submission.ID] = &submission } // construct batch release nats message release_submissions := make([]model.ReleaseSubmissionRequest, len(request)) - for i, submission := range submissions { + for i, release_info := range request { // from request - release_submissions[i].ReleaseDate = request[i].Date.Unix() - release_submissions[i].SubmissionID = request[i].SubmissionID + release_submissions[i].ReleaseDate = release_info.Date.Unix() + release_submissions[i].SubmissionID = release_info.SubmissionID + submission := id_to_submission[release_info.SubmissionID] // from submission release_submissions[i].ModelID = submission.ValidatedAssetID release_submissions[i].ModelVersion = submission.ValidatedAssetVersion