Parcourir la source

Merge branch 'master' into kris/refactor_redis_service

pull/11/head
jonathan il y a 4 ans
Parent
révision
55cb5252dd
4 fichiers modifiés avec 16 ajouts et 10 suppressions
  1. +2
    -6
      wizard-common/src/main/java/org/cobbzilla/wizard/auth/LoginRequest.java
  2. +7
    -1
      wizard-common/src/main/java/org/cobbzilla/wizard/model/entityconfig/EntityFieldReference.java
  3. +1
    -1
      wizard-common/src/main/java/org/cobbzilla/wizard/model/entityconfig/EntityReferences.java
  4. +6
    -2
      wizard-server/src/main/java/org/cobbzilla/wizard/server/config/PgRestServerConfiguration.java

+ 2
- 6
wizard-common/src/main/java/org/cobbzilla/wizard/auth/LoginRequest.java Voir le fichier

@@ -32,10 +32,8 @@ public class LoginRequest {
@Getter @Setter @JsonProperty private String totpToken;
@JsonIgnore public boolean hasTotpToken() { return !empty(totpToken); }

@Getter @Setter private String deviceId;
@JsonIgnore public boolean hasDevice () { return !empty(deviceId); }

@Getter @Setter private String deviceName;
@Getter @Setter private String device;
@JsonIgnore public boolean hasDevice () { return !empty(device); }

// optional - server-side resource can fill this in for other server-side code to use
@JsonIgnore @Getter @Setter private String userAgent;
@@ -44,7 +42,5 @@ public class LoginRequest {
return "{name="+getName()+", password="+mask(password)+", totpToken="+mask(totpToken)+", device="+getDevice()+"}";
}

@JsonIgnore public String getDevice() { return hasDevice() ? deviceId + " ("+deviceName+")" : "NOT-SET"; }

public String mask(String value) { return empty(value) ? "NOT-SET" : "SET"; }
}

+ 7
- 1
wizard-common/src/main/java/org/cobbzilla/wizard/model/entityconfig/EntityFieldReference.java Voir le fichier

@@ -2,6 +2,7 @@ package org.cobbzilla.wizard.model.entityconfig;

import lombok.*;

import static org.cobbzilla.util.daemon.ZillaRuntime.bool;
import static org.cobbzilla.util.daemon.ZillaRuntime.empty;

/**
@@ -11,9 +12,10 @@ import static org.cobbzilla.util.daemon.ZillaRuntime.empty;
@NoArgsConstructor @EqualsAndHashCode(of={"entity", "field"}) @ToString(of={"entity", "field"})
public class EntityFieldReference {

public EntityFieldReference (String entity, String field) {
public EntityFieldReference (String entity, String field, Boolean cascade) {
this.entity = entity;
this.field = field;
this.cascade = cascade;
}

/** A special value that can be used by child entities to indicate that the lexically enclosing entity is their parent. */
@@ -36,4 +38,8 @@ public class EntityFieldReference {
*/
@Getter @Setter private String finder;

/** Should a deletion of an entity cascade to the entity referenced? */
@Getter @Setter private Boolean cascade;
public boolean cascade() { return bool(cascade); }

}

+ 1
- 1
wizard-common/src/main/java/org/cobbzilla/wizard/model/entityconfig/EntityReferences.java Voir le fichier

@@ -85,7 +85,7 @@ public class EntityReferences {
Arrays.stream(dependencyOrParent.getDeclaredFields())
.filter(FIELD_HAS_FK)
.filter(f -> f.getAnnotation(ECForeignKey.class).entity().equals(entityClass))
.forEach(f -> refs.add(new EntityFieldReference(dependency.getName(), f.getName())));
.forEach(f -> refs.add(new EntityFieldReference(dependency.getName(), f.getName(), f.getAnnotation(ECForeignKey.class).cascade())));
refs.addAll(getDependencyRefs(entityClass, dependency, dependencyOrParent.getSuperclass(), refs));
return refs;
}


+ 6
- 2
wizard-server/src/main/java/org/cobbzilla/wizard/server/config/PgRestServerConfiguration.java Voir le fichier

@@ -347,12 +347,12 @@ public class PgRestServerConfiguration extends RestServerConfiguration implement
return reversed;
}

private Map<Class<? extends Identifiable>, List<Class<? extends Identifiable>>> dependencyCache = new ConcurrentHashMap<>();
private final Map<Class<? extends Identifiable>, List<Class<? extends Identifiable>>> dependencyCache = new ConcurrentHashMap<>();
public List<Class<? extends Identifiable>> getDependencies (Class<? extends Identifiable> entityClass) {
return dependencyCache.computeIfAbsent(entityClass, c -> getDependentEntities(entityClass, getEntityClassesReverse()));
}

private Map<Class<? extends Identifiable>, Collection<EntityFieldReference>> dependencyDAOCache = new ConcurrentHashMap<>();
private final Map<Class<? extends Identifiable>, Collection<EntityFieldReference>> dependencyDAOCache = new ConcurrentHashMap<>();
public Collection<EntityFieldReference> dependencyRefs(Class<? extends Identifiable> entityClass) {
return dependencyDAOCache.computeIfAbsent(entityClass, c -> getDependencyRefs(c, getDependencies(c)));
}
@@ -364,6 +364,10 @@ public class PgRestServerConfiguration extends RestServerConfiguration implement
final Collection<String> excludeDepFields) {
dependencyRefs(thing.getClass()).forEach(
dep -> {
if (!dep.cascade()) {
log.debug("deleteDependencies("+thing+"): excluding due to cascade=false: "+dep);
return;
}
if (excludeDepClasses != null && excludeDepClasses.stream().anyMatch(depClass -> depClass.getName().equals(dep.getEntity()))) {
log.debug("deleteDependencies("+thing+"): excluding by dep class: "+dep);
return;


Chargement…
Annuler
Enregistrer