Adding block person and block community actions (#22)

* Adding block person and block community actions

* Forgot creator_blocked from views

* Adding creator_blocked to PersonMentionView

* Moving blocked and follows to MyUserInfo

* Change to local_user_view

* Add moderates to MyUserInfo

* Adding blockcommunityresponse

* rename recipient to target
This commit is contained in:
Dessalines 2021-08-19 20:49:15 -04:00 committed by GitHub
parent 1ce122e4be
commit a0b3f7606b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 79 additions and 27 deletions

View file

@ -16,6 +16,8 @@ import {
AddModToCommunityResponse,
BanFromCommunity,
BanFromCommunityResponse,
BlockCommunity,
BlockCommunityResponse,
CommunityResponse,
CreateCommunity,
DeleteCommunity,
@ -23,8 +25,6 @@ import {
FollowCommunity,
GetCommunity,
GetCommunityResponse,
GetFollowedCommunities,
GetFollowedCommunitiesResponse,
ListCommunities,
ListCommunitiesResponse,
RemoveCommunity,
@ -93,6 +93,8 @@ import {
SaveUserSettings,
ChangePassword,
PersonMentionResponse,
BlockPerson,
BlockPersonResponse,
} from './interfaces/api/person';
import { VERSION } from './interfaces/others';
@ -174,6 +176,10 @@ export class LemmyHttp {
return this.wrapper(HttpType.Post, '/community/follow', form);
}
async blockCommunity(form: BlockCommunity): Promise<BlockCommunityResponse> {
return this.wrapper(HttpType.Post, '/community/block', form);
}
async deleteCommunity(form: DeleteCommunity): Promise<CommunityResponse> {
return this.wrapper(HttpType.Post, '/community/delete', form);
}
@ -338,16 +344,14 @@ export class LemmyHttp {
return this.wrapper(HttpType.Get, '/user/replies', form);
}
async getFollowedCommunities(
form: GetFollowedCommunities
): Promise<GetFollowedCommunitiesResponse> {
return this.wrapper(HttpType.Get, '/user/followed_communities', form);
}
async banPerson(form: BanPerson): Promise<BanPersonResponse> {
return this.wrapper(HttpType.Post, '/user/ban', form);
}
async blockPerson(form: BlockPerson): Promise<BlockPersonResponse> {
return this.wrapper(HttpType.Post, '/user/block', form);
}
async getCaptcha(): Promise<GetCaptchaResponse> {
return this.wrapper(HttpType.Get, '/user/get_captcha', {});
}

View file

@ -1,5 +1,4 @@
import {
CommunityFollowerView,
CommunityModeratorView,
CommunityView,
PersonViewSafe,
@ -105,16 +104,19 @@ export interface FollowCommunity {
auth: string;
}
export interface GetFollowedCommunities {
auth: string;
}
export interface GetFollowedCommunitiesResponse {
communities: CommunityFollowerView[];
}
export interface TransferCommunity {
community_id: number;
person_id: number;
auth: string;
}
export interface BlockCommunity {
community_id: number;
block: boolean;
auth: string;
}
export interface BlockCommunityResponse {
community_view: CommunityView;
blocked: boolean;
}

View file

@ -6,6 +6,8 @@ import {
PrivateMessageView,
PersonMentionView,
PersonViewSafe,
CommunityBlockView,
PersonBlockView,
} from '../views';
export interface Login {
@ -90,10 +92,9 @@ export interface GetPersonDetails {
export interface GetPersonDetailsResponse {
person_view: PersonViewSafe;
follows: CommunityFollowerView[];
moderates: CommunityModeratorView[];
comments: CommentView[];
posts: PostView[];
moderates: CommunityModeratorView[];
}
export interface GetRepliesResponse {
@ -230,3 +231,14 @@ export interface GetReportCountResponse {
comment_reports: number;
post_reports: number;
}
export interface BlockPerson {
person_id: number;
block: boolean;
auth: string;
}
export interface BlockPersonResponse {
person_view: PersonViewSafe;
blocked: boolean;
}

View file

@ -1,4 +1,10 @@
import { LocalUserSettingsView } from '../views';
import {
CommunityBlockView,
CommunityFollowerView,
CommunityModeratorView,
LocalUserSettingsView,
PersonBlockView,
} from '../views';
import {
CommentView,
CommunityView,
@ -101,10 +107,18 @@ export interface GetSiteResponse {
banned: PersonViewSafe[];
online: number;
version: string;
my_user?: LocalUserSettingsView; // Gives back your local user and settings if logged in
my_user?: MyUserInfo; // Gives back your local user, settings, follows, and blocks if logged in
federated_instances?: FederatedInstances;
}
export interface MyUserInfo {
local_user_view: LocalUserSettingsView;
follows: CommunityFollowerView[];
moderates: CommunityModeratorView[];
community_blocks: CommunityBlockView[];
person_blocks: PersonBlockView[];
}
export interface TransferSite {
person_id: number;
auth: string;

View file

@ -31,7 +31,6 @@ export enum UserOperation {
DeleteCommunity,
RemoveCommunity,
FollowCommunity,
GetFollowedCommunities,
GetPersonDetails,
GetReplies,
GetPersonMentions,
@ -65,6 +64,8 @@ export enum UserOperation {
CommunityJoin,
ChangePassword,
GetSiteMetadata,
BlockCommunity,
BlockPerson,
}
export enum SortType {

View file

@ -44,6 +44,7 @@ export interface PersonMentionView {
creator_banned_from_community: boolean;
subscribed: boolean;
saved: boolean;
creator_blocked: boolean;
my_vote?: number;
}
@ -74,6 +75,7 @@ export interface PostView {
subscribed: boolean;
saved: boolean;
read: boolean;
creator_blocked: boolean;
my_vote?: number;
}
@ -96,6 +98,7 @@ export interface CommentView {
creator_banned_from_community: boolean;
subscribed: boolean;
saved: boolean;
creator_blocked: boolean;
my_vote?: number;
}
@ -183,6 +186,11 @@ export interface CommunityFollowerView {
follower: PersonSafe;
}
export interface CommunityBlockView {
person: PersonSafe;
community: CommunitySafe;
}
export interface CommunityModeratorView {
community: CommunitySafe;
moderator: PersonSafe;
@ -193,8 +201,14 @@ export interface CommunityPersonBanView {
person: PersonSafe;
}
export interface PersonBlockView {
person: PersonSafe;
target: PersonSafe;
}
export interface CommunityView {
community: CommunitySafe;
subscribed: boolean;
blocked: boolean;
counts: CommunityAggregates;
}

View file

@ -11,12 +11,12 @@ import {
import {
AddModToCommunity,
BanFromCommunity,
BlockCommunity,
CreateCommunity,
DeleteCommunity,
EditCommunity,
FollowCommunity,
GetCommunity,
GetFollowedCommunities,
ListCommunities,
RemoveCommunity,
TransferCommunity,
@ -64,6 +64,7 @@ import {
Register,
SaveUserSettings,
ChangePassword,
BlockPerson,
} from './interfaces/api/person';
import { UserJoin, PostJoin, CommunityJoin } from './interfaces/api/websocket';
import { UserOperation } from './interfaces/others';
@ -122,10 +123,6 @@ export class LemmyWebsocket {
return wrapper(UserOperation.ListCommunities, form);
}
getFollowedCommunities(form: GetFollowedCommunities) {
return wrapper(UserOperation.GetFollowedCommunities, form);
}
createPost(form: CreatePost) {
return wrapper(UserOperation.CreatePost, form);
}
@ -317,6 +314,14 @@ export class LemmyWebsocket {
saveSiteConfig(form: SaveSiteConfig) {
return wrapper(UserOperation.SaveSiteConfig, form);
}
blockPerson(form: BlockPerson) {
return wrapper(UserOperation.BlockPerson, form);
}
blockCommunity(form: BlockCommunity) {
return wrapper(UserOperation.BlockCommunity, form);
}
}
function wrapper<MessageType>(op: UserOperation, data: MessageType) {