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
16f5d3a5
Commit
16f5d3a5
authored
Mar 08, 2016
by
Grzegorz Pietrusza
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
refactoring tasksrepository part1
parent
9e965738
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
40 additions
and
44 deletions
+40
-44
Solution.java
service/src/main/java/objects/Solution.java
+20
-15
TasksRepository.java
service/src/main/java/repositories/TasksRepository.java
+10
-23
TeamsRepository.java
service/src/main/java/repositories/TeamsRepository.java
+9
-2
SolutionsResource.java
service/src/main/java/resources/SolutionsResource.java
+1
-4
No files found.
service/src/main/java/objects/Solution.java
View file @
16f5d3a5
package
objects
;
import
objects.tasks.Task
;
import
org.bson.types.ObjectId
;
import
org.mongodb.morphia.annotations.Entity
;
import
org.mongodb.morphia.annotations.Id
;
/**
* Created by gpietrus on 20.02.2016.
*/
@Entity
(
"solutions"
)
public
class
Solution
{
public
class
Solution
{
@Id
private
ObjectId
id
;
private
String
taskName
;
private
Task
task
;
private
Team
team
;
public
Solution
(
Team
team
,
String
taskName
)
{
public
Solution
(
Team
team
,
Task
task
)
{
this
.
team
=
team
;
this
.
task
Name
=
taskName
;
this
.
task
=
task
;
}
public
Solution
()
{
public
Solution
()
{
}
public
void
setTaskName
(
String
taskName
)
{
this
.
taskName
=
taskName
;
public
void
setTeam
(
Team
team
)
{
this
.
team
=
team
;
}
public
void
setTeam
(
Team
team
)
{
this
.
team
=
team
;
public
Task
getTask
()
{
return
task
;
}
public
String
getTaskName
()
{
return
taskName
;
public
void
setTask
(
Task
task
)
{
this
.
task
=
task
;
}
public
Team
getTeam
()
{
public
Team
getTeam
()
{
return
team
;
}
}
service/src/main/java/repositories/TasksRepository.java
View file @
16f5d3a5
...
...
@@ -48,7 +48,7 @@ public class TasksRepository implements Repository
}
public
Task
get
(
String
taskName
)
{
//todo: task name?
{
return
datastore
.
createQuery
(
Task
.
class
)
.
filter
(
"name"
,
taskName
)
.
get
();
...
...
@@ -144,14 +144,9 @@ public class TasksRepository implements Repository
return
encodedHash
;
}
private
void
acceptSolution
(
String
username
,
Integer
taskLevel
)
private
void
acceptSolution
(
Team
team
,
Task
task
)
{
User
user
=
usersRepository
.
getUserByName
(
username
);
Optional
<
Team
>
team
=
teamsRepository
.
getTeamByUser
(
user
);
Optional
<
Task
>
task
=
getTaskByLevel
(
taskLevel
);
if
(
team
.
isPresent
()
&&
task
.
isPresent
())
{
solutionsRepository
.
add
(
new
Solution
(
team
.
get
(),
task
.
get
().
getName
()));
}
solutionsRepository
.
add
(
new
Solution
(
team
,
task
));
}
private
Optional
<
Task
>
getTaskByLevel
(
Integer
level
)
...
...
@@ -161,36 +156,28 @@ public class TasksRepository implements Repository
.
findFirst
();
}
//todo: cleanup
//todo: depracted?
private
void
acceptSolution
(
String
username
,
Task
task
)
{
User
user
=
usersRepository
.
getUserByName
(
username
);
Optional
<
Team
>
team
=
teamsRepository
.
getTeamByUser
(
user
);
if
(
team
.
isPresent
())
{
solutionsRepository
.
add
(
new
Solution
(
team
.
get
(),
task
.
getName
()));
}
}
private
Optional
<
Integer
>
findTaskLevelByFlag
(
String
username
,
String
flagValue
)
private
Optional
<
Task
>
findTaskByUserFlag
(
String
username
,
String
flagValue
)
{
return
getUserFlagsHashes
(
username
).
entrySet
()
.
stream
()
.
filter
(
flagsMapEntry
->
flagsMapEntry
.
getKey
().
contains
(
flagValue
))
.
map
(
Map
.
Entry
::
getValue
)
.
map
(
level
->
getTaskByLevel
(
level
).
get
())
.
findFirst
();
}
public
boolean
checkFlag
(
String
username
,
String
flagValue
)
{
Optional
<
Integer
>
taskLevel
=
findTaskLevelByFlag
(
username
,
flagValue
);
if
(
taskLevel
.
isPresent
())
{
acceptSolution
(
username
,
taskLevel
.
get
());
Optional
<
Task
>
task
=
findTaskByUserFlag
(
username
,
flagValue
);
Optional
<
Team
>
team
=
teamsRepository
.
getTeamByUserName
(
username
);
if
(
task
.
isPresent
()
&&
team
.
isPresent
())
{
acceptSolution
(
team
.
get
(),
task
.
get
());
return
true
;
}
return
false
;
}
//TODO!!!
public
Optional
<
List
<
String
>>
getUserTaskFlags
(
String
username
,
Integer
taskLevel
)
{
//todo: task level, task id
return
getUserFlagsHashes
(
username
).
entrySet
().
stream
()
...
...
service/src/main/java/repositories/TeamsRepository.java
View file @
16f5d3a5
...
...
@@ -19,11 +19,14 @@ public class TeamsRepository implements Repository {
private
Datastore
datastore
;
private
ApplicationConfiguration
applicationConfiguration
;
private
UsersRepository
usersRepository
;
@Inject
public
TeamsRepository
(
Datastore
datastore
,
ApplicationConfiguration
applicationConfiguration
)
{
public
TeamsRepository
(
Datastore
datastore
,
ApplicationConfiguration
applicationConfiguration
,
UsersRepository
usersRepository
)
{
this
.
datastore
=
datastore
;
this
.
applicationConfiguration
=
applicationConfiguration
;
this
.
usersRepository
=
usersRepository
;
initialize
();
}
...
...
@@ -33,6 +36,11 @@ public class TeamsRepository implements Repository {
.
findFirst
();
}
public
Optional
<
Team
>
getTeamByUserName
(
String
username
)
{
return
getTeamByUser
(
usersRepository
.
getUserByName
(
username
));
}
public
void
get
(
UUID
uuid
)
{
}
...
...
@@ -60,5 +68,4 @@ public class TeamsRepository implements Repository {
public
void
clean
()
{
datastore
.
getCollection
(
Team
.
class
).
drop
();
}
}
service/src/main/java/resources/SolutionsResource.java
View file @
16f5d3a5
...
...
@@ -19,9 +19,6 @@ import java.util.Map;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
/**
* Created by gpietrus on 16.02.16.
*/
@Singleton
@Path
(
value
=
"/solutions"
)
@Produces
(
MediaType
.
APPLICATION_JSON
)
...
...
@@ -54,7 +51,7 @@ public class SolutionsResource {
.
collect
(
Collectors
.
groupingBy
(
new
Function
<
Solution
,
String
>()
{
@Override
public
String
apply
(
Solution
solution
)
{
return
solution
.
getTaskName
();
return
solution
.
getTask
().
get
Name
();
}
}))
.
entrySet
()
...
...
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