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