Serverstruktur - GoryMoon/DIT076-Flow GitHub Wiki
Serverstruktur
Serverstrukturen utgörs av en JEE RESTful backend med följande delar:
Entity-klasser
Utgörs av en uppsättning klasser som representerar problemdomänen, anslagsflödestjänsten Flow.
User
En användare i Flow-applikationen. Håller reda på användarens id, email, smeknamn, lösenord, tillfälle då användaren skapades, vilka anslag användaren har gjort, användarens gruppmedlemskap samt vilka anslag användaren har dolt. Erbjuder extra funktionalitet i form av metoder som ger status relaterad till användargrupper, metoder som get status beträffande om användare döljer anslag samt metod för att ge de grupper som användaren är med i.
UserGroup
Representerar en användargrupp. Håller reda på gruppen id, namn, vilka medlemskap som finns i gruppen, när gruppen skapades och vilka anslag som är associerade med gruppen
Post
Ett anslag i flow. Håller reda på anslagets id, titel, textinnehåll, användaren som skapade anslaget, vilken användargrupp anslaget är associerat med, vilka kommentarer som har gjorts på anslaget, vilka döljningsrelationer anslaget är involverat i samt när anslaget skapades.
Comment
Är en kommentar på ett anslag. Håller reda på kommentarens id, textinnehåll, vilket anslag kommentaren hör till, kommentarens visningstatus - huruvida kommentaren är censurerad - samt när kommentaren skapades.
Membership
Representerar en användares medlemskap i en användargrupp. Håller reda på vilken användare och användargrupp som ingår i medlemskapet, vilken status användaren har i användargruppen - ägare, aktiv medlem eller inbjuden - samt när medlemskapet skapades.
HiddenPost
Utgör en döljningsrelation mellan en användare och ett anslag. Håller reda på vilken användare och vilket anslag som ingår i relationen samt när döljningsrelationen skapades.
Session beans
Abstraherar bort komplexitet i applikationen, särskilt vad gäller interaktionen med Java Persistance API:et. De utgöras av följande klasser, som motsvarar entity-klasserna:
UserRegistry, UserGroupRegistry, PostRegistry, CommentRegistry, MembershipRegistry, HiddenPostRegistry.
Samtliga ärver nödvändig grundläggande och generell funktionalitet av AbstractQuery och AbstractDAO vars utförande det har funnits föga anledning att förändra, med undantag för tillägg av funktionalitet som modifierar cachningsbeteendet.
Java API for RESTful WS resource-klasser
Resursklasserna representerar de "resurser" som webtjänsten exponerar för klienter och tillgängliggör metoder för. Detaljer beträffande vilka metoder som tillgängliggörs för resurserna finns här. Flow har följande resursklasser:
AccountResource: Användarkonto
UserGroupResource: Användargrupp
PostResource: Anslag
CommentResource: Kommentar
MembershipResource: Medlemskap - erbjuder endast funktionalitet för testning, i den slugiltliga version hanteras medlemskap med UserGroupResource.
UserResource: En användare - erbjuder endast funktionalitet för testning, i den slugiltliga version hanteras användare med AccountResource.