view src/nabble/model/export/ImportImpl.java @ 47:72765b66e2c3

remove mailing list code
author Franklin Schmidt <fschmidt@gmail.com>
date Fri, 18 Jun 2021 17:44:24 -0600
parents 7ecd1a4ef557
children
line wrap: on
line source

package nabble.model.export;

import fschmidt.db.DbDatabase;
import nabble.model.ModelException;
import nabble.model.ModelHome;
import nabble.model.Node;
import nabble.model.Site;
import nabble.model.User;
import nabble.view.lib.Jtp;

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.net.URL;
import java.util.Date;


final class ImportImpl extends AbstractImportImpl {

	ImportImpl(Site site) {
		super(site);
	}

	protected void start() {
		ModelHome.beginImport();
	}

	protected void end() {
		ModelHome.endImport();
	}

	protected String createNode(NodeData data) throws ModelException {
		Node node;
		DbDatabase db = site.getDb();
		db.beginTransaction();
		try {
			node = site.getGoodCopy().newNode(data);
			db.commitTransaction();
		} finally {
			db.endTransaction();
		}
		return Jtp.url(node.getGoodCopy());
	}

	public void addUser(String name, String email, String passwordDigest, Date registrationDate, String smallAvatarUrl, String bigAvatarUrl) {
		final DbDatabase db = site.getDb();
		db.beginTransaction();
		try {
			User user = site.getOrCreateUser(email, name);
			if (!user.isRegistered()) {
				user.setPasswordDigest(passwordDigest);
				user.register(registrationDate);
				user.update();
				user = user.getGoodCopy();
				if (!user.hasAvatar() && smallAvatarUrl != null && bigAvatarUrl != null) {
					BufferedImage small = ImageIO.read(new URL(smallAvatarUrl));
					BufferedImage big = ImageIO.read(new URL(bigAvatarUrl));
					user.saveAvatar(small, big);
				}
			}
			db.commitTransaction();
		} catch (IOException e) {
			throw new RuntimeException(e);
		} catch (ModelException e) {
			throw new RuntimeException(e);
		} finally {
			db.endTransaction();
		}
	}
}