ircd:Ⓜ️:groups: Start namespace, central lib; preliminary client resource module.

This commit is contained in:
Jason Volk 2020-07-30 07:19:16 -07:00
parent 9c3cd55639
commit 1877972828
17 changed files with 224 additions and 0 deletions

17
include/ircd/m/groups.h Normal file
View File

@ -0,0 +1,17 @@
// The Construct
//
// Copyright (C) The Construct Developers, Authors & Contributors
// Copyright (C) 2016-2020 Jason Volk <jason@zemos.net>
//
// Permission to use, copy, modify, and/or distribute this software for any
// purpose with or without fee is hereby granted, provided that the above
// copyright notice and this permission notice is present in all copies. The
// full license for this software is available in the LICENSE file.
#pragma once
#define HAVE_IRCD_M_GROUPS_H
namespace ircd::m::groups
{
extern log::log log;
}

View File

@ -71,6 +71,7 @@ namespace ircd
#include "users.h"
#include "rooms.h"
#include "rooms_summary.h"
#include "groups.h"
#include "membership.h"
#include "filter.h"
#include "events.h"

View File

@ -145,6 +145,7 @@ libircd_matrix_la_SOURCES += fed_well_known.cc
libircd_matrix_la_SOURCES += feds.cc
libircd_matrix_la_SOURCES += fetch.cc
libircd_matrix_la_SOURCES += gossip.cc
libircd_matrix_la_SOURCES += groups.cc
libircd_matrix_la_SOURCES += request.cc
libircd_matrix_la_SOURCES += keys.cc
libircd_matrix_la_SOURCES += node.cc

15
matrix/groups.cc Normal file
View File

@ -0,0 +1,15 @@
// The Construct
//
// Copyright (C) The Construct Developers, Authors & Contributors
// Copyright (C) 2016-2020 Jason Volk <jason@zemos.net>
//
// Permission to use, copy, modify, and/or distribute this software for any
// purpose with or without fee is hereby granted, provided that the above
// copyright notice and this permission notice is present in all copies. The
// full license for this software is available in the LICENSE file.
decltype(ircd::m::groups::log)
ircd::m::groups::log
{
"m.groups"
};

View File

@ -131,6 +131,7 @@ ircd::m::matrix::module_names
"client_room_keys_version",
"client_room_keys_keys",
"client_presence",
"client_groups",
"client_joined_groups",
"client_publicised_groups",
"client_create_group",

View File

@ -511,6 +511,27 @@ client_module_LTLIBRARIES += \
client/client_room_keys_keys.la \
###
#
# client/groups
#
client_client_groups_la_SOURCES = \
client/groups/profile.cc \
client/groups/summary.cc \
client/groups/categories.cc \
client/groups/roles.cc \
client/groups/rooms.cc \
client/groups/users.cc \
client/groups/invited_users.cc \
client/groups/settings.cc \
client/groups/self.cc \
client/groups/groups.cc \
###
client_module_LTLIBRARIES += \
client/client_groups.la \
###
###############################################################################
#
# /_synapse/admin/

View File

@ -0,0 +1,11 @@
// The Construct
//
// Copyright (C) The Construct Developers, Authors & Contributors
// Copyright (C) 2016-2020 Jason Volk <jason@zemos.net>
//
// Permission to use, copy, modify, and/or distribute this software for any
// purpose with or without fee is hereby granted, provided that the above
// copyright notice and this permission notice is present in all copies. The
// full license for this software is available in the LICENSE file.
#include "groups.h"

View File

@ -0,0 +1,55 @@
// The Construct
//
// Copyright (C) The Construct Developers, Authors & Contributors
// Copyright (C) 2016-2020 Jason Volk <jason@zemos.net>
//
// Permission to use, copy, modify, and/or distribute this software for any
// purpose with or without fee is hereby granted, provided that the above
// copyright notice and this permission notice is present in all copies. The
// full license for this software is available in the LICENSE file.
#include "groups.h"
namespace ircd::m::groups
{
static resource::response handle_get(client &, const resource::request &);
extern resource::method groups_get;
extern resource groups_resource;
}
ircd::mapi::header
IRCD_MODULE
{
"Client (unspecified) :Groups",
};
decltype(ircd::m::groups::groups_resource)
ircd::m::groups::groups_resource
{
"/_matrix/client/r0/groups",
{
"(undocumented/unspecified) Groups",
resource::DIRECTORY
}
};
decltype(ircd::m::groups::groups_get)
ircd::m::groups::groups_get
{
groups_resource, "GET", handle_get,
{
groups_get.REQUIRES_AUTH
}
};
ircd::m::resource::response
ircd::m::groups::handle_get(client &client,
const resource::request &request)
{
return resource::response
{
client, http::NOT_FOUND
};
}

