public class OrganizationQuery {
private static final OrganizationQuery NO_FILTER = newOrganizationQueryBuilder().build();
private final Set<String> keys;
+ @Nullable
private final Integer userId;
private final boolean onlyTeam;
private final boolean onlyPersonal;
private final boolean withAnalyses;
+ @Nullable
+ private final Long analyzedAfter;
private OrganizationQuery(Builder builder) {
this.keys = builder.keys;
throw new IllegalArgumentException("Only one of onlyPersonal and onlyTeam can be true");
}
this.withAnalyses = builder.withAnalyses;
+ this.analyzedAfter = builder.analyzedAfter;
}
@CheckForNull
return withAnalyses;
}
+ @CheckForNull
+ public Long getAnalyzedAfter() {
+ return analyzedAfter;
+ }
+
public static OrganizationQuery returnAll() {
return NO_FILTER;
}
private boolean onlyTeam = false;
private boolean onlyPersonal = false;
private boolean withAnalyses = false;
+ @Nullable
+ private Long analyzedAfter;
private Builder() {
// use static factory method
return this;
}
+ public Builder setAnalyzedAfter(long l) {
+ this.analyzedAfter = l;
+ return this;
+ }
+
public OrganizationQuery build() {
return new OrganizationQuery(this);
}
and s.islast = ${_true}
)
</if>
+ <if test="query.analyzedAfter != null">
+ and exists(
+ select 1
+ from snapshots s
+ inner join projects p on p.uuid = s.component_uuid
+ where p.organization_uuid = org.uuid
+ and p.enabled = ${_true}
+ and s.islast = ${_true}
+ and s.created_at >= #{query.analyzedAfter,jdbcType=BIGINT}
+ )
+ </if>
</where>
</sql>