Project

General

Profile

1
package eu.dnetlib.goldoa.service;
2

    
3
import eu.dnetlib.goldoa.domain.Invoice;
4
import eu.dnetlib.goldoa.domain.InvoiceFile;
5
import eu.dnetlib.goldoa.domain.ManagerException;
6
import eu.dnetlib.goldoa.service.dao.InvoiceDAO;
7
import org.springframework.beans.factory.annotation.Autowired;
8
import org.springframework.stereotype.Service;
9
import org.springframework.transaction.annotation.Transactional;
10

    
11
import java.io.InputStream;
12
import java.util.UUID;
13

    
14
/**
15
 * Created by antleb on 3/21/15.
16
 */
17

    
18
@Transactional
19
@Service
20
public class InvoiceManagerImpl implements InvoiceManager {
21
	@Autowired
22
	private InvoiceDAO invoiceDAO;
23

    
24
	@Override
25
	public Invoice saveInvoice(Invoice invoice) {
26
		if (invoice.getId() == null) {
27
			invoice.setSource("portal");
28
			invoice.setId("portal::" + UUID.randomUUID().toString());
29
		}
30
        return invoiceDAO.saveInvoice(invoice);
31
	}
32

    
33
	@Override
34
	public Invoice getInvoice(String invoiceId) throws ManagerException {
35
        Invoice invoice  = invoiceDAO.getByKey(invoiceId);
36
	    if(invoice == null)
37
            throw new ManagerException(ManagerException.ErrorCause.NOT_EXISTS);
38
	    else
39
	        return invoice;
40
	}
41

    
42
	@Override
43
	public void uploadInvoice(final String invoiceId, final String mimetype, InputStream invoice) throws ManagerException {
44
		try {
45
		    invoiceDAO.uploadInvoice(invoiceId,mimetype,invoice);
46
		} catch (Exception e) {
47
			throw new ManagerException(ManagerException.ErrorCause.UNKNOWN);
48
		}
49
	}
50

    
51
	@Override
52
	public InvoiceFile downloadInvoice(String invoiceId) throws ManagerException {
53

    
54
	    Invoice inv = invoiceDAO.getByKey(invoiceId);
55
	    if(inv == null)
56
            throw new ManagerException(ManagerException.ErrorCause.NOT_EXISTS);
57
	    if(inv.getFile() == null)
58
            throw new ManagerException(ManagerException.ErrorCause.UNKNOWN);
59
	    return new InvoiceFile(inv,inv.getFile().getMimetype(),inv.getFile().getFile());
60
	}
61

    
62
}
(12-12/29)