View File

@ -0,0 +1,14 @@
// The Construct
//
// Copyright (C) The Construct Developers, Authors & Contributors
// Copyright (C) 2016-2020 Jason Volk <jason@zemos.net>
//
// Permission to use, copy, modify, and/or distribute this software for any
// purpose with or without fee is hereby granted, provided that the above
// copyright notice and this permission notice is present in all copies. The
// full license for this software is available in the LICENSE file.
namespace ircd::m::groups
{
}

View File

@ -0,0 +1,11 @@
// The Construct
//
// Copyright (C) The Construct Developers, Authors & Contributors
// Copyright (C) 2016-2020 Jason Volk <jason@zemos.net>
//
// Permission to use, copy, modify, and/or distribute this software for any
// purpose with or without fee is hereby granted, provided that the above
// copyright notice and this permission notice is present in all copies. The
// full license for this software is available in the LICENSE file.
#include "groups.h"

View File

@ -0,0 +1,11 @@
// The Construct
//
// Copyright (C) The Construct Developers, Authors & Contributors
// Copyright (C) 2016-2020 Jason Volk <jason@zemos.net>
//
// Permission to use, copy, modify, and/or distribute this software for any
// purpose with or without fee is hereby granted, provided that the above
// copyright notice and this permission notice is present in all copies. The
// full license for this software is available in the LICENSE file.
#include "groups.h"

View File

@ -0,0 +1,11 @@
// The Construct
//
// Copyright (C) The Construct Developers, Authors & Contributors
// Copyright (C) 2016-2020 Jason Volk <jason@zemos.net>
//
// Permission to use, copy, modify, and/or distribute this software for any
// purpose with or without fee is hereby granted, provided that the above
// copyright notice and this permission notice is present in all copies. The
// full license for this software is available in the LICENSE file.
#include "groups.h"

View File

@ -0,0 +1,11 @@
// The Construct
//
// Copyright (C) The Construct Developers, Authors & Contributors
// Copyright (C) 2016-2020 Jason Volk <jason@zemos.net>
//
// Permission to use, copy, modify, and/or distribute this software for any
// purpose with or without fee is hereby granted, provided that the above
// copyright notice and this permission notice is present in all copies. The
// full license for this software is available in the LICENSE file.
#include "groups.h"

View File

@ -0,0 +1,11 @@
// The Construct
//
// Copyright (C) The Construct Developers, Authors & Contributors
// Copyright (C) 2016-2020 Jason Volk <jason@zemos.net>
//
// Permission to use, copy, modify, and/or distribute this software for any
// purpose with or without fee is hereby granted, provided that the above
// copyright notice and this permission notice is present in all copies. The
// full license for this software is available in the LICENSE file.
#include "groups.h"

View File

@ -0,0 +1,11 @@
// The Construct
//
// Copyright (C) The Construct Developers, Authors & Contributors
// Copyright (C) 2016-2020 Jason Volk <jason@zemos.net>
//
// Permission to use, copy, modify, and/or distribute this software for any
// purpose with or without fee is hereby granted, provided that the above
// copyright notice and this permission notice is present in all copies. The
// full license for this software is available in the LICENSE file.
#include "groups.h"

View File

@ -0,0 +1,11 @@
// The Construct
//
// Copyright (C) The Construct Developers, Authors & Contributors
// Copyright (C) 2016-2020 Jason Volk <jason@zemos.net>
//
// Permission to use, copy, modify, and/or distribute this software for any
// purpose with or without fee is hereby granted, provided that the above
// copyright notice and this permission notice is present in all copies. The
// full license for this software is available in the LICENSE file.
#include "groups.h"

View File

@ -0,0 +1,11 @@
// The Construct
//
// Copyright (C) The Construct Developers, Authors & Contributors
// Copyright (C) 2016-2020 Jason Volk <jason@zemos.net>
//
// Permission to use, copy, modify, and/or distribute this software for any
// purpose with or without fee is hereby granted, provided that the above
// copyright notice and this permission notice is present in all copies. The
// full license for this software is available in the LICENSE file.
#include "groups.h"