Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
C
CTF
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Grzegorz
CTF
Commits
74a4b062
Commit
74a4b062
authored
Feb 20, 2016
by
Grzegorz Pietrusza
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
implement team resource
parent
ad3e143e
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
141 additions
and
19 deletions
+141
-19
CTFApplication.java
service/src/main/java/CTFApplication.java
+22
-15
Repository.java
service/src/main/java/Repository/Repository.java
+1
-3
TeamsRepository.java
service/src/main/java/Repository/TeamsRepository.java
+43
-0
UsersRepository.java
service/src/main/java/Repository/UsersRepository.java
+0
-1
TeamsResource.java
service/src/main/java/api/TeamsResource.java
+30
-0
Team.java
service/src/main/java/objects/Team.java
+45
-0
No files found.
service/src/main/java/CTFApplication.java
View file @
74a4b062
import
Repository.TeamsRepository
;
import
Repository.UsersRepository
;
import
Repository.UsersRepository
;
import
api.
User
sResource
;
import
api.
Team
sResource
;
import
com.google.inject.AbstractModule
;
import
com.google.inject.AbstractModule
;
import
com.google.inject.Guice
;
import
com.google.inject.Guice
;
import
com.google.inject.Injector
;
import
com.google.inject.Injector
;
import
database.MongoDBConnector
;
import
database.MongoDBConnector
;
import
io.dropwizard.Application
;
import
io.dropwizard.Application
;
import
io.dropwizard.setup.Environment
;
import
io.dropwizard.setup.Environment
;
import
objects.Team
;
import
objects.User
;
import
objects.User
;
import
java.util.ArrayList
;
import
java.util.Random
;
import
java.util.Random
;
import
java.util.UUID
;
import
java.util.UUID
;
...
@@ -19,25 +22,28 @@ public class CTFApplication extends Application<ApplicationConfiguration> {
...
@@ -19,25 +22,28 @@ public class CTFApplication extends Application<ApplicationConfiguration> {
@Override
@Override
public
void
run
(
ApplicationConfiguration
applicationConfiguration
,
Environment
environment
)
throws
Exception
{
public
void
run
(
ApplicationConfiguration
applicationConfiguration
,
Environment
environment
)
throws
Exception
{
MongoDBConnector
mongoDB
Connector
=
new
MongoDBConnector
();
MongoDBConnector
db
Connector
=
new
MongoDBConnector
();
mongoDB
Connector
.
connect
();
db
Connector
.
connect
();
UsersRepository
usersRepository
=
new
UsersRepository
(
mongoDBConnector
);
//todo: use injections
UsersRepository
usersRepository
=
new
UsersRepository
(
dbConnector
);
//todo: use injections
usersRepository
.
clean
();
//todo
TeamsRepository
teamsRepository
=
new
TeamsRepository
(
dbConnector
);
teamsRepository
.
clean
();
int
numberOfNewUsers
=
new
Random
().
nextInt
(
50
);
int
numberOfNewTeams
=
new
Random
().
nextInt
(
20
);
for
(
int
i
=
0
;
i
<
numberOfNewUsers
;
i
++)
{
int
numberOfTeamMembers
=
3
;
User
user
=
new
User
(
String
.
valueOf
(
UUID
.
randomUUID
()),
"mehow"
);
usersRepository
.
add
(
user
);
}
// Injector injector = createInjector(usersRepository);
for
(
int
i
=
0
;
i
<
numberOfNewTeams
;
i
++)
{
// final LifecycleEnvironment lifecycleEnvironment = environment.lifecycle();
ArrayList
<
User
>
members
=
new
ArrayList
<>();
//
for
(
int
j
=
0
;
j
<
numberOfTeamMembers
;
j
++)
{
// lifecycleEnvironment.manage((Managed) );
members
.
add
(
new
User
(
String
.
valueOf
(
UUID
.
randomUUID
()),
"passwd"
,
"email"
));
}
environment
.
jersey
().
register
(
new
UsersResource
(
usersRepository
));
teamsRepository
.
add
(
new
Team
(
String
.
valueOf
(
UUID
.
randomUUID
()),
"description"
,
members
));
}
// environment.jersey().register(new UsersResource(usersRepository));
environment
.
jersey
().
register
(
new
TeamsResource
(
teamsRepository
));
}
}
private
Injector
createInjector
(
UsersRepository
usersRepository
)
{
private
Injector
createInjector
(
UsersRepository
usersRepository
)
{
...
@@ -48,6 +54,7 @@ public class CTFApplication extends Application<ApplicationConfiguration> {
...
@@ -48,6 +54,7 @@ public class CTFApplication extends Application<ApplicationConfiguration> {
}
}
});
});
}
}
public
static
void
main
(
String
[]
args
)
throws
Exception
{
public
static
void
main
(
String
[]
args
)
throws
Exception
{
//todo: add mongo-java-driver as maven dep
//todo: add mongo-java-driver as maven dep
new
CTFApplication
().
run
(
args
);
new
CTFApplication
().
run
(
args
);
...
...
service/src/main/java/Repository/Repository.java
View file @
74a4b062
package
Repository
;
package
Repository
;
import
objects.User
;
import
java.util.List
;
import
java.util.List
;
import
java.util.UUID
;
import
java.util.UUID
;
...
@@ -12,5 +10,5 @@ public interface Repository {
...
@@ -12,5 +10,5 @@ public interface Repository {
void
get
(
UUID
uuid
);
void
get
(
UUID
uuid
);
List
<
Object
>
getAll
();
List
<
Object
>
getAll
();
void
add
(
User
user
);
//todo: not user //todo: use generics?
//
void add(User user); //todo: not user //todo: use generics?
}
}
service/src/main/java/Repository/TeamsRepository.java
0 → 100644
View file @
74a4b062
package
Repository
;
import
database.MongoDBConnector
;
import
objects.Team
;
import
org.bson.Document
;
import
java.util.List
;
import
java.util.UUID
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
/**
* Created by gpietrus on 20.02.2016.
*/
public
class
TeamsRepository
implements
Repository
{
private
MongoDBConnector
mongoDBConnector
;
public
TeamsRepository
(
MongoDBConnector
mongoDBConnector
)
{
this
.
mongoDBConnector
=
mongoDBConnector
;
}
@Override
public
void
get
(
UUID
uuid
)
{
}
@Override
public
List
<
Object
>
getAll
()
{
return
mongoDBConnector
.
getCollection
(
"teams"
)
.
stream
()
.
map
((
Function
<
Document
,
Object
>)
Team:
:
new
)
.
collect
(
Collectors
.
toList
());
}
public
void
add
(
Team
team
)
{
mongoDBConnector
.
addDocument
(
"teams"
,
new
Document
(
team
.
toMap
()));
}
public
void
clean
()
{
mongoDBConnector
.
removeCollection
(
"teams"
);
}
}
service/src/main/java/Repository/UsersRepository.java
View file @
74a4b062
...
@@ -34,7 +34,6 @@ public class UsersRepository implements Repository {
...
@@ -34,7 +34,6 @@ public class UsersRepository implements Repository {
.
collect
(
Collectors
.
toList
());
.
collect
(
Collectors
.
toList
());
}
}
@Override
public
void
add
(
User
user
)
{
public
void
add
(
User
user
)
{
mongoDBConnector
.
addDocument
(
"users"
,
new
Document
(
user
.
toMap
()));
mongoDBConnector
.
addDocument
(
"users"
,
new
Document
(
user
.
toMap
()));
}
}
...
...
service/src/main/java/api/TeamsResource.java
0 → 100644
View file @
74a4b062
package
api
;
import
Repository.TeamsRepository
;
import
javax.ws.rs.GET
;
import
javax.ws.rs.Path
;
import
javax.ws.rs.Produces
;
import
javax.ws.rs.core.MediaType
;
import
java.util.List
;
/**
* Created by gpietrus on 16.02.16.
*/
@Path
(
value
=
"/teams"
)
@Produces
(
MediaType
.
APPLICATION_JSON
)
public
class
TeamsResource
{
private
TeamsRepository
teamsRepository
;
//todo: use injections
public
TeamsResource
(
TeamsRepository
teamsRepository
)
{
this
.
teamsRepository
=
teamsRepository
;
}
@GET
public
List
<
Object
>
getTeams
()
{
return
teamsRepository
.
getAll
();
}
}
service/src/main/java/objects/Team.java
View file @
74a4b062
package
objects
;
package
objects
;
import
com.google.common.collect.ImmutableMap
;
import
org.bson.Document
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
/**
/**
* Created by gpietrus on 20.02.2016.
* Created by gpietrus on 20.02.2016.
*/
*/
public
class
Team
{
public
class
Team
{
private
String
name
;
private
String
name
;
private
String
description
;
private
String
description
;
private
List
<
User
>
members
;
public
Team
(
Document
document
)
{
//todo: refactor mapping
this
.
name
=
document
.
get
(
"name"
).
toString
();
this
.
description
=
document
.
get
(
"description"
).
toString
();
this
.
members
=
(
List
<
User
>)
document
.
get
(
"members"
);
//todo
}
public
List
getMembers
()
{
return
members
;
}
public
void
setMembers
(
List
members
)
{
this
.
members
=
members
;
}
public
Team
(
String
name
,
String
description
,
List
<
User
>
members
)
{
this
.
name
=
name
;
this
.
description
=
description
;
this
.
members
=
members
;
}
public
String
getName
()
{
public
String
getName
()
{
return
name
;
return
name
;
...
@@ -22,4 +51,20 @@ public class Team {
...
@@ -22,4 +51,20 @@ public class Team {
public
void
setDescription
(
String
description
)
{
public
void
setDescription
(
String
description
)
{
this
.
description
=
description
;
this
.
description
=
description
;
}
}
//todo: refactor mapping
public
Map
<
String
,
Object
>
toMap
()
{
//todo: refacotr mapping
List
<
Object
>
membersList
=
members
.
stream
()
.
map
(
User:
:
toMap
)
.
collect
(
Collectors
.
toList
());
return
ImmutableMap
.<
String
,
Object
>
builder
()
.
put
(
"name"
,
name
)
.
put
(
"description"
,
description
)
.
put
(
"members"
,
membersList
)
.
build
();
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment