api.fabaccess-api/usersystem.capnp

52 lines
1.5 KiB
Cap'n Proto
Raw Normal View History

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;
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
}
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-28 20:11:08 +02:00
# DEPRECATED: use `addUserFallible` instead
2022-04-27 20:24:07 +02:00
removeUser @2 (user: User);
2022-04-28 20:10:06 +02:00
struct AddUserError {
2022-05-10 21:04:13 +00:00
enum AddUserError $CSharp.name("AddUserErrorEnum") {
2022-04-28 20:10:06 +02:00
alreadyExists @0;
# An user with that username already exists
2022-04-28 20:12:16 +02:00
2022-04-28 20:10:06 +02:00
usernameInvalid @1;
# The provided username is unusable, e.g. contains invalid characters,
# is too long or too short.
2022-04-28 20:12:16 +02:00
passwordInvalid @2;
# The provided password is unusable, e.g. it's of zero length
2022-04-28 20:10:06 +02:00
}
error @0 :AddUserError;
}
addUserFallible @3 (username :Text, password: Text) -> Fallible(User, AddUserError);
2021-02-03 19:06:14 +01:00
}
}