Jabit-Server/src/main/java/ch/dissem/bitmessage/server/JabitServerApplication.java

62 lines
2.3 KiB
Java

package ch.dissem.bitmessage.server;
import ch.dissem.bitmessage.BitmessageContext;
import ch.dissem.bitmessage.entity.BitmessageAddress;
import ch.dissem.bitmessage.entity.Plaintext;
import ch.dissem.bitmessage.networking.DefaultNetworkHandler;
import ch.dissem.bitmessage.ports.MemoryNodeRegistry;
import ch.dissem.bitmessage.repository.JdbcAddressRepository;
import ch.dissem.bitmessage.repository.JdbcConfig;
import ch.dissem.bitmessage.repository.JdbcInventory;
import ch.dissem.bitmessage.repository.JdbcMessageRepository;
import ch.dissem.bitmessage.security.bc.BouncySecurity;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@EnableAutoConfiguration
public class JabitServerApplication {
private BitmessageContext ctx;
@RequestMapping("status")
public String status() {
return ctx.status().toString();
}
@RequestMapping("read/{broadcastAddress}")
public List<Plaintext> read(@PathVariable String broadcastAddress) {
BitmessageAddress broadcaster = ctx.addresses().getAddress(broadcastAddress);
if (broadcaster == null) {
broadcaster = new BitmessageAddress(broadcastAddress);
}
if (!broadcaster.isSubscribed()) {
ctx.addSubscribtion(broadcaster);
}
return ctx.messages().findMessages(broadcaster);
}
public JabitServerApplication() {
JdbcConfig config = new JdbcConfig();
ctx = new BitmessageContext.Builder()
.addressRepo(new JdbcAddressRepository(config))
.inventory(new JdbcInventory(config))
.messageRepo(new JdbcMessageRepository(config))
.nodeRegistry(new MemoryNodeRegistry())
.networkHandler(new DefaultNetworkHandler())
.security(new BouncySecurity())
.port(8445)
.build();
ctx.startup(plaintext -> {
});
}
public static void main(String[] args) {
SpringApplication.run(JabitServerApplication.class, args);
}
}