SlideShare a Scribd company logo
Creating a Facebook Clone - Part XXIII
@Service
public class NotificationService {
@Autowired
private NotificationRepository notifications;
public void sendNotification(User u, NotificationDAO nd) {
Notification n = new Notification();
n.setDate(System.currentTimeMillis());
n.setReaction(nd.getReaction());
n.setReactionColor(nd.getReactionColor());
n.setText(nd.getText());
n.setUser(u);
n.setWasRead(nd.isWasRead());
notifications.save(n);
}
public List<NotificationDAO> listNotifications(String authtoken,
int page, int amount) {
Page<Notification> notificationsPage = notifications.
findNotificationsForUser(
authtoken, PageRequest.of(page, amount,
NotificationService
@Service
public class NotificationService {
@Autowired
private NotificationRepository notifications;
public void sendNotification(User u, NotificationDAO nd) {
Notification n = new Notification();
n.setDate(System.currentTimeMillis());
n.setReaction(nd.getReaction());
n.setReactionColor(nd.getReactionColor());
n.setText(nd.getText());
n.setUser(u);
n.setWasRead(nd.isWasRead());
notifications.save(n);
}
public List<NotificationDAO> listNotifications(String authtoken,
int page, int amount) {
Page<Notification> notificationsPage = notifications.
findNotificationsForUser(
authtoken, PageRequest.of(page, amount,
NotificationService
@Service
public class NotificationService {
@Autowired
private NotificationRepository notifications;
public void sendNotification(User u, NotificationDAO nd) {
Notification n = new Notification();
n.setDate(System.currentTimeMillis());
n.setReaction(nd.getReaction());
n.setReactionColor(nd.getReactionColor());
n.setText(nd.getText());
n.setUser(u);
n.setWasRead(nd.isWasRead());
notifications.save(n);
}
public List<NotificationDAO> listNotifications(String authtoken,
int page, int amount) {
Page<Notification> notificationsPage = notifications.
findNotificationsForUser(
authtoken, PageRequest.of(page, amount,
NotificationService
public void sendNotification(User u, NotificationDAO nd) {
Notification n = new Notification();
n.setDate(System.currentTimeMillis());
n.setReaction(nd.getReaction());
n.setReactionColor(nd.getReactionColor());
n.setText(nd.getText());
n.setUser(u);
n.setWasRead(nd.isWasRead());
notifications.save(n);
}
public List<NotificationDAO> listNotifications(String authtoken,
int page, int amount) {
Page<Notification> notificationsPage = notifications.
findNotificationsForUser(
authtoken, PageRequest.of(page, amount,
Sort.by(Sort.Direction.DESC, "date")));
List<NotificationDAO> resp = new ArrayList<>();
for(Notification c : notificationsPage) {
resp.add(c.getDAO());
}
return resp;
}
}
NotificationService
public void sendNotification(User u, NotificationDAO nd) {
Notification n = new Notification();
n.setDate(System.currentTimeMillis());
n.setReaction(nd.getReaction());
n.setReactionColor(nd.getReactionColor());
n.setText(nd.getText());
n.setUser(u);
n.setWasRead(nd.isWasRead());
notifications.save(n);
}
public List<NotificationDAO> listNotifications(String authtoken,
int page, int amount) {
Page<Notification> notificationsPage = notifications.
findNotificationsForUser(
authtoken, PageRequest.of(page, amount,
Sort.by(Sort.Direction.DESC, "date")));
List<NotificationDAO> resp = new ArrayList<>();
for(Notification c : notificationsPage) {
resp.add(c.getDAO());
}
return resp;
}
}
NotificationService
public void sendNotification(User u, NotificationDAO nd) {
Notification n = new Notification();
n.setDate(System.currentTimeMillis());
n.setReaction(nd.getReaction());
n.setReactionColor(nd.getReactionColor());
n.setText(nd.getText());
n.setUser(u);
n.setWasRead(nd.isWasRead());
notifications.save(n);
}
public List<NotificationDAO> listNotifications(String authtoken,
int page, int amount) {
Page<Notification> notificationsPage = notifications.
findNotificationsForUser(
authtoken, PageRequest.of(page, amount,
Sort.by(Sort.Direction.DESC, "date")));
List<NotificationDAO> resp = new ArrayList<>();
for(Notification c : notificationsPage) {
resp.add(c.getDAO());
}
return resp;
}
}
NotificationService
@Service
public class MediaService {
@Autowired
private MediaRepository media;
@Autowired
private UserRepository user;
public String storeMedia(String authtoken, byte[] data,
String mimeType, String role, String visibility,
String filename) {
User u = user.findByAuthtoken(authtoken).get(0);
Media m = new Media();
m.setData(data);
m.setOwner(u);
m.setDate(System.currentTimeMillis());
m.setFilename(filename);
m.setMimeType(mimeType);
m.setRole(role);
MediaService
@Service
public class MediaService {
@Autowired
private MediaRepository media;
@Autowired
private UserRepository user;
public String storeMedia(String authtoken, byte[] data,
String mimeType, String role, String visibility,
String filename) {
User u = user.findByAuthtoken(authtoken).get(0);
Media m = new Media();
m.setData(data);
m.setOwner(u);
m.setDate(System.currentTimeMillis());
m.setFilename(filename);
m.setMimeType(mimeType);
m.setRole(role);
MediaService
@Service
public class MediaService {
@Autowired
private MediaRepository media;
@Autowired
private UserRepository user;
public String storeMedia(String authtoken, byte[] data,
String mimeType, String role, String visibility,
String filename) {
User u = user.findByAuthtoken(authtoken).get(0);
Media m = new Media();
m.setData(data);
m.setOwner(u);
m.setDate(System.currentTimeMillis());
m.setFilename(filename);
m.setMimeType(mimeType);
m.setRole(role);
MediaService
private MediaRepository media;
@Autowired
private UserRepository user;
public String storeMedia(String authtoken, byte[] data,
String mimeType, String role, String visibility,
String filename) {
User u = user.findByAuthtoken(authtoken).get(0);
Media m = new Media();
m.setData(data);
m.setOwner(u);
m.setDate(System.currentTimeMillis());
m.setFilename(filename);
m.setMimeType(mimeType);
m.setRole(role);
m.setVisibility(visibility);
media.save(m);
return m.getId();
}
public MediaDAO getPublicMedia(String id) throws PermissionException {
Media m = media.findById(id).get();
if(VisibilityConstants.isPublic(m.getVisibility())) {
MediaService
m.setVisibility(visibility);
media.save(m);
return m.getId();
}
public MediaDAO getPublicMedia(String id) throws PermissionException {
Media m = media.findById(id).get();
if(VisibilityConstants.isPublic(m.getVisibility())) {
return m.getDAO();
}
throw new PermissionException(
"Media item belongs to a user that isn't a friend");
}
public MediaDAO getMedia(String authToken, String id) throws
PermissionException {
Media m = media.findById(id).get();
if(VisibilityConstants.isPublic(m.getVisibility())) {
return m.getDAO();
}
if(!m.getOwner().getAuthtoken().equals(authToken)) {
if(!m.getOwner().isFriendByToken(authToken)) {
throw new PermissionException(
"Media item belongs to a user that isn't a friend");
MediaService
return m.getId();
}
public MediaDAO getPublicMedia(String id) throws PermissionException {
Media m = media.findById(id).get();
if(VisibilityConstants.isPublic(m.getVisibility())) {
return m.getDAO();
}
throw new PermissionException(
"Media item belongs to a user that isn't a friend");
}
public MediaDAO getMedia(String authToken, String id) throws
PermissionException {
Media m = media.findById(id).get();
if(VisibilityConstants.isPublic(m.getVisibility())) {
return m.getDAO();
}
if(!m.getOwner().getAuthtoken().equals(authToken)) {
if(!m.getOwner().isFriendByToken(authToken)) {
throw new PermissionException(
"Media item belongs to a user that isn't a friend");
}
}
MediaService
public enum VisibilityConstants {
PUBLIC("public"), FRIENDS("friends");
private String str;
private VisibilityConstants(String str) {
this.str = str;
}
public String asString() {
return str;
}
public static boolean isPublic(String s) {
return s == null || s.equalsIgnoreCase(PUBLIC.asString());
}
}
return m.getId();
}
public MediaDAO getPublicMedia(String id) throws PermissionException {
Media m = media.findById(id).get();
if(VisibilityConstants.isPublic(m.getVisibility())) {
return m.getDAO();
}
throw new PermissionException(
"Media item belongs to a user that isn't a friend");
}
public MediaDAO getMedia(String authToken, String id) throws
PermissionException {
Media m = media.findById(id).get();
if(VisibilityConstants.isPublic(m.getVisibility())) {
return m.getDAO();
}
if(!m.getOwner().getAuthtoken().equals(authToken)) {
if(!m.getOwner().isFriendByToken(authToken)) {
throw new PermissionException(
"Media item belongs to a user that isn't a friend");
}
}
MediaService
public class PermissionException extends Exception {
public PermissionException(String message) {
super(message);
}
}
public MediaDAO getPublicMedia(String id) throws PermissionException {
Media m = media.findById(id).get();
if(VisibilityConstants.isPublic(m.getVisibility())) {
return m.getDAO();
}
throw new PermissionException(
"Media item belongs to a user that isn't a friend");
}
public MediaDAO getMedia(String authToken, String id) throws
PermissionException {
Media m = media.findById(id).get();
if(VisibilityConstants.isPublic(m.getVisibility())) {
return m.getDAO();
}
if(!m.getOwner().getAuthtoken().equals(authToken)) {
if(!m.getOwner().isFriendByToken(authToken)) {
throw new PermissionException(
"Media item belongs to a user that isn't a friend");
}
}
return m.getDAO();
}
}
MediaService
public MediaDAO getPublicMedia(String id) throws PermissionException {
Media m = media.findById(id).get();
if(VisibilityConstants.isPublic(m.getVisibility())) {
return m.getDAO();
}
throw new PermissionException(
"Media item belongs to a user that isn't a friend");
}
public MediaDAO getMedia(String authToken, String id) throws
PermissionException {
Media m = media.findById(id).get();
if(VisibilityConstants.isPublic(m.getVisibility())) {
return m.getDAO();
}
if(!m.getOwner().getAuthtoken().equals(authToken)) {
if(!m.getOwner().isFriendByToken(authToken)) {
throw new PermissionException(
"Media item belongs to a user that isn't a friend");
}
}
return m.getDAO();
}
}
MediaService
public MediaDAO getPublicMedia(String id) throws PermissionException {
Media m = media.findById(id).get();
if(VisibilityConstants.isPublic(m.getVisibility())) {
return m.getDAO();
}
throw new PermissionException(
"Media item belongs to a user that isn't a friend");
}
public MediaDAO getMedia(String authToken, String id) throws
PermissionException {
Media m = media.findById(id).get();
if(VisibilityConstants.isPublic(m.getVisibility())) {
return m.getDAO();
}
if(!m.getOwner().getAuthtoken().equals(authToken)) {
if(!m.getOwner().isFriendByToken(authToken)) {
throw new PermissionException(
"Media item belongs to a user that isn't a friend");
}
}
return m.getDAO();
}
}
MediaService

More Related Content

PDF
Creating a Facebook Clone - Part XXIII - Transcript.pdf
PDF
Creating a Facebook Clone - Part XVIII.pdf
PDF
Creating a Facebook Clone - Part XXVI - Transcript.pdf
PDF
Creating a Facebook Clone - Part XXVI.pdf
PDF
Creating a Facebook Clone - Part XXIV.pdf
PDF
Creating a Facebook Clone - Part XVIII - Transcript.pdf
PDF
Creating a Facebook Clone - Part XXII.pdf
PDF
Creating a Facebook Clone - Part XXXVIII - Transcript.pdf
Creating a Facebook Clone - Part XXIII - Transcript.pdf
Creating a Facebook Clone - Part XVIII.pdf
Creating a Facebook Clone - Part XXVI - Transcript.pdf
Creating a Facebook Clone - Part XXVI.pdf
Creating a Facebook Clone - Part XXIV.pdf
Creating a Facebook Clone - Part XVIII - Transcript.pdf
Creating a Facebook Clone - Part XXII.pdf
Creating a Facebook Clone - Part XXXVIII - Transcript.pdf

Similar to Creating a Facebook Clone - Part XXIII.pdf (7)

PDF
Creating a Facebook Clone - Part XXII - Transcript.pdf
PDF
Creating a Facebook Clone - Part XXIV - Transcript.pdf
PDF
Creating a Facebook Clone - Part XXXVIII.pdf
PDF
Creating a Facebook Clone - Part XX - Transcript.pdf
PDF
Creating a Facebook Clone - Part XX.pdf
PDF
Creating a Facebook Clone - Part XXV.pdf
PDF
Creating a Facebook Clone - Part XXI.pdf
Creating a Facebook Clone - Part XXII - Transcript.pdf
Creating a Facebook Clone - Part XXIV - Transcript.pdf
Creating a Facebook Clone - Part XXXVIII.pdf
Creating a Facebook Clone - Part XX - Transcript.pdf
Creating a Facebook Clone - Part XX.pdf
Creating a Facebook Clone - Part XXV.pdf
Creating a Facebook Clone - Part XXI.pdf
Ad

More from ShaiAlmog1 (20)

PDF
The Duck Teaches Learn to debug from the masters. Local to production- kill ...
PDF
create-netflix-clone-06-client-ui.pdf
PDF
create-netflix-clone-01-introduction_transcript.pdf
PDF
create-netflix-clone-02-server_transcript.pdf
PDF
create-netflix-clone-04-server-continued_transcript.pdf
PDF
create-netflix-clone-01-introduction.pdf
PDF
create-netflix-clone-06-client-ui_transcript.pdf
PDF
create-netflix-clone-03-server.pdf
PDF
create-netflix-clone-04-server-continued.pdf
PDF
create-netflix-clone-05-client-model_transcript.pdf
PDF
create-netflix-clone-03-server_transcript.pdf
PDF
create-netflix-clone-02-server.pdf
PDF
create-netflix-clone-05-client-model.pdf
PDF
Creating a Whatsapp Clone - Part II.pdf
PDF
Creating a Whatsapp Clone - Part IX - Transcript.pdf
PDF
Creating a Whatsapp Clone - Part II - Transcript.pdf
PDF
Creating a Whatsapp Clone - Part V - Transcript.pdf
PDF
Creating a Whatsapp Clone - Part IV - Transcript.pdf
PDF
Creating a Whatsapp Clone - Part IV.pdf
PDF
Creating a Whatsapp Clone - Part I - Transcript.pdf
The Duck Teaches Learn to debug from the masters. Local to production- kill ...
create-netflix-clone-06-client-ui.pdf
create-netflix-clone-01-introduction_transcript.pdf
create-netflix-clone-02-server_transcript.pdf
create-netflix-clone-04-server-continued_transcript.pdf
create-netflix-clone-01-introduction.pdf
create-netflix-clone-06-client-ui_transcript.pdf
create-netflix-clone-03-server.pdf
create-netflix-clone-04-server-continued.pdf
create-netflix-clone-05-client-model_transcript.pdf
create-netflix-clone-03-server_transcript.pdf
create-netflix-clone-02-server.pdf
create-netflix-clone-05-client-model.pdf
Creating a Whatsapp Clone - Part II.pdf
Creating a Whatsapp Clone - Part IX - Transcript.pdf
Creating a Whatsapp Clone - Part II - Transcript.pdf
Creating a Whatsapp Clone - Part V - Transcript.pdf
Creating a Whatsapp Clone - Part IV - Transcript.pdf
Creating a Whatsapp Clone - Part IV.pdf
Creating a Whatsapp Clone - Part I - Transcript.pdf
Ad

Recently uploaded (20)

PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PPTX
sap open course for s4hana steps from ECC to s4
PDF
KodekX | Application Modernization Development
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
Big Data Technologies - Introduction.pptx
PPTX
Spectroscopy.pptx food analysis technology
DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Machine learning based COVID-19 study performance prediction
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Review of recent advances in non-invasive hemoglobin estimation
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Understanding_Digital_Forensics_Presentation.pptx
sap open course for s4hana steps from ECC to s4
KodekX | Application Modernization Development
Network Security Unit 5.pdf for BCA BBA.
Reach Out and Touch Someone: Haptics and Empathic Computing
“AI and Expert System Decision Support & Business Intelligence Systems”
Big Data Technologies - Introduction.pptx
Spectroscopy.pptx food analysis technology
The AUB Centre for AI in Media Proposal.docx
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Spectral efficient network and resource selection model in 5G networks
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
MYSQL Presentation for SQL database connectivity
Machine learning based COVID-19 study performance prediction
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton

Creating a Facebook Clone - Part XXIII.pdf

  • 1. Creating a Facebook Clone - Part XXIII
  • 2. @Service public class NotificationService { @Autowired private NotificationRepository notifications; public void sendNotification(User u, NotificationDAO nd) { Notification n = new Notification(); n.setDate(System.currentTimeMillis()); n.setReaction(nd.getReaction()); n.setReactionColor(nd.getReactionColor()); n.setText(nd.getText()); n.setUser(u); n.setWasRead(nd.isWasRead()); notifications.save(n); } public List<NotificationDAO> listNotifications(String authtoken, int page, int amount) { Page<Notification> notificationsPage = notifications. findNotificationsForUser( authtoken, PageRequest.of(page, amount, NotificationService
  • 3. @Service public class NotificationService { @Autowired private NotificationRepository notifications; public void sendNotification(User u, NotificationDAO nd) { Notification n = new Notification(); n.setDate(System.currentTimeMillis()); n.setReaction(nd.getReaction()); n.setReactionColor(nd.getReactionColor()); n.setText(nd.getText()); n.setUser(u); n.setWasRead(nd.isWasRead()); notifications.save(n); } public List<NotificationDAO> listNotifications(String authtoken, int page, int amount) { Page<Notification> notificationsPage = notifications. findNotificationsForUser( authtoken, PageRequest.of(page, amount, NotificationService
  • 4. @Service public class NotificationService { @Autowired private NotificationRepository notifications; public void sendNotification(User u, NotificationDAO nd) { Notification n = new Notification(); n.setDate(System.currentTimeMillis()); n.setReaction(nd.getReaction()); n.setReactionColor(nd.getReactionColor()); n.setText(nd.getText()); n.setUser(u); n.setWasRead(nd.isWasRead()); notifications.save(n); } public List<NotificationDAO> listNotifications(String authtoken, int page, int amount) { Page<Notification> notificationsPage = notifications. findNotificationsForUser( authtoken, PageRequest.of(page, amount, NotificationService
  • 5. public void sendNotification(User u, NotificationDAO nd) { Notification n = new Notification(); n.setDate(System.currentTimeMillis()); n.setReaction(nd.getReaction()); n.setReactionColor(nd.getReactionColor()); n.setText(nd.getText()); n.setUser(u); n.setWasRead(nd.isWasRead()); notifications.save(n); } public List<NotificationDAO> listNotifications(String authtoken, int page, int amount) { Page<Notification> notificationsPage = notifications. findNotificationsForUser( authtoken, PageRequest.of(page, amount, Sort.by(Sort.Direction.DESC, "date"))); List<NotificationDAO> resp = new ArrayList<>(); for(Notification c : notificationsPage) { resp.add(c.getDAO()); } return resp; } } NotificationService
  • 6. public void sendNotification(User u, NotificationDAO nd) { Notification n = new Notification(); n.setDate(System.currentTimeMillis()); n.setReaction(nd.getReaction()); n.setReactionColor(nd.getReactionColor()); n.setText(nd.getText()); n.setUser(u); n.setWasRead(nd.isWasRead()); notifications.save(n); } public List<NotificationDAO> listNotifications(String authtoken, int page, int amount) { Page<Notification> notificationsPage = notifications. findNotificationsForUser( authtoken, PageRequest.of(page, amount, Sort.by(Sort.Direction.DESC, "date"))); List<NotificationDAO> resp = new ArrayList<>(); for(Notification c : notificationsPage) { resp.add(c.getDAO()); } return resp; } } NotificationService
  • 7. public void sendNotification(User u, NotificationDAO nd) { Notification n = new Notification(); n.setDate(System.currentTimeMillis()); n.setReaction(nd.getReaction()); n.setReactionColor(nd.getReactionColor()); n.setText(nd.getText()); n.setUser(u); n.setWasRead(nd.isWasRead()); notifications.save(n); } public List<NotificationDAO> listNotifications(String authtoken, int page, int amount) { Page<Notification> notificationsPage = notifications. findNotificationsForUser( authtoken, PageRequest.of(page, amount, Sort.by(Sort.Direction.DESC, "date"))); List<NotificationDAO> resp = new ArrayList<>(); for(Notification c : notificationsPage) { resp.add(c.getDAO()); } return resp; } } NotificationService
  • 8. @Service public class MediaService { @Autowired private MediaRepository media; @Autowired private UserRepository user; public String storeMedia(String authtoken, byte[] data, String mimeType, String role, String visibility, String filename) { User u = user.findByAuthtoken(authtoken).get(0); Media m = new Media(); m.setData(data); m.setOwner(u); m.setDate(System.currentTimeMillis()); m.setFilename(filename); m.setMimeType(mimeType); m.setRole(role); MediaService
  • 9. @Service public class MediaService { @Autowired private MediaRepository media; @Autowired private UserRepository user; public String storeMedia(String authtoken, byte[] data, String mimeType, String role, String visibility, String filename) { User u = user.findByAuthtoken(authtoken).get(0); Media m = new Media(); m.setData(data); m.setOwner(u); m.setDate(System.currentTimeMillis()); m.setFilename(filename); m.setMimeType(mimeType); m.setRole(role); MediaService
  • 10. @Service public class MediaService { @Autowired private MediaRepository media; @Autowired private UserRepository user; public String storeMedia(String authtoken, byte[] data, String mimeType, String role, String visibility, String filename) { User u = user.findByAuthtoken(authtoken).get(0); Media m = new Media(); m.setData(data); m.setOwner(u); m.setDate(System.currentTimeMillis()); m.setFilename(filename); m.setMimeType(mimeType); m.setRole(role); MediaService
  • 11. private MediaRepository media; @Autowired private UserRepository user; public String storeMedia(String authtoken, byte[] data, String mimeType, String role, String visibility, String filename) { User u = user.findByAuthtoken(authtoken).get(0); Media m = new Media(); m.setData(data); m.setOwner(u); m.setDate(System.currentTimeMillis()); m.setFilename(filename); m.setMimeType(mimeType); m.setRole(role); m.setVisibility(visibility); media.save(m); return m.getId(); } public MediaDAO getPublicMedia(String id) throws PermissionException { Media m = media.findById(id).get(); if(VisibilityConstants.isPublic(m.getVisibility())) { MediaService
  • 12. m.setVisibility(visibility); media.save(m); return m.getId(); } public MediaDAO getPublicMedia(String id) throws PermissionException { Media m = media.findById(id).get(); if(VisibilityConstants.isPublic(m.getVisibility())) { return m.getDAO(); } throw new PermissionException( "Media item belongs to a user that isn't a friend"); } public MediaDAO getMedia(String authToken, String id) throws PermissionException { Media m = media.findById(id).get(); if(VisibilityConstants.isPublic(m.getVisibility())) { return m.getDAO(); } if(!m.getOwner().getAuthtoken().equals(authToken)) { if(!m.getOwner().isFriendByToken(authToken)) { throw new PermissionException( "Media item belongs to a user that isn't a friend"); MediaService
  • 13. return m.getId(); } public MediaDAO getPublicMedia(String id) throws PermissionException { Media m = media.findById(id).get(); if(VisibilityConstants.isPublic(m.getVisibility())) { return m.getDAO(); } throw new PermissionException( "Media item belongs to a user that isn't a friend"); } public MediaDAO getMedia(String authToken, String id) throws PermissionException { Media m = media.findById(id).get(); if(VisibilityConstants.isPublic(m.getVisibility())) { return m.getDAO(); } if(!m.getOwner().getAuthtoken().equals(authToken)) { if(!m.getOwner().isFriendByToken(authToken)) { throw new PermissionException( "Media item belongs to a user that isn't a friend"); } } MediaService public enum VisibilityConstants { PUBLIC("public"), FRIENDS("friends"); private String str; private VisibilityConstants(String str) { this.str = str; } public String asString() { return str; } public static boolean isPublic(String s) { return s == null || s.equalsIgnoreCase(PUBLIC.asString()); } }
  • 14. return m.getId(); } public MediaDAO getPublicMedia(String id) throws PermissionException { Media m = media.findById(id).get(); if(VisibilityConstants.isPublic(m.getVisibility())) { return m.getDAO(); } throw new PermissionException( "Media item belongs to a user that isn't a friend"); } public MediaDAO getMedia(String authToken, String id) throws PermissionException { Media m = media.findById(id).get(); if(VisibilityConstants.isPublic(m.getVisibility())) { return m.getDAO(); } if(!m.getOwner().getAuthtoken().equals(authToken)) { if(!m.getOwner().isFriendByToken(authToken)) { throw new PermissionException( "Media item belongs to a user that isn't a friend"); } } MediaService public class PermissionException extends Exception { public PermissionException(String message) { super(message); } }
  • 15. public MediaDAO getPublicMedia(String id) throws PermissionException { Media m = media.findById(id).get(); if(VisibilityConstants.isPublic(m.getVisibility())) { return m.getDAO(); } throw new PermissionException( "Media item belongs to a user that isn't a friend"); } public MediaDAO getMedia(String authToken, String id) throws PermissionException { Media m = media.findById(id).get(); if(VisibilityConstants.isPublic(m.getVisibility())) { return m.getDAO(); } if(!m.getOwner().getAuthtoken().equals(authToken)) { if(!m.getOwner().isFriendByToken(authToken)) { throw new PermissionException( "Media item belongs to a user that isn't a friend"); } } return m.getDAO(); } } MediaService
  • 16. public MediaDAO getPublicMedia(String id) throws PermissionException { Media m = media.findById(id).get(); if(VisibilityConstants.isPublic(m.getVisibility())) { return m.getDAO(); } throw new PermissionException( "Media item belongs to a user that isn't a friend"); } public MediaDAO getMedia(String authToken, String id) throws PermissionException { Media m = media.findById(id).get(); if(VisibilityConstants.isPublic(m.getVisibility())) { return m.getDAO(); } if(!m.getOwner().getAuthtoken().equals(authToken)) { if(!m.getOwner().isFriendByToken(authToken)) { throw new PermissionException( "Media item belongs to a user that isn't a friend"); } } return m.getDAO(); } } MediaService
  • 17. public MediaDAO getPublicMedia(String id) throws PermissionException { Media m = media.findById(id).get(); if(VisibilityConstants.isPublic(m.getVisibility())) { return m.getDAO(); } throw new PermissionException( "Media item belongs to a user that isn't a friend"); } public MediaDAO getMedia(String authToken, String id) throws PermissionException { Media m = media.findById(id).get(); if(VisibilityConstants.isPublic(m.getVisibility())) { return m.getDAO(); } if(!m.getOwner().getAuthtoken().equals(authToken)) { if(!m.getOwner().isFriendByToken(authToken)) { throw new PermissionException( "Media item belongs to a user that isn't a friend"); } } return m.getDAO(); } } MediaService