Skip to content
Snippets Groups Projects
Commit 1781a6fc authored by Eirik Steira's avatar Eirik Steira
Browse files

Add LoadDatabase to load test data into the database

parent 46f5cb3c
No related branches found
No related tags found
2 merge requests!104Weekly merge to Master,!68Add LoadDatabase to load test data into the database
Pipeline #76808 failed
......@@ -9,6 +9,7 @@ bin/
.settings/
.classpath
.project
t14-test-images
# User-specific stuff
.idea/**/workspace.xml
......
package NTNU.IDATT1002;
import NTNU.IDATT1002.controllers.DataExchange;
import NTNU.IDATT1002.database.LoadDatabase;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
......@@ -17,6 +18,8 @@ public class App extends Application {
@Override
public void start(Stage stage) throws IOException {
LoadDatabase.load();
ex = new DataExchange();
scene = new Scene(loadFXML("login"));
stage.setScene(scene);
......
package NTNU.IDATT1002.database;
import NTNU.IDATT1002.models.Image;
import NTNU.IDATT1002.models.Tag;
import NTNU.IDATT1002.models.User;
import NTNU.IDATT1002.service.ImageAlbumService;
import NTNU.IDATT1002.service.ImageService;
import NTNU.IDATT1002.service.UserService;
import java.io.File;
import java.util.Arrays;
import java.util.Date;
/**
* Loads test data into the database.
*/
public class LoadDatabase {
private static UserService userService;
private static ImageAlbumService imageAlbumService;
private static ImageService imageService;
static {
userService = new UserService();
imageAlbumService = new ImageAlbumService();
imageService = new ImageService();
}
public static void load() {
User user = userService.createUser("LarseKaren@mail.com", "LarseKaren", "Larse",
"Karen", "+47", "00000000", new Date(), "123")
.get();
Image image = imageService.createImage(user, new File("t14-test-images/1.jpg")).get();
imageService.addTagToImage(image, new Tag("#winter"));
imageService.addTagToImage(image, new Tag("#nature"));
imageService.addTagToImage(image, new Tag("#mountains"));
imageAlbumService.createImageAlbum("First",
"Lorem Ipsum",
user,
Arrays.asList(new Tag("#winter"), new Tag("#nature"), new Tag("#mountains")),
Arrays.asList(image));
image = imageService.createImage(user, new File("t14-test-images/7.jpg")).get();
imageService.addTagToImage(image, new Tag("#winter"));
imageService.addTagToImage(image, new Tag("#nature"));
imageService.addTagToImage(image, new Tag("#ice"));
imageAlbumService.createImageAlbum("Seventh",
"Lorem Ipsum",
user,
Arrays.asList(new Tag("#winter"), new Tag("#nature"), new Tag("#ice")),
Arrays.asList(image));
user = userService.createUser("SteiraGuten@mail.com", "SteiraGuten", "Steira",
"Guten", "+47", "00000000", new Date(), "123")
.get();
image = imageService.createImage(user, new File("t14-test-images/2.jpg")).get();
imageService.addTagToImage(image, new Tag("#mountains"));
imageService.addTagToImage(image, new Tag("#water"));
imageService.addTagToImage(image, new Tag("#nature"));
imageAlbumService.createImageAlbum("Second",
"Lorem Ipsum",
user,
Arrays.asList(new Tag("#mountains"), new Tag("#water"), new Tag("#nature")),
Arrays.asList(image));
image = imageService.createImage(user, new File("t14-test-images/10.jpg")).get();
imageService.addTagToImage(image, new Tag("#fjords"));
imageService.addTagToImage(image, new Tag("#nature"));
imageService.addTagToImage(image, new Tag("#mountains"));
imageAlbumService.createImageAlbum("Tenth",
"Lorem Ipsum",
user,
Arrays.asList(new Tag("#fjords"), new Tag("#nature"), new Tag("#mountains")),
Arrays.asList(image));
user = userService.createUser("MogenBogen@mail.com", "MogenBogen", "Mogen",
"Bogen", "+47", "00000000", new Date(), "123")
.get();
image = imageService.createImage(user, new File("t14-test-images/3.jpg")).get();
imageService.addTagToImage(image, new Tag("#mountains"));
imageService.addTagToImage(image, new Tag("#water"));
imageService.addTagToImage(image, new Tag("#nature"));
imageAlbumService.createImageAlbum("Third",
"Lorem Ipsum",
user,
Arrays.asList(new Tag("#mountains"), new Tag("#water"), new Tag("#nature")),
Arrays.asList(image));
image = imageService.createImage(user, new File("t14-test-images/9.jpg")).get();
imageService.addTagToImage(image, new Tag("#art"));
imageService.addTagToImage(image, new Tag("#nature"));
imageService.addTagToImage(image, new Tag("#river"));
imageAlbumService.createImageAlbum("Ninth",
"Lorem Ipsum",
user,
Arrays.asList(new Tag("#art"), new Tag("#nature"), new Tag("#river")),
Arrays.asList(image));
user = userService.createUser("Nicolaysen@mail.com", "Nicolaysen", "Nicolai",
"Sen", "+47", "00000000", new Date(), "123")
.get();
image = imageService.createImage(user, new File("t14-test-images/4.jpg")).get();
imageService.addTagToImage(image, new Tag("#mountains"));
imageService.addTagToImage(image, new Tag("#grass"));
imageService.addTagToImage(image, new Tag("#nature"));
imageAlbumService.createImageAlbum("Fourth",
"Lorem Ipsum",
user,
Arrays.asList(new Tag("#mountains"), new Tag("#grass"), new Tag("#nature")),
Arrays.asList(image));
image = imageService.createImage(user, new File("t14-test-images/5.jpg")).get();
imageService.addTagToImage(image, new Tag("#mountains"));
imageService.addTagToImage(image, new Tag("#water"));
imageService.addTagToImage(image, new Tag("#dock"));
imageAlbumService.createImageAlbum("Fifth",
"Lorem Ipsum",
user,
Arrays.asList(new Tag("#mountains"), new Tag("#water"), new Tag("#dock")),
Arrays.asList(image));
user = userService.createUser("MaseMads@mail.com", "MaseMads", "Mase",
"Mads", "+47", "00000000", new Date(), "123")
.get();
image = imageService.createImage(user, new File("t14-test-images/6.jpg")).get();
imageService.addTagToImage(image, new Tag("#mountains"));
imageService.addTagToImage(image, new Tag("#waterfall"));
imageService.addTagToImage(image, new Tag("#nature"));
imageAlbumService.createImageAlbum("Sixth",
"Lorem Ipsum",
user,
Arrays.asList(new Tag("#mountains"), new Tag("#waterfall"), new Tag("#nature")),
Arrays.asList(image));
user = userService.createUser("JensenMannen@mail.com", "JensenMannen", "Jense",
"Mannen", "+47", "00000000", new Date(), "123")
.get();
image = imageService.createImage(user, new File("t14-test-images/8.jpg")).get();
imageService.addTagToImage(image, new Tag("#winter"));
imageService.addTagToImage(image, new Tag("#nature"));
imageService.addTagToImage(image, new Tag("#mountains"));
imageAlbumService.createImageAlbum("Eighth",
"Lorem Ipsum",
user,
Arrays.asList(new Tag("#winter"), new Tag("#nature"), new Tag("#mountains")),
Arrays.asList(image));
}
}
......@@ -108,6 +108,30 @@ public class User {
this.username = username;
}
public void setEmail(String email) {
this.email = email;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public void setCallingCode(String callingCode) {
this.callingCode = callingCode;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
public void setBirthDate(Date birthDate) {
this.birthDate = birthDate;
}
/**
* Add given image album.
*
......
......@@ -32,10 +32,14 @@ public class TagRepository extends GenericRepository<Tag, Long> {
* @return the tag if found, else the newly created one.
*/
public Optional<Tag> findOrCreate(Tag tag) {
Optional<Tag> foundTag = findById(tag.getTagId());
if (foundTag.isPresent())
return foundTag;
try {
Optional<Tag> foundTag = findById(tag.getTagId());
if (foundTag.isPresent())
return foundTag;
} catch (IllegalArgumentException e) {
e.printStackTrace();
}
return save(tag);
}
......
......@@ -60,12 +60,24 @@ public class ImageAlbumService {
imageAlbum.setTitle(title);
imageAlbum.setDescription(description);
imageAlbum.setUser(user);
imageAlbum.setTags(tags);
imageAlbum.setTags(getOrCreateTags(tags));
imageAlbum.setImages(images);
return imageAlbumRepository.save(imageAlbum);
}
/**
* Gets or creates given tags in given list.
*
* @param tags the list of tags
* @return a list of persisted tags
*/
private List<Tag> getOrCreateTags(List<Tag> tags) {
return tags.stream()
.map(tag -> tagRepository.findOrCreate(tag).orElse(null))
.collect(Collectors.toList());
}
/**
* Retrieves all image albums created by the given user by username.
*
......
package NTNU.IDATT1002.service;
import NTNU.IDATT1002.models.*;
import NTNU.IDATT1002.repository.ImageAlbumRepository;
import NTNU.IDATT1002.models.Image;
import NTNU.IDATT1002.models.Metadata;
import NTNU.IDATT1002.models.Tag;
import NTNU.IDATT1002.models.User;
import NTNU.IDATT1002.repository.ImageRepository;
import NTNU.IDATT1002.repository.TagRepository;
import NTNU.IDATT1002.repository.MetadataRepository;
import NTNU.IDATT1002.service.filters.ImageAlbumFilter;
import NTNU.IDATT1002.repository.TagRepository;
import NTNU.IDATT1002.service.filters.ImageFilter;
import NTNU.IDATT1002.utils.ImageUtil;
import NTNU.IDATT1002.utils.MetaDataExtractor;
......@@ -52,6 +53,7 @@ public class ImageService {
Image image = new Image();
byte[] bFile = ImageUtil.convertToBytes(file.getPath());
Metadata metadata = MetaDataExtractor.assembleMetaData(file);
metadata = metadataRepository.save(metadata).orElse(null);
//TODO: Unsure what to do with imageAlbum
image.setRawImage(bFile);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment