Skip to content
Snippets Groups Projects
Commit bfe0f438 authored by Joshua Gill's avatar Joshua Gill
Browse files

New Entities Repos for Logs and Events, all other required entities updated with new data

parent acc1dfc3
Branches
No related tags found
2 merge requests!114LoggingService service class, new method to add a log to the "Logs" table when...,!101merge
package com.example.clientproject.data.events;
import com.example.clientproject.data.logs.Logs;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import java.util.Set;
/**
* Entity object for events which trigger a log
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
public class Events {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long eventId;
private String eventName;
@OneToMany(cascade=CascadeType.ALL, orphanRemoval = true)
@JoinColumn(name="Event_Id", nullable = false)
private Set<Logs> logs;
}
package com.example.clientproject.data.events;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import java.util.Optional;
/**
* Repository for the "Events" Entity
*/
public interface EventsRepo extends JpaRepository<Events, Long> {
/**
* Find an event by its name
* @param name - the name to search by
* @return - the event as an optional
*/
@Query("select e from Events e where e.eventName = ?1")
Optional<Events> findByEventName(String name);
}
package com.example.clientproject.data.logs;
import com.example.clientproject.data.converters.TinyIntToBoolean;
import com.example.clientproject.data.events.Events;
import com.example.clientproject.data.users.Users;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
/**
* Entity object for logs
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
public class Logs {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long logId;
private String logDetails;
private String logDateTime;
@Convert(converter = TinyIntToBoolean.class)
private boolean logSuperAdmin;
@ManyToOne
@JoinColumn(name="User_Id", nullable=false)
private Users user;
@ManyToOne
@JoinColumn(name="Event_Id", nullable=false)
private Events event;
public Logs(String details, String dateTime, boolean superAdmin, Users aUser, Events aEvent) {
logDetails = details;
logDateTime = dateTime;
logSuperAdmin = superAdmin;
user = aUser;
event = aEvent;
}
}
package com.example.clientproject.data.logs;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import java.util.List;
/**
* JPA Repo for the Logs entity
*/
public interface LogsRepo extends JpaRepository<Logs, Long> {
/**
* Find all the logs from a specific date time
* @param dateTime - the datetime to search by
* @return - list of logs from that date time
*/
@Query("select l from Logs l where l.logDateTime like ?1")
List<Logs> findByDateTime(String dateTime);
/**
* Find all the logs for a specific event
* @param eventId - the id of the event to search by
* @return - a list of logs with that event
*/
@Query("select l from Logs l where l.event.eventId = ?1")
List<Logs> findByEventId(long eventId);
/**
* Find all the logs for a specific user
* @param userId - the id of the user to search by
* @return - a list of all the logs for that user
*/
@Query("select l from Logs l where l.user.userId = ?1")
List<Logs> findByUserId(long userId);
/**
* Find all the logs by a specific super admin status
* @param superAdminStatus - the status to search by
* @return - a list of the logs found
*/
@Query("select l from Logs l where l.logSuperAdmin = ?1")
List<Logs> findBySuperAdminStatus(boolean superAdminStatus);
}
package com.example.clientproject.data.users;
import com.example.clientproject.data.logs.Logs;
import com.example.clientproject.data.shops.Shops;
import com.example.clientproject.data.userStampBoards.UserStampBoards;
import com.example.clientproject.data.tags.Tags;
......@@ -91,6 +92,10 @@ public class Users {
)
private List<Tags> favouriteTags;
@OneToMany(cascade=CascadeType.ALL, orphanRemoval = true)
@JoinColumn(name="User_Id", nullable=false)
private Set<Logs> logs;
public String toString(){
return "User:" + this.getUserFirstName();
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment