diff --git a/core/api.go b/core/api.go index bc7e060..6c3fc1f 100644 --- a/core/api.go +++ b/core/api.go @@ -303,6 +303,12 @@ func (caller apiCaller) serviceAPI(w http.ResponseWriter, r *http.Request) error return err } + if len(service.ServerApiTokens) == 0 { + service.ServerApiTokens = []primitive.ObjectID{ + primitive.NewObjectIDFromTimestamp(time.Now().Add(-time.Hour * 24 * 30 * 465)), + } + } + filter := bson.M{"_id": service.Id} success, _, err := mg.mongoClient.Update(CollectionService, filter, bson.M{ "$set": &service, @@ -335,7 +341,7 @@ func (caller apiCaller) maintenanceAPI(w http.ResponseWriter, r *http.Request) e } _, _, err := mg.mongoClient.Update(CollectionService, bson.M{ - "_Id": mg.service().Id, + "_id": mg.service().Id, }, bson.M{ "$set": bson.M{"divisions": divs}, }, options.Update().SetUpsert(false)) diff --git a/core/watch.go b/core/watch.go index 1e85173..06ecacf 100644 --- a/core/watch.go +++ b/core/watch.go @@ -286,9 +286,13 @@ func (mg *Maingate) watchServiceCollection(parentctx context.Context, serveMux * if err := data.Service.prepare(mg); err != nil { logger.Error("service cannot be prepared :", data.Service, err) } else { + // 내가 임시로 가지고 있던 서비스일 수 있다. + already := mg.service().Id == data.Service.Id logger.Println("service is on the board! :", data.Service) atomic.StorePointer(&mg.serviceptr, unsafe.Pointer(data.Service)) - serveMux.Handle(common.MakeHttpHandlerPattern(prefix, data.Service.ServiceCode, "/"), mg.service()) + if !already { + serveMux.Handle(common.MakeHttpHandlerPattern(prefix, data.Service.ServiceCode, "/"), mg.service()) + } } case "replace":