2021-02-01 23:23:12 +01:00
|
|
|
@0x9a05e95f65f2edda;
|
|
|
|
|
|
|
|
using Rust = import "programming_language/rust.capnp";
|
|
|
|
$Rust.parentModule("schema");
|
|
|
|
|
|
|
|
using CSharp = import "programming_language/csharp.capnp";
|
|
|
|
$CSharp.namespace("FabAccessAPI.Schema");
|
|
|
|
|
2021-02-03 19:06:14 +01:00
|
|
|
using General = import "general.capnp";
|
|
|
|
using User = import "user.capnp".User;
|
2022-04-28 19:01:15 +02:00
|
|
|
using Optional = General.Optional;
|
|
|
|
using Fallible = General.Fallible;
|
2021-02-03 19:06:14 +01:00
|
|
|
|
2022-04-21 20:08:55 +02:00
|
|
|
struct UserSystem
|
2021-02-01 23:23:12 +01:00
|
|
|
{
|
2022-04-21 20:08:55 +02:00
|
|
|
info @0 :Info;
|
2021-02-03 19:06:14 +01:00
|
|
|
interface Info $CSharp.name("InfoInterface") {
|
2022-04-21 20:19:59 +02:00
|
|
|
getUserSelf @0 ( ) -> User;
|
2021-02-03 19:06:14 +01:00
|
|
|
}
|
|
|
|
|
2022-04-28 19:01:15 +02:00
|
|
|
search @2 :Search;
|
|
|
|
interface Search $CSharp.name("SearchInterface") {
|
|
|
|
getUserByName @0 (username: Text) -> Optional(User);
|
|
|
|
}
|
|
|
|
|
2022-04-21 20:08:55 +02:00
|
|
|
manage @1 :Manage;
|
2021-02-03 19:06:14 +01:00
|
|
|
interface Manage $CSharp.name("ManageInterface") {
|
2021-08-26 23:52:36 +02:00
|
|
|
getUserList @0 () -> ( user_list :List(User) );
|
2021-02-03 19:06:14 +01:00
|
|
|
|
2022-04-28 20:10:06 +02:00
|
|
|
addUser @1 (username :Text, password: Text) -> User;
|
2022-04-27 20:24:07 +02:00
|
|
|
removeUser @2 (user: User);
|
2022-04-28 20:10:06 +02:00
|
|
|
|
|
|
|
struct AddUserError {
|
|
|
|
enum AddUserError {
|
|
|
|
alreadyExists @0;
|
|
|
|
# An user with that username already exists
|
|
|
|
usernameInvalid @1;
|
|
|
|
# The provided username is unusable, e.g. contains invalid characters,
|
|
|
|
# is too long or too short.
|
|
|
|
}
|
|
|
|
error @0 :AddUserError;
|
|
|
|
}
|
|
|
|
addUserFallible @3 (username :Text, password: Text) -> Fallible(User, AddUserError);
|
2021-02-03 19:06:14 +01:00
|
|
|
}
|
2022-04-20 10:50:01 +00:00
|
|
|
}
|