Skip to content

Commit

Permalink
fix: all previously published moments show as under review state afte…
Browse files Browse the repository at this point in the history
…r upgrade (#102)
  • Loading branch information
guqing committed May 7, 2024
1 parent d842fb4 commit 7389cfb
Showing 1 changed file with 49 additions and 0 deletions.
49 changes: 49 additions & 0 deletions src/main/java/run/halo/moments/MomentMigration.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
package run.halo.moments;

import static run.halo.app.extension.index.query.QueryFactory.and;
import static run.halo.app.extension.index.query.QueryFactory.isNull;

import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
import run.halo.app.extension.DefaultExtensionMatcher;
import run.halo.app.extension.ExtensionClient;
import run.halo.app.extension.controller.Controller;
import run.halo.app.extension.controller.ControllerBuilder;
import run.halo.app.extension.controller.Reconciler;
import run.halo.app.extension.router.selector.FieldSelector;

/**
* <p>Migration for 1.16.0, populate approved attribute for all moments before 1.16.0.</p>
* <p>Note That: This migration is only for the moments that approved attribute is null.</p>
*/
@Component
@RequiredArgsConstructor
public class MomentMigration implements Reconciler<Reconciler.Request> {

private final ExtensionClient client;

@Override
public Result reconcile(Request request) {
client.fetch(Moment.class, request.name()).ifPresent(moment -> {
moment.getSpec().setApproved(true);
moment.getSpec().setApprovedTime(moment.getMetadata().getCreationTimestamp());
client.update(moment);
});
return Result.doNotRetry();
}

@Override
public Controller setupWith(ControllerBuilder builder) {
final var moment = new Moment();
return builder
.extension(moment)
.onAddMatcher(DefaultExtensionMatcher.builder(client, moment.groupVersionKind())
.fieldSelector(FieldSelector.of(
and(isNull("spec.approved"),
isNull("metadata.deletionTimestamp"))
))
.build()
)
.build();
}
}

0 comments on commit 7389cfb

Please sign in to comment.