-
-
Notifications
You must be signed in to change notification settings - Fork 44
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #139 from mmnaseri/release-v1.1.4#138
Release v1.1.4#138
- Loading branch information
Showing
19 changed files
with
734 additions
and
25 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
33 changes: 33 additions & 0 deletions
33
...mock-sample-jpa/src/main/java/com/mmnaseri/utils/samples/spring/data/jpa/model/Group.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
package com.mmnaseri.utils.samples.spring.data.jpa.model; | ||
|
||
import javax.persistence.Entity; | ||
import javax.persistence.Id; | ||
|
||
/** | ||
* @author Milad Naseri ([email protected]) | ||
* @since 1.0 (6/29/16, 4:03 PM) | ||
*/ | ||
@Entity | ||
public class Group { | ||
|
||
@Id | ||
private String id; | ||
private String name; | ||
|
||
public String getId() { | ||
return id; | ||
} | ||
|
||
public void setId(String id) { | ||
this.id = id; | ||
} | ||
|
||
public String getName() { | ||
return name; | ||
} | ||
|
||
public void setName(String name) { | ||
this.name = name; | ||
} | ||
|
||
} |
45 changes: 45 additions & 0 deletions
45
...sample-jpa/src/main/java/com/mmnaseri/utils/samples/spring/data/jpa/model/Membership.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
package com.mmnaseri.utils.samples.spring.data.jpa.model; | ||
|
||
import javax.persistence.Entity; | ||
import javax.persistence.Id; | ||
import javax.persistence.ManyToOne; | ||
|
||
/** | ||
* @author Milad Naseri ([email protected]) | ||
* @since 1.0 (6/29/16, 4:04 PM) | ||
*/ | ||
@Entity | ||
public class Membership { | ||
|
||
@Id | ||
private String id; | ||
@ManyToOne | ||
private User user; | ||
@ManyToOne | ||
private Group group; | ||
|
||
public String getId() { | ||
return id; | ||
} | ||
|
||
public void setId(String id) { | ||
this.id = id; | ||
} | ||
|
||
public User getUser() { | ||
return user; | ||
} | ||
|
||
public void setUser(User user) { | ||
this.user = user; | ||
} | ||
|
||
public Group getGroup() { | ||
return group; | ||
} | ||
|
||
public void setGroup(Group group) { | ||
this.group = group; | ||
} | ||
|
||
} |
51 changes: 51 additions & 0 deletions
51
...-mock-sample-jpa/src/main/java/com/mmnaseri/utils/samples/spring/data/jpa/model/User.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
package com.mmnaseri.utils.samples.spring.data.jpa.model; | ||
|
||
import javax.persistence.Entity; | ||
import javax.persistence.Id; | ||
|
||
/** | ||
* @author Milad Naseri ([email protected]) | ||
* @since 1.0 (6/29/16, 4:03 PM) | ||
*/ | ||
@Entity | ||
public class User { | ||
|
||
@Id | ||
private String id; | ||
private String username; | ||
private String email; | ||
private String passwordHash; | ||
|
||
public String getId() { | ||
return id; | ||
} | ||
|
||
public void setId(String id) { | ||
this.id = id; | ||
} | ||
|
||
public String getUsername() { | ||
return username; | ||
} | ||
|
||
public void setUsername(String username) { | ||
this.username = username; | ||
} | ||
|
||
public String getEmail() { | ||
return email; | ||
} | ||
|
||
public void setEmail(String email) { | ||
this.email = email; | ||
} | ||
|
||
public String getPasswordHash() { | ||
return passwordHash; | ||
} | ||
|
||
public void setPasswordHash(String passwordHash) { | ||
this.passwordHash = passwordHash; | ||
} | ||
|
||
} |
11 changes: 11 additions & 0 deletions
11
.../src/main/java/com/mmnaseri/utils/samples/spring/data/jpa/repository/GroupRepository.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
package com.mmnaseri.utils.samples.spring.data.jpa.repository; | ||
|
||
import com.mmnaseri.utils.samples.spring.data.jpa.model.Group; | ||
import org.springframework.data.jpa.repository.JpaRepository; | ||
|
||
/** | ||
* @author Milad Naseri ([email protected]) | ||
* @since 1.0 (6/29/16, 4:05 PM) | ||
*/ | ||
public interface GroupRepository extends JpaRepository<Group, String> { | ||
} |
21 changes: 21 additions & 0 deletions
21
...main/java/com/mmnaseri/utils/samples/spring/data/jpa/repository/MembershipRepository.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
package com.mmnaseri.utils.samples.spring.data.jpa.repository; | ||
|
||
import com.mmnaseri.utils.samples.spring.data.jpa.model.Group; | ||
import com.mmnaseri.utils.samples.spring.data.jpa.model.Membership; | ||
import com.mmnaseri.utils.samples.spring.data.jpa.model.User; | ||
import org.springframework.data.jpa.repository.JpaRepository; | ||
|
||
import java.util.List; | ||
|
||
/** | ||
* @author Milad Naseri ([email protected]) | ||
* @since 1.0 (6/29/16, 4:06 PM) | ||
*/ | ||
public interface MembershipRepository extends JpaRepository<Membership, String> { | ||
|
||
List<Membership> findByUser(User user); | ||
|
||
List<Membership> findByGroup(Group group); | ||
|
||
Membership findByUserAndGroup(User user, Group group); | ||
} |
18 changes: 18 additions & 0 deletions
18
...a/src/main/java/com/mmnaseri/utils/samples/spring/data/jpa/repository/UserRepository.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
package com.mmnaseri.utils.samples.spring.data.jpa.repository; | ||
|
||
import com.mmnaseri.utils.samples.spring.data.jpa.model.User; | ||
import org.springframework.data.jpa.repository.JpaRepository; | ||
|
||
/** | ||
* @author Milad Naseri ([email protected]) | ||
* @since 1.0 (6/29/16, 4:05 PM) | ||
*/ | ||
public interface UserRepository extends JpaRepository<User, String> { | ||
|
||
User findByUsernameOrEmailAllIgnoreCase(String username, String email); | ||
|
||
User findByUsernameIgnoreCase(String username); | ||
|
||
User findByEmailIgnoreCase(String email); | ||
|
||
} |
25 changes: 25 additions & 0 deletions
25
...le-jpa/src/main/java/com/mmnaseri/utils/samples/spring/data/jpa/service/GroupService.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
package com.mmnaseri.utils.samples.spring.data.jpa.service; | ||
|
||
import com.mmnaseri.utils.samples.spring.data.jpa.model.Group; | ||
import com.mmnaseri.utils.samples.spring.data.jpa.model.User; | ||
|
||
import java.util.List; | ||
|
||
/** | ||
* @author Milad Naseri ([email protected]) | ||
* @since 1.0 (6/29/16, 5:26 PM) | ||
*/ | ||
public interface GroupService { | ||
|
||
Group createGroup(String name); | ||
|
||
void deleteGroup(Group group); | ||
|
||
void join(Group group, User user); | ||
|
||
void leave(Group group, User user); | ||
|
||
List<User> members(Group group); | ||
|
||
List<Group> groups(User user); | ||
} |
21 changes: 21 additions & 0 deletions
21
...ple-jpa/src/main/java/com/mmnaseri/utils/samples/spring/data/jpa/service/UserService.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
package com.mmnaseri.utils.samples.spring.data.jpa.service; | ||
|
||
import com.mmnaseri.utils.samples.spring.data.jpa.model.User; | ||
|
||
/** | ||
* @author Milad Naseri ([email protected]) | ||
* @since 1.0 (6/29/16, 4:06 PM) | ||
*/ | ||
public interface UserService { | ||
|
||
User createUser(String username, String email, String password); | ||
|
||
void updatePassword(String handle, String oldPassword, String newPassword); | ||
|
||
void deleteUser(String handle); | ||
|
||
User lookup(String handle); | ||
|
||
User authenticate(String handle, String password); | ||
|
||
} |
81 changes: 81 additions & 0 deletions
81
...ain/java/com/mmnaseri/utils/samples/spring/data/jpa/service/impl/DefaultGroupService.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
package com.mmnaseri.utils.samples.spring.data.jpa.service.impl; | ||
|
||
import com.mmnaseri.utils.samples.spring.data.jpa.model.Group; | ||
import com.mmnaseri.utils.samples.spring.data.jpa.model.Membership; | ||
import com.mmnaseri.utils.samples.spring.data.jpa.model.User; | ||
import com.mmnaseri.utils.samples.spring.data.jpa.repository.GroupRepository; | ||
import com.mmnaseri.utils.samples.spring.data.jpa.repository.MembershipRepository; | ||
import com.mmnaseri.utils.samples.spring.data.jpa.service.GroupService; | ||
|
||
import java.util.ArrayList; | ||
import java.util.List; | ||
|
||
/** | ||
* @author Milad Naseri ([email protected]) | ||
* @since 1.0 (6/30/16, 9:16 AM) | ||
*/ | ||
public class DefaultGroupService implements GroupService { | ||
|
||
private final GroupRepository groupRepository; | ||
private final MembershipRepository membershipRepository; | ||
|
||
public DefaultGroupService(GroupRepository groupRepository, MembershipRepository membershipRepository) { | ||
this.groupRepository = groupRepository; | ||
this.membershipRepository = membershipRepository; | ||
} | ||
|
||
@Override | ||
public Group createGroup(String name) { | ||
final Group group = new Group(); | ||
group.setName(name); | ||
return groupRepository.save(group); | ||
} | ||
|
||
@Override | ||
public void deleteGroup(Group group) { | ||
final List<Membership> memberships = membershipRepository.findByGroup(group); | ||
membershipRepository.delete(memberships); | ||
groupRepository.delete(group); | ||
} | ||
|
||
@Override | ||
public void join(Group group, User user) { | ||
if (membershipRepository.findByUserAndGroup(user, group) != null) { | ||
return; | ||
} | ||
final Membership membership = new Membership(); | ||
membership.setGroup(group); | ||
membership.setUser(user); | ||
membershipRepository.save(membership); | ||
} | ||
|
||
@Override | ||
public void leave(Group group, User user) { | ||
final Membership membership = membershipRepository.findByUserAndGroup(user, group); | ||
if (membership == null) { | ||
return; | ||
} | ||
membershipRepository.delete(membership); | ||
} | ||
|
||
@Override | ||
public List<User> members(Group group) { | ||
final List<Membership> memberships = membershipRepository.findByGroup(group); | ||
final List<User> users = new ArrayList<>(); | ||
for (Membership membership : memberships) { | ||
users.add(membership.getUser()); | ||
} | ||
return users; | ||
} | ||
|
||
@Override | ||
public List<Group> groups(User user) { | ||
final List<Membership> memberships = membershipRepository.findByUser(user); | ||
final List<Group> groups = new ArrayList<>(); | ||
for (Membership membership : memberships) { | ||
groups.add(membership.getGroup()); | ||
} | ||
return groups; | ||
} | ||
|
||
} |
Oops, something went wrong.