Skip to content

Commit

Permalink
feat(ministry brands): added extra for getEkklesiaFields
Browse files Browse the repository at this point in the history
added extra to updateEkklesiaFields
  • Loading branch information
zeleniucvladislav authored and DanielGherjavca committed Mar 20, 2024
1 parent 7b6d5e6 commit c0206f4
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 10 deletions.
15 changes: 11 additions & 4 deletions public/editor-client/src/ekklesia/index.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { Config } from "config";
import { ChoicesAsync, ChoicesSync } from "types/Choices";
import {
EkklesiaExtra,
EkklesiaFieldMap,
EkklesiaFields,
EkklesiaKeys,
Expand All @@ -14,7 +15,8 @@ export const getEkklesiaFields = (config: Config) => ({
async handler<T extends keyof EkklesiaFields = keyof EkklesiaFields>(
res: Response<ChoicesAsync | ChoicesSync>,
rej: Response<string>,
keys: EkklesiaParams<T>
keys: EkklesiaParams<T>,
extra?: EkklesiaExtra
): Promise<void> {
const { ekklesiaApiUrl } = config.api;
if (!ekklesiaApiUrl) {
Expand All @@ -25,7 +27,7 @@ export const getEkklesiaFields = (config: Config) => ({
return;
}
try {
const fields = await getFields(ekklesiaApiUrl, keys);
const fields = await getFields(ekklesiaApiUrl, keys, extra);
res(fields);
} catch (error) {
if (process.env.NODE_ENV === "development") {
Expand All @@ -42,7 +44,8 @@ export const updateEkklesiaFields = (config: Config) => ({
rej: Response<string>,
keys: {
fields: Array<EkklesiaFieldMap[T]>;
}
},
extra?: EkklesiaExtra
): Promise<void> {
const { ekklesiaApiUrl } = config.api;

Expand All @@ -57,7 +60,11 @@ export const updateEkklesiaFields = (config: Config) => ({
const dataToChange: EkklesiaKeys = {};
try {
for (const field of keys.fields) {
const choiches = await getFields<T>(ekklesiaApiUrl, field.module);
const choiches = await getFields<T>(
ekklesiaApiUrl,
field.module,
extra
);

if (!choiches.length) continue;

Expand Down
13 changes: 7 additions & 6 deletions public/editor-client/src/ekklesia/utils.ts
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
import { Obj, Str } from "@brizy/readers";
import { request } from "api/index";
import { makeUrl } from "api/utils";
import { ChoicesSync } from "types/Choices";
import {
EkklesiaChoiceParamsWithSubKey,
EkklesiaExtra,
EkklesiaFields,
EkklesiaParams,
EkklesiaParentsChilds,
EkklesiaResponse
} from "types/Ekklesia";
import { t } from "utils/i18n";
import { isObject } from "utils/reader/object";
import { read as readString } from "utils/reader/string";
import { Literal } from "utils/types";

export const requestFields = (url: string): Promise<EkklesiaResponse> => {
Expand All @@ -28,12 +28,12 @@ export const keysHaveSubkey = (
export const getOption = (
obj: Record<string, Literal> | undefined
): ChoicesSync =>
isObject(obj)
Obj.isObject(obj)
? [
{ title: t("None"), value: "" },
...Object.entries(obj).map(([key, value]) => {
return {
title: readString(value) ?? "",
title: Str.read(value) ?? "",
value: key
};
})
Expand All @@ -44,11 +44,12 @@ export const getFields = async <
T extends keyof EkklesiaFields = keyof EkklesiaFields
>(
_url: string,
keys: EkklesiaParams<T>
keys: EkklesiaParams<T>,
extra?: EkklesiaExtra
): Promise<ChoicesSync> => {
const { key } = keys;

const url = makeUrl(_url, { module: key });
const url = makeUrl(_url, { module: key, ...extra });

const { data = {} } = await requestFields(url);
const field = data[key];
Expand Down
4 changes: 4 additions & 0 deletions public/editor-client/src/types/Ekklesia.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,10 @@ export interface EkklesiaFields {
smallgroupsLvl: EkklesiaParentsChilds;
}

export interface EkklesiaExtra {
find_group?: string;
}

export interface EkklesiaParentsChilds {
parents: Record<string, Literal>;
childs: Record<string, Literal>;
Expand Down

0 comments on commit c0206f4

Please sign in to comment.