change: types and search options
This commit is contained in:
parent
fd042cf18d
commit
9685b6166d
6 changed files with 40 additions and 12 deletions
|
@ -16,8 +16,16 @@ import {
|
|||
} from "../../viewmodels/admin/member.models";
|
||||
import { BaseClient } from "../../clients/clientBase";
|
||||
|
||||
interface GetMemberParams {
|
||||
offset?: number;
|
||||
count?: number;
|
||||
search?: string;
|
||||
noLimit?: boolean;
|
||||
ids?: string[];
|
||||
}
|
||||
|
||||
interface IMemberRequests {
|
||||
getAllMembers: RequestDefinition<void, void, MemberViewModel[]>;
|
||||
getAllMembers: RequestDefinition<GetMemberParams, void, MemberViewModel[]>;
|
||||
getMemberById: RequestDefinition<{ id: string }, void, MemberViewModel>;
|
||||
getMemberStatisticsById: RequestDefinition<{ id: string }, void, MemberStatisticsViewModel>;
|
||||
createMember: RequestDefinition<void, CreateMemberViewModel, string>;
|
||||
|
@ -58,8 +66,9 @@ interface IMemberRequests {
|
|||
|
||||
@ImplementsRequestInterface<IMemberRequests>()
|
||||
export default abstract class MemberRequests {
|
||||
static async getAllMembers({ http }: BaseClient): Promise<AxiosResponse<MemberViewModel[], any>> {
|
||||
return await http.get("/admin/member");
|
||||
static async getAllMembers({ http }: BaseClient, p: RequestData<GetMemberParams, void>): Promise<AxiosResponse<MemberViewModel[], any>> {
|
||||
const queryParams = new URLSearchParams(Object.fromEntries(Object.entries(p.params).filter(([_, v]) => v !== undefined))).toString();
|
||||
return await http.get(`/admin/member?${queryParams}`);
|
||||
}
|
||||
static async getMemberById({ http }: BaseClient, p: RequestData<{ id: string }, void>): Promise<AxiosResponse<MemberViewModel, any>> {
|
||||
return await http.get(`/admin/member/${p.params.id}`);
|
||||
|
|
|
@ -4,6 +4,12 @@ import { CreateQueryViewModel, QueryExecuteResult, QueryViewModel, UpdateQueryVi
|
|||
import { DynamicQueryStructure } from "../../types/admin/dynamicQueries";
|
||||
import { BaseClient } from "../../clients/clientBase";
|
||||
|
||||
interface GetQueryParams {
|
||||
offset?: number;
|
||||
count?: number;
|
||||
noLimit?: boolean;
|
||||
}
|
||||
|
||||
interface IQueryRequests {
|
||||
getQueries: RequestDefinition<void, void, QueryViewModel[]>;
|
||||
getQueryById: RequestDefinition<{ id: number }, void, QueryViewModel>;
|
||||
|
@ -11,7 +17,7 @@ interface IQueryRequests {
|
|||
updateQuery: RequestDefinition<{ id: number }, UpdateQueryViewModel, void>;
|
||||
deleteQuery: RequestDefinition<{ id: number }, void, void>;
|
||||
|
||||
executeQuery: RequestDefinition<void, DynamicQueryStructure | string, QueryExecuteResult>;
|
||||
executeQuery: RequestDefinition<GetQueryParams, DynamicQueryStructure | string, QueryExecuteResult>;
|
||||
}
|
||||
|
||||
@ImplementsRequestInterface<IQueryRequests>()
|
||||
|
@ -34,8 +40,9 @@ export default abstract class QueryDataRequests {
|
|||
|
||||
static async executeQuery(
|
||||
{ http }: BaseClient,
|
||||
p: RequestData<void, DynamicQueryStructure | string>
|
||||
p: RequestData<GetQueryParams, DynamicQueryStructure | string | "member" | "memberByRunningMembership">
|
||||
): Promise<AxiosResponse<QueryExecuteResult, any>> {
|
||||
return await http.post(`/admin/query`, p.body);
|
||||
const queryParams = new URLSearchParams(Object.fromEntries(Object.entries(p.params).filter(([_, v]) => v !== undefined))).toString();
|
||||
return await http.post(`/admin/query?${queryParams}`, p.body);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,6 +6,7 @@ export type PermissionModule =
|
|||
| "newsletter"
|
||||
| "newsletter_config"
|
||||
| "protocol"
|
||||
| "listprint"
|
||||
| "qualification"
|
||||
| "award"
|
||||
| "executive_position"
|
||||
|
@ -19,7 +20,8 @@ export type PermissionModule =
|
|||
| "query"
|
||||
| "query_store"
|
||||
| "template"
|
||||
| "template_usage";
|
||||
| "template_usage"
|
||||
| "backup";
|
||||
|
||||
export type PermissionType = "read" | "create" | "update" | "delete";
|
||||
|
||||
|
@ -49,6 +51,7 @@ export const permissionModules: Array<PermissionModule> = [
|
|||
"newsletter",
|
||||
"newsletter_config",
|
||||
"protocol",
|
||||
"listprint",
|
||||
"qualification",
|
||||
"award",
|
||||
"executive_position",
|
||||
|
@ -63,10 +66,11 @@ export const permissionModules: Array<PermissionModule> = [
|
|||
"query_store",
|
||||
"template",
|
||||
"template_usage",
|
||||
"backup",
|
||||
];
|
||||
export const permissionTypes: Array<PermissionType> = ["read", "create", "update", "delete"];
|
||||
export const sectionsAndModules: SectionsAndModulesObject = {
|
||||
club: ["member", "calendar", "newsletter", "protocol", "query"],
|
||||
club: ["member", "calendar", "newsletter", "protocol", "query", "listprint"],
|
||||
configuration: [
|
||||
"qualification",
|
||||
"award",
|
||||
|
@ -80,5 +84,5 @@ export const sectionsAndModules: SectionsAndModulesObject = {
|
|||
"template_usage",
|
||||
"newsletter_config",
|
||||
],
|
||||
management: ["user", "role", "webapi"],
|
||||
management: ["user", "role", "webapi", "backup"],
|
||||
};
|
||||
|
|
|
@ -13,7 +13,7 @@ export interface NewsletterViewModel {
|
|||
newsletterText: string;
|
||||
newsletterSignatur: string;
|
||||
isSent: boolean;
|
||||
recipientsByQueryId?: number | null;
|
||||
recipientsByQueryId?: string | null;
|
||||
recipientsByQuery?: QueryViewModel | null;
|
||||
}
|
||||
export interface CreateNewsletterViewModel {
|
||||
|
@ -25,7 +25,7 @@ export interface SyncNewsletterViewModel {
|
|||
newsletterTitle: string;
|
||||
newsletterText: string;
|
||||
newsletterSignatur: string;
|
||||
recipientsByQueryId?: number;
|
||||
recipientsByQueryId?: string;
|
||||
}
|
||||
|
||||
/** Newsletter Recipient Models */
|
||||
|
|
|
@ -24,12 +24,14 @@ export interface ProtocolAgendaViewModel {
|
|||
id: number;
|
||||
topic: string;
|
||||
context: string;
|
||||
sort: number;
|
||||
protocolId: number;
|
||||
}
|
||||
export interface SyncProtocolAgendaViewModel {
|
||||
id: number;
|
||||
topic: string;
|
||||
context: string;
|
||||
sort: number;
|
||||
}
|
||||
|
||||
/** Protocol Decision Models */
|
||||
|
@ -37,12 +39,14 @@ export interface ProtocolDecisionViewModel {
|
|||
id: number;
|
||||
topic: string;
|
||||
context: string;
|
||||
sort: number;
|
||||
protocolId: number;
|
||||
}
|
||||
export interface SyncProtocolDecisionViewModel {
|
||||
id: number;
|
||||
topic: string;
|
||||
context: string;
|
||||
sort: number;
|
||||
}
|
||||
|
||||
/** Protocol Presence Models */
|
||||
|
@ -50,6 +54,7 @@ export interface ProtocolPresenceViewModel {
|
|||
memberId: string;
|
||||
absent: boolean;
|
||||
excused: boolean;
|
||||
sort: number;
|
||||
protocolId: number;
|
||||
}
|
||||
export interface SyncProtocolPresenceViewModel {
|
||||
|
@ -57,6 +62,7 @@ export interface SyncProtocolPresenceViewModel {
|
|||
memberId: string;
|
||||
absent: boolean;
|
||||
excused: boolean;
|
||||
sort: number;
|
||||
}>;
|
||||
}
|
||||
|
||||
|
@ -68,6 +74,7 @@ export interface ProtocolVotingViewModel {
|
|||
favour: number;
|
||||
abstain: number;
|
||||
against: number;
|
||||
sort: number;
|
||||
protocolId: number;
|
||||
}
|
||||
export interface SyncProtocolVotingViewModel {
|
||||
|
@ -77,6 +84,7 @@ export interface SyncProtocolVotingViewModel {
|
|||
favour: number;
|
||||
abstain: number;
|
||||
against: number;
|
||||
sort: number;
|
||||
}
|
||||
|
||||
/** Protocol Printout Models */
|
||||
|
|
|
@ -2,7 +2,7 @@ import { DynamicQueryStructure, FieldType } from "../../types/admin/dynamicQueri
|
|||
|
||||
/** Query Store Models */
|
||||
export interface QueryViewModel {
|
||||
id: number;
|
||||
id: string;
|
||||
title: string;
|
||||
query: string | DynamicQueryStructure;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue