<mavenBuild _class='hudson.maven.MavenBuild'><action></action><action _class='hudson.maven.reporters.MavenArtifactRecord'><attachedArtifact><artifactId>dgss2526-teamA-microstories-tests</artifactId><canonicalName>dgss2526-teamA-microstories-tests-0.1.0-SNAPSHOT-sources.jar</canonicalName><classifier>sources</classifier><fileName>dgss2526-teamA-microstories-tests-0.1.0-SNAPSHOT-sources.jar</fileName><groupId>es.uvigo.esei.dgss.teamA.microstories</groupId><md5sum>af3e6db9d6846219796e5fa49763c099</md5sum><type>java-source</type><version>0.1.0-SNAPSHOT</version></attachedArtifact><attachedArtifact><artifactId>dgss2526-teamA-microstories-tests</artifactId><canonicalName>dgss2526-teamA-microstories-tests-0.1.0-SNAPSHOT-javadoc.jar</canonicalName><classifier>javadoc</classifier><fileName>dgss2526-teamA-microstories-tests-0.1.0-SNAPSHOT-javadoc.jar</fileName><groupId>es.uvigo.esei.dgss.teamA.microstories</groupId><md5sum>18827855f1abd51ede8674da4b73dfd3</md5sum><type>javadoc</type><version>0.1.0-SNAPSHOT</version></attachedArtifact><mainArtifact><artifactId>dgss2526-teamA-microstories-tests</artifactId><canonicalName>dgss2526-teamA-microstories-tests-0.1.0-SNAPSHOT.jar</canonicalName><fileName>dgss2526-teamA-microstories-tests-0.1.0-SNAPSHOT.jar</fileName><groupId>es.uvigo.esei.dgss.teamA.microstories</groupId><md5sum>5fdae4434acb17bc0409a9a45ffceb81</md5sum><type>jar</type><version>0.1.0-SNAPSHOT</version></mainArtifact><parent><number>156</number><url>http://sing.ei.uvigo.es/dt/jenkins/job/microstories-2526-teamA/es.uvigo.esei.dgss.teamA.microstories$dgss2526-teamA-microstories-tests/156/</url></parent><pomArtifact><artifactId>dgss2526-teamA-microstories-tests</artifactId><canonicalName>dgss2526-teamA-microstories-tests-0.1.0-SNAPSHOT.pom</canonicalName><fileName>pom.xml</fileName><groupId>es.uvigo.esei.dgss.teamA.microstories</groupId><md5sum>1532e76707f9f47692c2c417366732cb</md5sum><type>pom</type><version>0.1.0-SNAPSHOT</version></pomArtifact><url>http://sing.ei.uvigo.es/dt/jenkins/job/microstories-2526-teamA/es.uvigo.esei.dgss.teamA.microstories$dgss2526-teamA-microstories-tests/156/mavenArtifacts/</url></action><action></action><artifact><displayPath>dgss2526-teamA-microstories-tests-0.1.0-SNAPSHOT-javadoc.jar</displayPath><fileName>dgss2526-teamA-microstories-tests-0.1.0-SNAPSHOT-javadoc.jar</fileName><relativePath>es.uvigo.esei.dgss.teamA.microstories/dgss2526-teamA-microstories-tests/0.1.0-SNAPSHOT/dgss2526-teamA-microstories-tests-0.1.0-SNAPSHOT-javadoc.jar</relativePath></artifact><artifact><displayPath>dgss2526-teamA-microstories-tests-0.1.0-SNAPSHOT-sources.jar</displayPath><fileName>dgss2526-teamA-microstories-tests-0.1.0-SNAPSHOT-sources.jar</fileName><relativePath>es.uvigo.esei.dgss.teamA.microstories/dgss2526-teamA-microstories-tests/0.1.0-SNAPSHOT/dgss2526-teamA-microstories-tests-0.1.0-SNAPSHOT-sources.jar</relativePath></artifact><artifact><displayPath>dgss2526-teamA-microstories-tests-0.1.0-SNAPSHOT.jar</displayPath><fileName>dgss2526-teamA-microstories-tests-0.1.0-SNAPSHOT.jar</fileName><relativePath>es.uvigo.esei.dgss.teamA.microstories/dgss2526-teamA-microstories-tests/0.1.0-SNAPSHOT/dgss2526-teamA-microstories-tests-0.1.0-SNAPSHOT.jar</relativePath></artifact><artifact><displayPath>dgss2526-teamA-microstories-tests-0.1.0-SNAPSHOT.pom</displayPath><fileName>dgss2526-teamA-microstories-tests-0.1.0-SNAPSHOT.pom</fileName><relativePath>es.uvigo.esei.dgss.teamA.microstories/dgss2526-teamA-microstories-tests/0.1.0-SNAPSHOT/dgss2526-teamA-microstories-tests-0.1.0-SNAPSHOT.pom</relativePath></artifact><building>false</building><displayName>Tests</displayName><duration>3009</duration><estimatedDuration>4351</estimatedDuration><fullDisplayName>microstories-2526-teamA » Tests Tests</fullDisplayName><id>156</id><keepLog>false</keepLog><number>156</number><queueId>-1</queueId><result>SUCCESS</result><timestamp>1766081106803</timestamp><url>http://sing.ei.uvigo.es/dt/jenkins/job/microstories-2526-teamA/es.uvigo.esei.dgss.teamA.microstories$dgss2526-teamA-microstories-tests/156/</url><builtOn></builtOn><changeSet _class='hudson.maven.FilteredChangeLogSet'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>service/src/test/java/es/uvigo/esei/microstories/services/StoryServiceIntegrationTest.java</affectedPath><affectedPath>tests/src/main/resources/datasets/stories-new-favorited.xml</affectedPath><affectedPath>service/src/main/java/es/uvigo/esei/microstories/services/StoryService.java</affectedPath><commitId>8b4e841317e2869939c363bf97c24fa8aab6cb54</commitId><timestamp>1766080777000</timestamp><author><absoluteUrl>http://sing.ei.uvigo.es/dt/jenkins/user/devpablogg</absoluteUrl><fullName>devpablogg</fullName></author><authorEmail>devpablogg@gmail.com</authorEmail><comment>tsk69: Implements add/remove favorite story functionality in service
layer
This commit implements the service-layer methods to allow users to add
and remove stories from their favorites. It introduces addFavorite and 
removeFavorite in StoryService, including proper validation for story
existence and user authorization. Integration tests were added to verify
successful addition and removal, as well as error cases for non-existent
stories and unauthorized access. The DBUnit dataset
stories-new-favorited.xml was created to support the tests.
</comment><date>2025-12-18 18:59:37 +0100</date><id>8b4e841317e2869939c363bf97c24fa8aab6cb54</id><msg>tsk69: Implements add/remove favorite story functionality in service</msg><path><editType>edit</editType><file>service/src/main/java/es/uvigo/esei/microstories/services/StoryService.java</file></path><path><editType>edit</editType><file>service/src/test/java/es/uvigo/esei/microstories/services/StoryServiceIntegrationTest.java</file></path><path><editType>add</editType><file>tests/src/main/resources/datasets/stories-new-favorited.xml</file></path></item></changeSet><culprit><absoluteUrl>http://sing.ei.uvigo.es/dt/jenkins/user/devpablogg</absoluteUrl><fullName>devpablogg</fullName><id>devpablogg</id><property _class='jenkins.security.ApiTokenProperty'></property><property _class='com.cloudbees.plugins.credentials.UserCredentialsProvider$UserCredentialsProperty'></property><property _class='hudson.plugins.emailext.watching.EmailExtWatchAction$UserProperty'></property><property _class='hudson.model.MyViewsProperty'></property><property _class='org.jenkinsci.plugins.displayurlapi.user.PreferredProviderUserProperty'></property><property _class='hudson.model.PaneStatusProperties'></property><property _class='hudson.search.UserSearchProperty'><insensitiveSearch>true</insensitiveSearch></property><property _class='hudson.tasks.Mailer$UserProperty'><address>devpablogg@gmail.com</address></property></culprit><mavenArtifacts><attachedArtifact><artifactId>dgss2526-teamA-microstories-tests</artifactId><canonicalName>dgss2526-teamA-microstories-tests-0.1.0-SNAPSHOT-sources.jar</canonicalName><classifier>sources</classifier><fileName>dgss2526-teamA-microstories-tests-0.1.0-SNAPSHOT-sources.jar</fileName><groupId>es.uvigo.esei.dgss.teamA.microstories</groupId><md5sum>af3e6db9d6846219796e5fa49763c099</md5sum><type>java-source</type><version>0.1.0-SNAPSHOT</version></attachedArtifact><attachedArtifact><artifactId>dgss2526-teamA-microstories-tests</artifactId><canonicalName>dgss2526-teamA-microstories-tests-0.1.0-SNAPSHOT-javadoc.jar</canonicalName><classifier>javadoc</classifier><fileName>dgss2526-teamA-microstories-tests-0.1.0-SNAPSHOT-javadoc.jar</fileName><groupId>es.uvigo.esei.dgss.teamA.microstories</groupId><md5sum>18827855f1abd51ede8674da4b73dfd3</md5sum><type>javadoc</type><version>0.1.0-SNAPSHOT</version></attachedArtifact><mainArtifact><artifactId>dgss2526-teamA-microstories-tests</artifactId><canonicalName>dgss2526-teamA-microstories-tests-0.1.0-SNAPSHOT.jar</canonicalName><fileName>dgss2526-teamA-microstories-tests-0.1.0-SNAPSHOT.jar</fileName><groupId>es.uvigo.esei.dgss.teamA.microstories</groupId><md5sum>5fdae4434acb17bc0409a9a45ffceb81</md5sum><type>jar</type><version>0.1.0-SNAPSHOT</version></mainArtifact><parent><number>156</number><url>http://sing.ei.uvigo.es/dt/jenkins/job/microstories-2526-teamA/es.uvigo.esei.dgss.teamA.microstories$dgss2526-teamA-microstories-tests/156/</url></parent><pomArtifact><artifactId>dgss2526-teamA-microstories-tests</artifactId><canonicalName>dgss2526-teamA-microstories-tests-0.1.0-SNAPSHOT.pom</canonicalName><fileName>pom.xml</fileName><groupId>es.uvigo.esei.dgss.teamA.microstories</groupId><md5sum>1532e76707f9f47692c2c417366732cb</md5sum><type>pom</type><version>0.1.0-SNAPSHOT</version></pomArtifact><url>http://sing.ei.uvigo.es/dt/jenkins/job/microstories-2526-teamA/es.uvigo.esei.dgss.teamA.microstories$dgss2526-teamA-microstories-tests/156/mavenArtifacts/</url></mavenArtifacts></mavenBuild>