1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package fr.paris.lutece.plugins.document.modules.ckan.service;
35
36 import fr.paris.lutece.plugins.document.business.Document;
37 import fr.paris.lutece.plugins.document.business.DocumentHome;
38 import fr.paris.lutece.plugins.document.business.portlet.DocumentPortletHome;
39 import fr.paris.lutece.plugins.document.modules.ckan.business.PackageShowResult;
40 import fr.paris.lutece.plugins.document.modules.ckan.business.WSBase;
41 import fr.paris.lutece.plugins.document.modules.ckan.business.WSError;
42 import fr.paris.lutece.plugins.document.modules.ckan.business.WSPackageList;
43 import fr.paris.lutece.plugins.document.modules.ckan.business.WSPackageShow;
44 import fr.paris.lutece.plugins.document.modules.ckan.business.WSResult;
45 import fr.paris.lutece.portal.service.util.AppPropertiesService;
46
47 import org.xml.sax.SAXException;
48
49 import java.util.ArrayList;
50 import java.util.List;
51
52
53
54
55
56 public final class PackageServiceV3
57 {
58 private static final String PROPERTY_HELP_PACKAGE_LIST = "document-ckan.help.package_list";
59 private static final String PROPERTY_HELP_PACKAGE_SHOW = "document-ckan.help.package_show";
60 private static final String PROPERTY_DATASET_SPACE_ID = "document-ckan.datasetSpaceId";
61
62
63 private PackageServiceV3( )
64 {
65
66 }
67
68
69
70
71
72 public static WSBase getPackageList( )
73 {
74 WSPackageList pl = new WSPackageList( );
75 pl.setHelp( AppPropertiesService.getProperty( PROPERTY_HELP_PACKAGE_LIST ) );
76 pl.setSuccess( true );
77
78 List<String> listResults = new ArrayList<String>( );
79 int nSpaceId = Integer.parseInt( AppPropertiesService.getProperty( PROPERTY_DATASET_SPACE_ID ) );
80
81 for ( Document doc : DocumentHome.findBySpaceKey( nSpaceId ) )
82 {
83 listResults.add( CkanService.getNameId( doc ) );
84 }
85
86 pl.setResult( listResults );
87
88 return pl;
89 }
90
91
92
93
94
95
96
97 public static WSBase getPackageShow( String strId )
98 throws SAXException
99 {
100 String strHelp = AppPropertiesService.getProperty( PROPERTY_HELP_PACKAGE_SHOW );
101 Document doc;
102
103 try
104 {
105 doc = DocumentHome.findByPrimaryKey( Integer.parseInt( strId ) );
106 }
107 catch ( NumberFormatException e )
108 {
109 return new WSError( WSError.MESSAGE_INVALID, WSError.TYPE_INVALID, strHelp );
110 }
111
112 if ( doc == null )
113 {
114 return new WSError( WSError.MESSAGE_NOT_FOUND, WSError.TYPE_NOT_FOUND, strHelp );
115 }
116
117 PackageShowResult psr = new PackageShowResult( );
118 List<Integer> listPublications = DocumentPortletHome.findPortletForDocument( doc.getId( ) );
119
120 if ( listPublications.isEmpty( ) )
121 {
122
123 return new WSError( WSError.MESSAGE_NOT_FOUND, WSError.TYPE_NOT_FOUND, strHelp );
124 }
125
126 int nPortletId = listPublications.get( 0 );
127 WSResult ps = new WSPackageShow( );
128 ps.setHelp( strHelp );
129 psr = DocumentParser.parse( psr, doc.getXmlValidatedContent( ), nPortletId );
130 ps.setResult( psr );
131
132 return ps;
133 }
134 }