import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
+import org.springframework.http.HttpStatus;
import org.springframework.util.FileSystemUtils;
import reactor.core.publisher.Flux;
}
public synchronized void put(SubscriptionInfo subscription) {
- allSubscriptions.put(subscription.getId(), subscription);
- subscriptionsByOwner.put(subscription.owner, subscription.id, subscription);
+ doPut(subscription);
storeInFile(subscription);
logger.debug("Added type status subscription {}", subscription.id);
}
public synchronized SubscriptionInfo getSubscription(String id) throws ServiceException {
SubscriptionInfo p = allSubscriptions.get(id);
if (p == null) {
- throw new ServiceException("Could not find Information subscription: " + id);
+ throw new ServiceException("Could not find Information subscription: " + id, HttpStatus.NOT_FOUND);
}
return p;
}
private Mono<String> error() {
return Mono.error(new ServiceException(
- "No notifyTypeRegistered handler found for interface version " + apiVersion));
+ "No notifyTypeRegistered handler found for interface version " + apiVersion,
+ HttpStatus.INTERNAL_SERVER_ERROR));
}
};
}
for (File file : dbDir.listFiles()) {
String json = Files.readString(file.toPath());
SubscriptionInfo subscription = gson.fromJson(json, SubscriptionInfo.class);
- this.allSubscriptions.put(subscription.getId(), subscription);
+ doPut(subscription);
}
}
+ private void doPut(SubscriptionInfo subscription) {
+ allSubscriptions.put(subscription.getId(), subscription);
+ subscriptionsByOwner.put(subscription.owner, subscription.id, subscription);
+ }
+
private File getFile(SubscriptionInfo subscription) {
return getPath(subscription).toFile();
}