Fixed log service bugs with importing and character list not updating.
the build was successful

This commit is contained in:
2019-08-14 11:28:02 +02:00
parent c0687d76ad
commit 51b2c9bfe0
10 changed files with 32 additions and 417 deletions
-5
View File
@@ -66,11 +66,6 @@ func (s *ChannelService) Create(ctx context.Context, name string, logged, hub bo
}
func (s *ChannelService) Ensure(ctx context.Context, name string) (*models.Channel, error) {
err := auth.CheckPermission(ctx, "add", &models.Channel{})
if err != nil {
return nil, err
}
channel, err := s.channels.Find(ctx, name)
if err != nil {
channel, err = s.channels.Insert(ctx, models.Channel{
+31 -12
View File
@@ -97,16 +97,16 @@ func (s *LogService) Import(ctx context.Context, importer models.LogImporter, da
results := make([]*models.Log, 0, 8)
eventName := ""
if channel, err := channels.FindName(channelName); err != nil {
eventName = channel.EventName
}
_, err := s.channelService.Ensure(ctx, channelName)
if err != nil {
return nil, err
}
eventName := ""
if channel, err := channels.FindName(channelName); err == nil {
eventName = channel.EventName
}
date = date.In(tz)
switch importer {
@@ -134,6 +134,8 @@ func (s *LogService) Import(ctx context.Context, importer models.LogImporter, da
posts, err := s.posts.InsertMany(ctx, parsed.Posts...)
if err != nil {
_ = s.logs.Delete(ctx, *log)
return nil, err
}
@@ -163,6 +165,8 @@ func (s *LogService) Import(ctx context.Context, importer models.LogImporter, da
posts, err := s.posts.InsertMany(ctx, parsed.Posts...)
if err != nil {
_ = s.logs.Delete(ctx, *log)
return nil, err
}
@@ -204,13 +208,13 @@ func (s *LogService) AddPost(ctx context.Context, logId string, time time.Time,
return nil, errors.New("kind, nick and time must be non-empty")
}
log, err := s.logs.Find(ctx, logId)
l, err := s.logs.Find(ctx, logId)
if err != nil {
return nil, err
}
post := &models.Post{
LogID: log.ShortID,
LogID: l.ShortID,
Kind: kind,
Nick: nick,
Text: text,
@@ -226,7 +230,12 @@ func (s *LogService) AddPost(ctx context.Context, logId string, time time.Time,
return nil, err
}
s.changeService.Submit(ctx, models.ChangeModelPost, "add", true, changekeys.Many(log, post), log, post)
err = s.refreshLogCharacters(ctx, *l, nil)
if err != nil {
log.Printf("Failed to update characters in log %s: %s", l.ID, err)
}
s.changeService.Submit(ctx, models.ChangeModelPost, "add", true, changekeys.Many(l, post), post)
return post, nil
}
@@ -251,12 +260,17 @@ func (s *LogService) EditPost(ctx context.Context, id string, update models.Post
}
go func() {
log, err := s.logs.Find(context.Background(), post.LogID)
l, err := s.logs.Find(context.Background(), post.LogID)
if err != nil {
return
}
s.changeService.Submit(ctx, models.ChangeModelPost, "edit", true, changekeys.Many(log, post), post)
err = s.refreshLogCharacters(ctx, *l, nil)
if err != nil {
log.Printf("Failed to update characters in log %s: %s", l.ID, err)
}
s.changeService.Submit(ctx, models.ChangeModelPost, "edit", true, changekeys.Many(l, post), post)
}()
return post, nil
@@ -313,12 +327,17 @@ func (s *LogService) DeletePost(ctx context.Context, id string) (*models.Post, e
}
go func() {
log, err := s.logs.Find(context.Background(), post.LogID)
l, err := s.logs.Find(context.Background(), post.LogID)
if err != nil {
return
}
s.changeService.Submit(ctx, models.ChangeModelPost, "remove", true, changekeys.Many(log, post), post)
err = s.refreshLogCharacters(ctx, *l, nil)
if err != nil {
log.Printf("Failed to update characters in log %s: %s", l.ID, err)
}
s.changeService.Submit(ctx, models.ChangeModelPost, "remove", true, changekeys.Many(l, post), post)
}()
return post, nil