1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package com.hack23.cia.service.component.agent.impl.riksdagen.workgenerator;
20
21 import java.util.List;
22 import java.util.Map;
23
24 import javax.jms.Destination;
25 import javax.jms.JMSException;
26
27 import org.slf4j.Logger;
28 import org.slf4j.LoggerFactory;
29 import org.springframework.beans.factory.annotation.Autowired;
30 import org.springframework.beans.factory.annotation.Qualifier;
31 import org.springframework.stereotype.Service;
32
33 import com.hack23.cia.model.external.riksdagen.voteringlista.impl.BallotDocumentElement;
34 import com.hack23.cia.model.internal.application.data.impl.RiksdagenDataSources;
35 import com.hack23.cia.service.external.riksdagen.api.DataFailureException;
36 import com.hack23.cia.service.external.riksdagen.api.RiksdagenBallotApi;
37
38
39
40
41 @Service("RiksdagenBallotListWorkGeneratorImpl")
42 final class RiksdagenBallotListWorkGeneratorImpl extends AbstractRiksdagenDataSourcesWorkGenerator {
43
44
45 private static final Logger LOGGER = LoggerFactory.getLogger(RiksdagenBallotListWorkGeneratorImpl.class);
46
47
48
49 @Autowired
50 @Qualifier("com.hack23.cia.model.external.riksdagen.votering.impl.VoteData")
51 private Destination voteDataWorkdestination;
52
53
54 @Autowired
55 private RiksdagenBallotApi riksdagenApi;
56
57
58
59
60 public RiksdagenBallotListWorkGeneratorImpl() {
61 super(RiksdagenDataSources.BALLOT_LIST);
62 }
63
64 @Override
65 public void generateWorkOrders() {
66 try {
67 final List<BallotDocumentElement> ballotList = riksdagenApi.getBallotList();
68 final Map<String, String> alreadySavedIdMap = getImportService()
69 .getLoadedBallotIdMap();
70
71 for (final BallotDocumentElement ballotDocument : ballotList) {
72 if (!alreadySavedIdMap.containsKey(ballotDocument.getBallotId())) {
73 getJmsSender().send(voteDataWorkdestination,
74 ballotDocument.getBallotId());
75 LOGGER.info("Load : http://data.riksdagen.se/votering/{}", ballotDocument.getBallotId());
76 }
77 }
78 } catch (final JMSException | DataFailureException e) {
79 LOGGER.warn("Loadin ballots", e);
80 }
81 }
82
83 }