Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
S
SpaceAPI Server
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
1
Issues
1
List
Boards
Labels
Service Desk
Milestones
Iterations
Merge Requests
0
Merge Requests
0
Requirements
Requirements
List
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Test Cases
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issue
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Infrastruttura
SpaceAPI Server
Commits
1e40b6d7
Commit
1e40b6d7
authored
Jul 11, 2019
by
Aljaž Srebrnič
1
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add keymaster modifier
parent
8f268d16
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
28 additions
and
1 deletion
+28
-1
src/main.rs
src/main.rs
+28
-1
No files found.
src/main.rs
View file @
1e40b6d7
...
...
@@ -4,6 +4,7 @@ extern crate r2d2_redis;
use
spaceapi_server
::
SpaceapiServerBuilder
;
use
spaceapi_server
::
api
;
use
spaceapi_server
::
api
::
Keymaster
;
use
spaceapi_server
::
modifiers
::
StatusModifier
;
use
std
::
env
::
var
;
...
...
@@ -38,6 +39,31 @@ impl StatusModifier for OpenStatusFromRedisModifier {
}
}
struct
KeymastersFromRedisModifier
{
pool
:
RedisPool
}
impl
KeymastersFromRedisModifier
{
fn
new
(
pool
:
RedisPool
)
->
KeymastersFromRedisModifier
{
KeymastersFromRedisModifier
{
pool
}
}
}
impl
StatusModifier
for
KeymastersFromRedisModifier
{
fn
modify
(
&
self
,
status
:
&
mut
api
::
Status
)
{
let
conn
=
self
.pool
.get
()
.unwrap
();
// XXX Remove unwrap
let
km_redis
:
Vec
<
String
>
=
conn
.zrange
(
"keys"
,
0
,
-
1
)
.unwrap
();
let
mut
km
:
Vec
<
Keymaster
>
=
Vec
::
new
();
for
k
in
km_redis
{
let
mut
m
=
Keymaster
::
default
();
m
.irc_nick
=
Some
(
k
);
km
.push
(
m
)
}
status
.contact.keymasters
=
Some
(
km
);
}
}
fn
main
()
{
env_logger
::
init
();
...
...
@@ -77,7 +103,8 @@ fn main() {
let
server
=
SpaceapiServerBuilder
::
new
(
status
)
// .add_redis_pool(pool) waiting for
.redis_connection_info
(
&*
redis_connstring
)
.add_status_modifier
(
OpenStatusFromRedisModifier
::
new
(
pool
))
.add_status_modifier
(
OpenStatusFromRedisModifier
::
new
(
pool
.clone
()))
.add_status_modifier
(
KeymastersFromRedisModifier
::
new
(
pool
.clone
()))
.build
()
.expect
(
"Could not initialize server"
);
...
...
Aljaž Srebrnič
@g5pw
mentioned in issue
#3 (closed)
·
Jul 11, 2019
mentioned in issue
#3 (closed)
mentioned in issue #3
Toggle commit list
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