/illuminati/illuminati-mongo/src/main/java/me/phoboslabs/illuminati/mongo/IlluminatiMongoProcess.java

https://github.com/LeeKyoungIl/illuminati · Java · 53 lines · 44 code · 9 blank · 0 comment · 8 complexity · 98f7424a8f85322024c691721f07de45 MD5 · raw file

  1. package me.phoboslabs.illuminati.mongo;
  2. import com.mongodb.client.MongoClient;
  3. import com.mongodb.client.MongoCollection;
  4. import com.mongodb.client.MongoDatabase;
  5. import com.mongodb.client.result.InsertOneResult;
  6. import me.phoboslabs.illuminati.common.constant.IlluminatiConstant;
  7. import me.phoboslabs.illuminati.common.dto.impl.IlluminatiTemplateInterfaceModelImpl;
  8. import org.bson.BsonValue;
  9. import org.bson.Document;
  10. public class IlluminatiMongoProcess implements IlluminatiMongoInterface {
  11. private final MongoClient mongoClient;
  12. private final MongoDatabase mongoDatabase;
  13. private static final String ILLUMINATI_DATABASE_NAME = "illuminati";
  14. private static final String ILLUMINATI_COLLECTION_NAME = "illuminati";
  15. public IlluminatiMongoProcess(MongoClient mongoClient) {
  16. if (mongoClient == null) {
  17. throw new IllegalArgumentException("mongoClient must not be null.");
  18. }
  19. this.mongoClient = mongoClient;
  20. this.mongoDatabase = this.mongoClient.getDatabase(ILLUMINATI_DATABASE_NAME);
  21. if (this.existCollection() == false) {
  22. this.createCollection();
  23. }
  24. }
  25. @Override
  26. public boolean save(IlluminatiTemplateInterfaceModelImpl illuminatiTemplateInterfaceModel) {
  27. MongoCollection<Document> collection = this.mongoDatabase.getCollection(ILLUMINATI_COLLECTION_NAME);
  28. String jsonString = IlluminatiConstant.ILLUMINATI_GSON_OBJ.toJson(illuminatiTemplateInterfaceModel);
  29. Document doc = Document.parse(jsonString);
  30. InsertOneResult insertOneResult = collection.insertOne(doc);
  31. BsonValue value = insertOneResult.getInsertedId();
  32. return value.toString() != null;
  33. }
  34. private boolean existCollection() {
  35. return this.mongoDatabase.getCollection(ILLUMINATI_COLLECTION_NAME) != null;
  36. }
  37. private void createCollection() {
  38. this.mongoDatabase.createCollection(ILLUMINATI_COLLECTION_NAME);
  39. boolean created = this.existCollection();
  40. if (created == false) {
  41. throw new IllegalArgumentException("create collection has failed.");
  42. }
  43. }
  44. }