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
4bf1e33a
Commit
4bf1e33a
authored
Feb 20, 2016
by
Grzegorz Pietrusza
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
implement taskresource
parent
f6facfa4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
136 additions
and
6 deletions
+136
-6
CTFApplication.java
service/src/main/java/CTFApplication.java
+30
-1
TasksRepository.java
service/src/main/java/Repository/TasksRepository.java
+45
-0
TasksResource.java
service/src/main/java/api/TasksResource.java
+30
-0
Task.java
service/src/main/java/objects/Task.java
+31
-5
No files found.
service/src/main/java/CTFApplication.java
View file @
4bf1e33a
import
Repository.TasksRepository
;
import
Repository.TeamsRepository
;
import
Repository.TeamsRepository
;
import
Repository.UsersRepository
;
import
Repository.UsersRepository
;
import
api.TasksResource
;
import
api.TeamsResource
;
import
api.TeamsResource
;
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
core.TaskType
;
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.Task
;
import
objects.Team
;
import
objects.Team
;
import
objects.User
;
import
objects.User
;
...
@@ -25,7 +29,10 @@ public class CTFApplication extends Application<ApplicationConfiguration> {
...
@@ -25,7 +29,10 @@ public class CTFApplication extends Application<ApplicationConfiguration> {
MongoDBConnector
dbConnector
=
new
MongoDBConnector
();
MongoDBConnector
dbConnector
=
new
MongoDBConnector
();
dbConnector
.
connect
();
dbConnector
.
connect
();
UsersRepository
usersRepository
=
new
UsersRepository
(
dbConnector
);
//todo: use injections
// UsersRepository usersRepository = new UsersRepository(dbConnector);//todo: use injections
//GENERATE TEAMS
TeamsRepository
teamsRepository
=
new
TeamsRepository
(
dbConnector
);
TeamsRepository
teamsRepository
=
new
TeamsRepository
(
dbConnector
);
teamsRepository
.
clean
();
teamsRepository
.
clean
();
...
@@ -42,8 +49,30 @@ public class CTFApplication extends Application<ApplicationConfiguration> {
...
@@ -42,8 +49,30 @@ public class CTFApplication extends Application<ApplicationConfiguration> {
teamsRepository
.
add
(
new
Team
(
String
.
valueOf
(
UUID
.
randomUUID
()),
"description"
,
members
));
teamsRepository
.
add
(
new
Team
(
String
.
valueOf
(
UUID
.
randomUUID
()),
"description"
,
members
));
}
}
//GENERATE TEAMS END
//GENERATE TASKS
TasksRepository
tasksRepository
=
new
TasksRepository
(
dbConnector
);
tasksRepository
.
clean
();
int
numberOfNewTasks
=
20
;
for
(
int
i
=
0
;
i
<
20
;
i
++)
{
Task
task
=
new
Task
(
String
.
valueOf
(
UUID
.
randomUUID
()),
i
,
i
%
2
==
0
?
TaskType
.
CRYPTO
:
TaskType
.
WEB
);
tasksRepository
.
add
(
task
);
}
//GENERATE TASKS END
//REGISTER RESOURCES
// environment.jersey().register(new UsersResource(usersRepository));
// environment.jersey().register(new UsersResource(usersRepository));
environment
.
jersey
().
register
(
new
TeamsResource
(
teamsRepository
));
environment
.
jersey
().
register
(
new
TeamsResource
(
teamsRepository
));
environment
.
jersey
().
register
(
new
TasksResource
(
tasksRepository
));
}
}
private
Injector
createInjector
(
UsersRepository
usersRepository
)
{
private
Injector
createInjector
(
UsersRepository
usersRepository
)
{
...
...
service/src/main/java/Repository/TasksRepository.java
0 → 100644
View file @
4bf1e33a
package
Repository
;
import
database.MongoDBConnector
;
import
objects.Task
;
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
TasksRepository
implements
Repository
{
private
MongoDBConnector
mongoDBConnector
;
public
TasksRepository
(
MongoDBConnector
mongoDBConnector
)
{
this
.
mongoDBConnector
=
mongoDBConnector
;
}
@Override
public
void
get
(
UUID
uuid
)
{
}
@Override
public
List
<
Object
>
getAll
()
{
return
mongoDBConnector
.
getCollection
(
"tasks"
)
.
stream
()
.
map
((
Function
<
Document
,
Object
>)
Task:
:
new
)
.
collect
(
Collectors
.
toList
());
}
public
void
add
(
Task
task
)
{
mongoDBConnector
.
addDocument
(
"tasks"
,
new
Document
(
task
.
toMap
()));
}
public
void
clean
()
{
mongoDBConnector
.
removeCollection
(
"tasks"
);
}
}
//todo: generify!
\ No newline at end of file
service/src/main/java/api/TasksResource.java
0 → 100644
View file @
4bf1e33a
package
api
;
import
Repository.TasksRepository
;
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
=
"/tasks"
)
@Produces
(
MediaType
.
APPLICATION_JSON
)
public
class
TasksResource
{
private
TasksRepository
tasksRepository
;
//todo: use injections
public
TasksResource
(
TasksRepository
tasksRepository
)
{
this
.
tasksRepository
=
tasksRepository
;
}
@GET
public
List
<
Object
>
getTasks
()
{
return
tasksRepository
.
getAll
();
}
}
service/src/main/java/objects/Task.java
View file @
4bf1e33a
package
objects
;
package
objects
;
import
com.google.common.collect.ImmutableMap
;
import
core.TaskType
;
import
core.TaskType
;
import
org.bson.Document
;
import
java.util.Map
;
/**
/**
* Created by gpietrus on 20.02.2016.
* Created by gpietrus on 20.02.2016.
...
@@ -8,14 +12,27 @@ import core.TaskType;
...
@@ -8,14 +12,27 @@ import core.TaskType;
public
class
Task
{
public
class
Task
{
private
String
name
;
private
String
name
;
private
int
level
;
private
int
level
;
private
TaskType
taskType
;
private
TaskType
type
;
public
Task
(
Document
document
)
{
this
.
name
=
document
.
get
(
"name"
).
toString
();
this
.
level
=
(
int
)
document
.
get
(
"level"
);
this
.
type
=
TaskType
.
valueOf
(
document
.
get
(
"type"
).
toString
());
}
public
TaskType
getType
()
{
return
type
;
}
public
TaskType
getTaskType
()
{
public
Task
(
String
name
,
int
level
,
TaskType
type
)
{
return
taskType
;
this
.
name
=
name
;
this
.
level
=
level
;
this
.
type
=
type
;
}
}
public
void
setT
askType
(
TaskType
taskT
ype
)
{
public
void
setT
ype
(
TaskType
t
ype
)
{
this
.
t
askType
=
taskT
ype
;
this
.
t
ype
=
t
ype
;
}
}
public
String
getName
()
{
public
String
getName
()
{
...
@@ -33,4 +50,13 @@ public class Task {
...
@@ -33,4 +50,13 @@ public class Task {
public
void
setLevel
(
int
level
)
{
public
void
setLevel
(
int
level
)
{
this
.
level
=
level
;
this
.
level
=
level
;
}
}
//todo: refactor mapping
public
Map
<
String
,
Object
>
toMap
()
{
return
ImmutableMap
.<
String
,
Object
>
builder
()
.
put
(
"name"
,
name
)
.
put
(
"level"
,
level
)
.
put
(
"type"
,
type
.
getType
())
.
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