| .. | .. |
|---|
| 2 | 2 | |
|---|
| 3 | 3 | import java.util.Date; |
|---|
| 4 | 4 | import java.util.List; |
|---|
| 5 | +import java.util.Set; |
|---|
| 5 | 6 | |
|---|
| 6 | 7 | import javax.inject.Inject; |
|---|
| 7 | 8 | import javax.inject.Provider; |
|---|
| .. | .. |
|---|
| 25 | 26 | import net.curisit.integrity.commons.Utils; |
|---|
| 26 | 27 | import net.curisit.securis.DefaultExceptionHandler; |
|---|
| 27 | 28 | import net.curisit.securis.db.Application; |
|---|
| 29 | +import net.curisit.securis.db.ApplicationMetadata; |
|---|
| 28 | 30 | import net.curisit.securis.utils.TokenHelper; |
|---|
| 29 | 31 | |
|---|
| 30 | 32 | import org.apache.logging.log4j.LogManager; |
|---|
| .. | .. |
|---|
| 110 | 112 | EntityManager em = emProvider.get(); |
|---|
| 111 | 113 | app.setCreationTimestamp(new Date()); |
|---|
| 112 | 114 | em.persist(app); |
|---|
| 115 | + LOG.info("App ID: {}", app.getId()); |
|---|
| 116 | + if (app.getApplicationMetadata() != null) { |
|---|
| 117 | + for (ApplicationMetadata md : app.getApplicationMetadata()) { |
|---|
| 118 | + md.setApplication(app); |
|---|
| 119 | + md.setCreationTimestamp(app.getCreationTimestamp()); |
|---|
| 120 | + em.persist(md); |
|---|
| 121 | + } |
|---|
| 122 | + } |
|---|
| 113 | 123 | |
|---|
| 114 | 124 | return Response.ok(app).build(); |
|---|
| 115 | 125 | } |
|---|
| .. | .. |
|---|
| 134 | 144 | currentapp.setName(app.getName()); |
|---|
| 135 | 145 | currentapp.setDescription(app.getDescription()); |
|---|
| 136 | 146 | em.persist(currentapp); |
|---|
| 137 | | - |
|---|
| 147 | + |
|---|
| 148 | + Set<ApplicationMetadata> newMD = app.getApplicationMetadata(); |
|---|
| 149 | + for (ApplicationMetadata currentMd : currentapp.getApplicationMetadata()) { |
|---|
| 150 | + if (newMD == null || !newMD.contains(currentMd)); |
|---|
| 151 | + em.remove(currentMd); |
|---|
| 152 | + } |
|---|
| 153 | + |
|---|
| 154 | + if (newMD != null) { |
|---|
| 155 | + for (ApplicationMetadata md : newMD) { |
|---|
| 156 | + md.setApplication(app); |
|---|
| 157 | + if (md.getCreationTimestamp() == null) { |
|---|
| 158 | + md.setCreationTimestamp(app.getCreationTimestamp()); |
|---|
| 159 | + } |
|---|
| 160 | + em.persist(md); |
|---|
| 161 | + } |
|---|
| 162 | + } |
|---|
| 163 | + currentapp.setApplicationMetadata(app.getApplicationMetadata()); |
|---|
| 138 | 164 | return Response.ok(currentapp).build(); |
|---|
| 139 | 165 | } |
|---|
| 140 | 166 | |
|---|