diff --git a/.github/workflows/TestAndCompile.yml b/.github/workflows/TestAndCompile.yml index bf687e5..4d49db8 100644 --- a/.github/workflows/TestAndCompile.yml +++ b/.github/workflows/TestAndCompile.yml @@ -2,27 +2,20 @@ name: GraalVM Native Image Test run and build tests on: [pull_request, workflow_dispatch] jobs: build: - name: test and compile on ${{ matrix.os }} + name: test and compile on self-hosted runs-on: self-hosted -# runs-on: ${{ matrix.os }} -# strategy: -# matrix: -# os: [macos-latest, windows-latest, ubuntu-latest] env: TEST_TOKEN: ${{ secrets.MICRONAUT_HTTP_SERVICES_JUSTSERVE_TOKEN }} + JAVA_HOME: ${{ secrets.JAVA_HOME }} + steps: - uses: actions/checkout@v4 - - uses: graalvm/setup-graalvm@v1 - with: - java-version: '21' - distribution: 'graalvm' - github-token: ${{ secrets.GITHUB_TOKEN }} - native-image-job-reports: 'true' - - name: call gradle to run tests and then compile - run: ./gradlew test nativeCompile + - name: Run core tests + run: ./gradlew :core:test + - name: Run cli tests and compile + run: ./gradlew :cli:test :cli:nativeCompile - name: upload binary uses: actions/upload-artifact@v4 with: -# name: justserve-${{ matrix.os }} name: justserve - path: build/native/nativeCompile/justserve* \ No newline at end of file + path: cli/build/native/nativeCompile/justserve* \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..1133129 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "java.configuration.updateBuildConfiguration": "automatic" +} \ No newline at end of file diff --git a/README.md b/README.md index 05cce52..9d24d92 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,22 @@ -## JustServe Cli Tool +# JustServe Resources -The JustServe Cli tool is an admin tool for JustServe Specialists and administrators. +[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=JustServe-Resources_cli&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=JustServe-Resources_cli) +[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=JustServe-Resources_cli&metric=coverage)](https://sonarcloud.io/summary/new_code?id=JustServe-Resources_cli) +[![Duplicated Lines (%)](https://sonarcloud.io/api/project_badges/measure?project=JustServe-Resources_cli&metric=duplicated_lines_density)](https://sonarcloud.io/summary/new_code?id=JustServe-Resources_cli) +[![Bugs](https://sonarcloud.io/api/project_badges/measure?project=JustServe-Resources_cli&metric=bugs)](https://sonarcloud.io/summary/new_code?id=JustServe-Resources_cli) +[![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=JustServe-Resources_cli&metric=code_smells)](https://sonarcloud.io/summary/new_code?id=JustServe-Resources_cli) +[![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=JustServe-Resources_cli&metric=vulnerabilities)](https://sonarcloud.io/summary/new_code?id=JustServe-Resources_cli) +[![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=JustServe-Resources_cli&metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=JustServe-Resources_cli) +[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=JustServe-Resources_cli&metric=security_rating)](https://sonarcloud.io/summary/new_code?id=JustServe-Resources_cli) -This tool is very much under development and whose api is subject to change with each release. Standard versioning is used for this project to delineate breaking releases. +This repository is architected as a modular, multi-module Micronaut project. At its center is the `core` module, a +reusable library providing a thoroughly tested HTTP client for the JustServe API. + +Other modules leverage the `core` library to build specific applications. The `cli` module, for instance, is a GraalVM native command-line application that consumes the `core` client to provide administrative tooling. + +As the project evolves, we adhere to semantic versioning. The API is subject to change, and any breaking modifications will be clearly communicated through major version increments. + +## Cli Tool ### Install @@ -37,7 +51,7 @@ echo $env:java_home -To generate the executable for your system, run `./gradlew nativeCompile`. The executable will be generated in the build directory (`\build\native\nativeCompile\`). +To generate the executable for your system, run `./gradlew :cli:nativeCompile`. The executable will be generated in the build directory (`cli/build/native/nativeCompile/`). ### Authenticate diff --git a/build.gradle.kts b/build.gradle.kts index 69182a2..3cfe025 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,93 +1,5 @@ -import org.apache.tools.ant.filters.ReplaceTokens -import java.util.* - plugins { - id("groovy") - id("io.micronaut.application") version "4.5.3" - id("com.gradleup.shadow") version "8.3.6" - id("io.micronaut.openapi") version "4.5.3" - id("org.graalvm.buildtools.native") version "0.10.6" - id("org.asciidoctor.jvm.convert") version "3.3.2" -} - -version = project.properties["justserveCliVersion"]!! -group = "org.justserve" - -apply(from = "gradle/asciidoc.gradle") - -repositories { - mavenCentral() -} - -dependencies { - annotationProcessor("org.projectlombok:lombok") - annotationProcessor("info.picocli:picocli-codegen") - annotationProcessor("io.micronaut.serde:micronaut-serde-processor") - implementation("info.picocli:picocli") - implementation("info.picocli:picocli-jansi-graalvm:1.2.0") - implementation("org.fusesource.jansi:jansi:2.4.2") - implementation("info.picocli:picocli-shell-jline3:4.7.6") - implementation("org.jline:jline:3.30.5") - implementation("io.micronaut:micronaut-http-client") - implementation("io.micronaut.picocli:micronaut-picocli") - implementation("io.micronaut.serde:micronaut-serde-jackson") - implementation("io.micronaut:micronaut-retry") - implementation("org.simplejavamail:simple-java-mail:8.12.6") - implementation("org.jsoup:jsoup:1.21.2") - testImplementation("net.datafaker:datafaker:2.5.1") - compileOnly("org.projectlombok:lombok") - runtimeOnly("ch.qos.logback:logback-classic") - runtimeOnly("org.yaml:snakeyaml") + id("it.nicolasfarabegoli.conventional-commits") version "3.1.3" } -application { - mainClass = "org.justserve.cli.JustServeCommand" -} - -java { - sourceCompatibility = JavaVersion.toVersion("21") - targetCompatibility = JavaVersion.toVersion("21") -} - -tasks.withType { - val props = Properties() - file("gradle.properties").inputStream().use { props.load(it) } - filesMatching("**/application.yml") { - filter(mapOf("tokens" to props), ReplaceTokens::class.java) - } -} - -micronaut { - testRuntime("spock2") - openapi { - version = "6.16.0" - client(file("src/main/resources/schema.yml")) { - apiPackageName = "org.justserve.client" - modelPackageName = "org.justserve.model" - useReactive = false - useAuth = false - lombok.set(true) - clientId = "justserve" - apiNameSuffix = "Client" - alwaysUseGenerateHttpResponse = true - } - } - processing { - incremental(true) - annotations("org.justserve.*") - } -} - -graalvmNative.binaries { - named("main") { - imageName.set("justserve") - buildArgs.add("--color=always") - buildArgs.add("-march=native") - } -} - - -tasks.named("dockerfileNative") { - jdkVersion = "21" -} diff --git a/cli/build.gradle.kts b/cli/build.gradle.kts new file mode 100644 index 0000000..956538c --- /dev/null +++ b/cli/build.gradle.kts @@ -0,0 +1,78 @@ +import org.apache.tools.ant.filters.ReplaceTokens +import java.util.* + +plugins { + id("groovy") + id("io.micronaut.application") version "4.6.2" + id("com.gradleup.shadow") version "8.3.9" + id("org.graalvm.buildtools.native") version "0.10.6" +} + +group = "org.justserve" +version = project.properties["justserveCliVersion"]!! + +repositories { + mavenCentral() +} + +dependencies { + annotationProcessor("org.projectlombok:lombok") + annotationProcessor("info.picocli:picocli-codegen") + annotationProcessor("io.micronaut.serde:micronaut-serde-processor") + annotationProcessor("io.micronaut.validation:micronaut-validation") + implementation("io.micronaut.validation:micronaut-validation") + implementation("info.picocli:picocli") + implementation("info.picocli:picocli-jansi-graalvm:1.2.0") + implementation("org.fusesource.jansi:jansi:2.4.2") + implementation("info.picocli:picocli-shell-jline3:4.7.6") + implementation("org.jline:jline:3.30.5") + implementation("io.micronaut.picocli:micronaut-picocli") + implementation("org.simplejavamail:simple-java-mail:8.12.6") + implementation("io.micronaut.serde:micronaut-serde-jackson") + implementation("io.micronaut:micronaut-http-client") + implementation("org.simplejavamail:simple-java-mail:8.12.6") + implementation("org.jsoup:jsoup:1.21.2") + implementation(project(":core")) + testImplementation("net.datafaker:datafaker:2.5.1") + testImplementation("org.apache.commons:commons-lang3:3.20.0") + testImplementation(project(path = ":core", configuration = "testArchives")) + compileOnly("org.projectlombok:lombok") + runtimeOnly("ch.qos.logback:logback-classic") + runtimeOnly("org.yaml:snakeyaml") +} + + +application { + mainClass = "org.justserve.JustServeCommand" +} +java { + sourceCompatibility = JavaVersion.toVersion("21") + targetCompatibility = JavaVersion.toVersion("21") +} + +tasks.withType { + val props = Properties() + file("../gradle.properties").inputStream().use { props.load(it) } + filesMatching("**/application.yml") { + filter(mapOf("tokens" to props), ReplaceTokens::class.java) + } +} + +micronaut { + testRuntime("spock2") + processing { + incremental(true) + annotations("org.justserve.*") + } +} + +tasks.named("dockerfileNative") { + jdkVersion = "21" +} + +graalvmNative.binaries { + named("main") { + imageName.set("justserve") + buildArgs.add("--color=always") + } +} \ No newline at end of file diff --git a/src/main/java/org/justserve/cli/JustServeCommand.java b/cli/src/main/java/org/justserve/JustServeCommand.java similarity index 73% rename from src/main/java/org/justserve/cli/JustServeCommand.java rename to cli/src/main/java/org/justserve/JustServeCommand.java index 4bb71a2..62a5f23 100644 --- a/src/main/java/org/justserve/cli/JustServeCommand.java +++ b/cli/src/main/java/org/justserve/JustServeCommand.java @@ -1,16 +1,13 @@ -package org.justserve.cli; +package org.justserve; import io.micronaut.configuration.picocli.PicocliRunner; -import org.justserve.cli.command.BaseCommand; -import org.justserve.cli.command.GetTempPassword; -import org.justserve.cli.command.MakeOrgAdmin; -import org.justserve.cli.command.UnReassignProjects; -import org.justserve.cli.util.JustServeVersionProvider; +import org.justserve.command.*; +import org.justserve.util.JustServeVersionProvider; import picocli.CommandLine.Command; import picocli.CommandLine.ParameterException; import picocli.jansi.graalvm.AnsiConsole; -@Command(subcommands = {GetTempPassword.class, MakeOrgAdmin.class, UnReassignProjects.class}, +@Command(subcommands = {GetTempPassword.class, MakeOrgAdmin.class, UnReassignProjects.class, AssignOrgToProject.class}, mixinStandardHelpOptions = true, name = "justserve", versionProvider = JustServeVersionProvider.class, description = "justserve-cli is a terminal tool to help specialists and admin using JustServe") diff --git a/cli/src/main/java/org/justserve/command/AssignOrgToProject.java b/cli/src/main/java/org/justserve/command/AssignOrgToProject.java new file mode 100644 index 0000000..d7e2a73 --- /dev/null +++ b/cli/src/main/java/org/justserve/command/AssignOrgToProject.java @@ -0,0 +1,58 @@ +package org.justserve.command; + +import io.micronaut.http.HttpResponse; +import io.micronaut.http.HttpStatus; +import io.micronaut.http.client.exceptions.HttpClientResponseException; +import jakarta.inject.Inject; +import jakarta.inject.Provider; +import lombok.extern.slf4j.Slf4j; +import org.justserve.client.ProjectClient; +import picocli.CommandLine.Command; +import picocli.CommandLine.Option; + +import java.util.UUID; + +import static org.justserve.util.JustServePrinter.printError; +import static org.justserve.util.JustServePrinter.printNormal; + + +@Slf4j +@Command(name = "assignOrgToProject", description = "Assigns an organization to a project", mixinStandardHelpOptions = true) +public class AssignOrgToProject extends BaseCommand implements Runnable { + + @Option(names = {"--project", "-p"}, description = "the project ID", required = true) + private UUID projectId; + + @Option(names = {"--org", "-o"}, description = "the organization ID", required = true) + private UUID orgId; + + @Inject + Provider projectClientProvider; + + @Override + public void run() { + if (isTokenInvalid()) { + return; + } + + ProjectClient client = projectClientProvider.get(); + + try { + log.atTrace().log("Assigning organization {} to project {}", orgId, projectId); + HttpResponse response = client.assignOrganizationToProject(projectId, orgId); + if (response.status() == HttpStatus.OK) { + printNormal("Successfully assigned organization %s to project %s", orgId, projectId); + log.atTrace().log("received api response status: {}", response.status()); + } else { + printError("Failed to assign organization " + orgId + " to project " + projectId + + ". Expected HTTP Status 'OK', but got " + response.status()); + log.atError().log("Failed to assign organization {} to project {}. Expected HTTP Status 'OK', but got {}", + orgId, projectId, response.status()); + } + } catch (HttpClientResponseException e) { + printError("Failed to assign organization %s to project %s. (%s: %s)", + orgId, projectId, e.getStatus().getCode(), e.getMessage()); + log.atError().setCause(e).log("Error response from API: {}", e.getResponse().body()); + } + } +} diff --git a/src/main/java/org/justserve/cli/command/BaseCommand.java b/cli/src/main/java/org/justserve/command/BaseCommand.java similarity index 95% rename from src/main/java/org/justserve/cli/command/BaseCommand.java rename to cli/src/main/java/org/justserve/command/BaseCommand.java index 61451ee..04a1658 100644 --- a/src/main/java/org/justserve/cli/command/BaseCommand.java +++ b/cli/src/main/java/org/justserve/command/BaseCommand.java @@ -1,4 +1,4 @@ -package org.justserve.cli.command; +package org.justserve.command; import io.micronaut.context.annotation.Value; import io.micronaut.core.annotation.NonNull; @@ -10,7 +10,7 @@ import java.io.PrintWriter; import java.util.Optional; -import static org.justserve.cli.util.JustServePrinter.printError; +import static org.justserve.util.JustServePrinter.printError; import static picocli.CommandLine.Help.Ansi.AUTO; @Command @@ -24,7 +24,7 @@ public class BaseCommand implements ConsoleOutput { String token; boolean isTokenInvalid() { - if ("i-need-to-be-defined".equals(token) || null == token) { + if ("i-need-to-be-defined".equals(token) || null == token || token.isEmpty()) { printError(("NO AUTHENTICATION PROVIDED" + System.lineSeparator() + "The Authentication token is not assigned as an environment variable." + System.lineSeparator() + "Please define the environment variable \"JUSTSERVE_TOKEN\" and try again.")); diff --git a/src/main/java/org/justserve/cli/command/CommonOptionsMixin.java b/cli/src/main/java/org/justserve/command/CommonOptionsMixin.java similarity index 82% rename from src/main/java/org/justserve/cli/command/CommonOptionsMixin.java rename to cli/src/main/java/org/justserve/command/CommonOptionsMixin.java index ce4a634..b3c929d 100644 --- a/src/main/java/org/justserve/cli/command/CommonOptionsMixin.java +++ b/cli/src/main/java/org/justserve/command/CommonOptionsMixin.java @@ -1,7 +1,6 @@ -package org.justserve.cli.command; +package org.justserve.command; import io.micronaut.core.annotation.ReflectiveAccess; -import org.justserve.cli.util.JustServeVersionProvider; import picocli.CommandLine.Command; import picocli.CommandLine.Option; @@ -20,7 +19,7 @@ * @author Jonathan Zollinger * @version 0.0.1 */ -@Command(mixinStandardHelpOptions = true, versionProvider = JustServeVersionProvider.class) +@Command(mixinStandardHelpOptions = true, versionProvider = org.justserve.util.JustServeVersionProvider.class) @SuppressWarnings("checkstyle:VisibilityModifier") public class CommonOptionsMixin { diff --git a/src/main/java/org/justserve/cli/command/ConsoleOutput.java b/cli/src/main/java/org/justserve/command/ConsoleOutput.java similarity index 95% rename from src/main/java/org/justserve/cli/command/ConsoleOutput.java rename to cli/src/main/java/org/justserve/command/ConsoleOutput.java index 00c03b0..7c47ac3 100644 --- a/src/main/java/org/justserve/cli/command/ConsoleOutput.java +++ b/cli/src/main/java/org/justserve/command/ConsoleOutput.java @@ -1,4 +1,4 @@ -package org.justserve.cli.command; +package org.justserve.command; public interface ConsoleOutput { ConsoleOutput NOOP = new ConsoleOutput() { diff --git a/src/main/java/org/justserve/cli/command/GetTempPassword.java b/cli/src/main/java/org/justserve/command/GetTempPassword.java similarity index 90% rename from src/main/java/org/justserve/cli/command/GetTempPassword.java rename to cli/src/main/java/org/justserve/command/GetTempPassword.java index 72d9fea..82f6b97 100644 --- a/src/main/java/org/justserve/cli/command/GetTempPassword.java +++ b/cli/src/main/java/org/justserve/command/GetTempPassword.java @@ -1,4 +1,4 @@ -package org.justserve.cli.command; +package org.justserve.command; import io.micronaut.http.HttpResponse; import io.micronaut.http.client.exceptions.HttpClientResponseException; @@ -10,12 +10,13 @@ import picocli.CommandLine.Command; import picocli.CommandLine.Option; -import static org.justserve.cli.util.JustServePrinter.printError; -import static org.justserve.cli.util.JustServePrinter.printNormal; +import static org.justserve.util.JustServePrinter.printError; +import static org.justserve.util.JustServePrinter.printNormal; @Command(name = "getTempPassword", description = "get a temporary password for a user") public class GetTempPassword extends BaseCommand implements Runnable { + @Email @Option(names = {"-e", "--email"}, description = "email for the user whose temporary password will be generated") String email; diff --git a/src/main/java/org/justserve/cli/command/MakeOrgAdmin.java b/cli/src/main/java/org/justserve/command/MakeOrgAdmin.java similarity index 78% rename from src/main/java/org/justserve/cli/command/MakeOrgAdmin.java rename to cli/src/main/java/org/justserve/command/MakeOrgAdmin.java index d9f382a..9fe10dd 100644 --- a/src/main/java/org/justserve/cli/command/MakeOrgAdmin.java +++ b/cli/src/main/java/org/justserve/command/MakeOrgAdmin.java @@ -1,4 +1,4 @@ -package org.justserve.cli.command; +package org.justserve.command; import io.micronaut.core.annotation.Nullable; import io.micronaut.http.HttpResponse; @@ -17,8 +17,8 @@ import java.util.*; import java.util.stream.Collectors; -import static org.justserve.cli.util.JustServePrinter.printError; -import static org.justserve.cli.util.JustServePrinter.printNormal; +import static org.justserve.util.JustServePrinter.printError; +import static org.justserve.util.JustServePrinter.printNormal; @Slf4j @Command(name = "makeOrgAdmin", description = "make a user an admin for the provided organization(s). " + @@ -45,24 +45,22 @@ public void run() { } DynamicRoutingClient dynamicRoutingClient = dynamicRoutingClientProvider.get(); // since we allow submitting orgId's and orgUrl, convert any slugs to orgId's - Map orgUuidMap = Arrays.stream(orgs).distinct().parallel() - .collect(Collectors.toMap( - org -> org, - org -> org instanceof OrgId ? ((OrgId) org).getId() : dynamicRoutingClient - .getOrgIdFromSlug(((OrgSlug) org).getSlug()).body().getId() - )); - if (orgUuidMap.values().stream().anyMatch(Objects::isNull)) { - // provide a list of all invalid org slugs, not just the first failure - List invalidOrgSlugs = new ArrayList<>(); - orgUuidMap.entrySet().stream() - .filter(entry -> entry.getValue() == null) - .map(entry -> (OrgSlug) entry.getKey()) - .forEach(invalidOrgSlugs::add); - printError("The following organization slugs are invalid: " + invalidOrgSlugs.stream() - .map(OrgSlug::getSlug) - .collect(Collectors.joining(", "))); - return; - } + Map orgUuidMap = Arrays.stream(orgs).distinct().parallel() + .map(org -> { + if (org instanceof OrgId) { + return new AbstractMap.SimpleEntry<>(org, ((OrgId) org).getId()); + } + try { + return new AbstractMap.SimpleEntry<>(org, dynamicRoutingClient + .getOrgIdFromSlug(((OrgSlug) org).getSlug()).body().getId()); + } catch (NullPointerException noOrgFound) { + err(String.format("The org '%s' is not found on JustServe", ((OrgSlug) org).getSlug())); + return null; + } + }) + .filter(Objects::nonNull) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); + log.atTrace().log("Finished converting any slugs to org id's."); BoundaryPermissionClient boundaryPermissionClient = boundaryPermissionClientProvider.get(); Map successfulReassignments = new HashMap<>(); diff --git a/src/main/java/org/justserve/cli/command/UnReassignProjects.java b/cli/src/main/java/org/justserve/command/UnReassignProjects.java similarity index 70% rename from src/main/java/org/justserve/cli/command/UnReassignProjects.java rename to cli/src/main/java/org/justserve/command/UnReassignProjects.java index 5038402..b1c58c4 100644 --- a/src/main/java/org/justserve/cli/command/UnReassignProjects.java +++ b/cli/src/main/java/org/justserve/command/UnReassignProjects.java @@ -1,4 +1,4 @@ -package org.justserve.cli.command; +package org.justserve.command; import io.micronaut.http.HttpResponse; import io.micronaut.http.HttpStatus; @@ -7,12 +7,12 @@ import jakarta.inject.Provider; import jakarta.mail.MessagingException; import lombok.extern.slf4j.Slf4j; -import org.justserve.cli.util.JustServeEmailParserError; import org.justserve.client.ProjectClient; import org.justserve.model.GetProjectRequest; import org.justserve.model.Project; import org.justserve.model.ReassignProjectRequest; import org.justserve.util.EmailParser; +import org.justserve.util.JustServeEmailParserError; import picocli.CommandLine.Command; import picocli.CommandLine.Option; @@ -23,8 +23,8 @@ import java.util.Set; import java.util.UUID; -import static org.justserve.cli.util.JustServePrinter.printError; -import static org.justserve.cli.util.JustServePrinter.printNormal; +import static org.justserve.util.JustServePrinter.printError; +import static org.justserve.util.JustServePrinter.printNormal; @Slf4j @Command(name = "unReassignProjects", description = "Reassigns projects from an email file to a user", mixinStandardHelpOptions = true) @@ -90,6 +90,11 @@ public void run() { log.atError().setCause(e).log("Error getting project"); continue; } + if (null == project) { + printError("Failed to get project '" + projectName + "' (" + projectId + ")"); + log.atError().log("Project {} not found", projectId); + continue; + } if (null == project.getProjectOwnerUserId()) { warning(String.format("Project %s (%s) has no owner", projectName, projectId)); log.warn("Project {} ({}) has no owner", projectName, projectId); @@ -99,24 +104,26 @@ public void run() { log.warn("Project {} ({}) is already assigned to user {}", projectName, projectId, userID); continue; } + ReassignProjectRequest reassignProjectRequest = new ReassignProjectRequest(userID, project.getProjectOwnerUserId()); + log.atTrace().log("Reassigning project {} ({}) to user {}", projectName, projectId, userID); + HttpResponse reassignResponse = null; try { - ReassignProjectRequest reassignProjectRequest = new ReassignProjectRequest(userID, project.getProjectOwnerUserId()); - log.atTrace().log("Reassigning project {} ({}) to user {}", projectName, projectId, userID); - HttpResponse reassignResponse = client.reassignProject(projectId, reassignProjectRequest); - if (reassignResponse.status() == HttpStatus.OK) { - printNormal("Successfully reassigned project %s (%s) to user %s", projectName, projectId, userID); - log.atTrace().log("received api response status: {}", reassignResponse.status()); - successCount++; - continue; - } - printError("Failed to reassign project " + projectName + " (" + projectId + ") to user " + userID + - ". Expected HTTP Status 'OK', but got " + reassignResponse.status()); - log.atError().log("Failed to reassign project {} ({}) to user {}. Expected HTTP Status 'OK', but got {}", - projectName, projectId, userID, reassignResponse.status()); + reassignResponse = client.reassignProject(projectId, reassignProjectRequest); } catch (HttpClientResponseException e) { printError("Failed to reassign project " + projectName + " (" + projectId + ") to user " + userID); log.atError().setCause(e).log("Error response from API: {}", e.getResponse().body()); } + if (null != reassignResponse && reassignResponse.status() == HttpStatus.OK) { + printNormal("Successfully reassigned project %s (%s) to user %s", projectName, projectId, userID); + log.atTrace().log("received api response status: {}", reassignResponse.status()); + successCount++; + continue; + } + String reason = reassignResponse == null ? "response is null" : reassignResponse.status().toString(); + printError("Failed to reassign project " + projectName + " (" + projectId + ") to user " + userID + + ". Expected HTTP Status 'OK', but got " + reason); + log.atError().log("Failed to reassign project {} ({}) to user {}. Expected HTTP Status 'OK', but got {}", + projectName, projectId, userID, reason); } } printNormal("Successfully reassigned %d projects to user %s", successCount, userID); diff --git a/src/main/java/org/justserve/util/EmailParser.java b/cli/src/main/java/org/justserve/util/EmailParser.java similarity index 90% rename from src/main/java/org/justserve/util/EmailParser.java rename to cli/src/main/java/org/justserve/util/EmailParser.java index 9688f79..5e9f548 100644 --- a/src/main/java/org/justserve/util/EmailParser.java +++ b/cli/src/main/java/org/justserve/util/EmailParser.java @@ -9,7 +9,6 @@ import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; -import org.justserve.cli.util.JustServeEmailParserError; import java.io.ByteArrayInputStream; import java.io.IOException; @@ -66,7 +65,7 @@ public static Document parse(String emlFileContent) throws MessagingException, I * Extracts project names and their corresponding UUIDs for project ids on JustServe. * The Document is expected to represent an HTML email body from an automated JustServe email regarding reassigned projects * - * @param doc The Jsoup Document containing the HTML structure of the email. + * @param doc The Jsoup Document containing the HTML structure of the email. This is to be the html from the automated email and does not contain any other parts of the email. * @return A map where keys are project names (String) and values are project UUIDs. * @throws JustServeEmailParserError If the HTML structure does not conform to the expected format for extracting projects. */ @@ -161,11 +160,22 @@ private static String getHtmlBody(Part part) throws MessagingException, IOExcept * not contain the 'www.justserve.org*2Fprojects*2F' string. */ static UUID getProjectIDFromUglyUrl(String uglyUrl) { - String start = "www.justserve.org*2Fprojects*2F"; - if (!uglyUrl.contains(start)) { + String startAsterisk = "www.justserve.org*2Fprojects*2F"; + String startPercent = "www.justserve.org%2Fprojects%2F"; + String startSlash = "www.justserve.org/projects/"; + String splitString; + + if (uglyUrl.contains(startAsterisk)) { + splitString = startAsterisk; + } else if (uglyUrl.contains(startPercent)) { + splitString = startPercent; + } else if (uglyUrl.contains(startSlash)) { + splitString = startSlash; + } else { return null; } - String uuid = uglyUrl.split(Pattern.quote(start))[1].split(Pattern.quote("/"))[0]; + + String uuid = uglyUrl.split(Pattern.quote(splitString))[1].split(Pattern.quote("/"))[0]; return UUID.fromString(uuid); } } diff --git a/src/main/java/org/justserve/cli/util/JustServeEmailParserError.java b/cli/src/main/java/org/justserve/util/JustServeEmailParserError.java similarity index 82% rename from src/main/java/org/justserve/cli/util/JustServeEmailParserError.java rename to cli/src/main/java/org/justserve/util/JustServeEmailParserError.java index 66809e6..ea8c7f2 100644 --- a/src/main/java/org/justserve/cli/util/JustServeEmailParserError.java +++ b/cli/src/main/java/org/justserve/util/JustServeEmailParserError.java @@ -1,4 +1,4 @@ -package org.justserve.cli.util; +package org.justserve.util; public class JustServeEmailParserError extends Exception { public JustServeEmailParserError(String message) { diff --git a/src/main/java/org/justserve/cli/util/JustServePrinter.java b/cli/src/main/java/org/justserve/util/JustServePrinter.java similarity index 99% rename from src/main/java/org/justserve/cli/util/JustServePrinter.java rename to cli/src/main/java/org/justserve/util/JustServePrinter.java index 4c1a78f..80624a2 100644 --- a/src/main/java/org/justserve/cli/util/JustServePrinter.java +++ b/cli/src/main/java/org/justserve/util/JustServePrinter.java @@ -1,4 +1,4 @@ -package org.justserve.cli.util; +package org.justserve.util; import org.fusesource.jansi.Ansi; diff --git a/src/main/java/org/justserve/cli/util/JustServeVersionProvider.java b/cli/src/main/java/org/justserve/util/JustServeVersionProvider.java similarity index 81% rename from src/main/java/org/justserve/cli/util/JustServeVersionProvider.java rename to cli/src/main/java/org/justserve/util/JustServeVersionProvider.java index f67d90a..6d3b4b5 100644 --- a/src/main/java/org/justserve/cli/util/JustServeVersionProvider.java +++ b/cli/src/main/java/org/justserve/util/JustServeVersionProvider.java @@ -1,10 +1,10 @@ -package org.justserve.cli.util; +package org.justserve.util; import io.micronaut.context.annotation.Value; import picocli.CommandLine; -import static org.justserve.cli.util.JustServePrinter.styleEmphasis; -import static org.justserve.cli.util.JustServePrinter.styleTitle; +import static org.justserve.util.JustServePrinter.styleEmphasis; +import static org.justserve.util.JustServePrinter.styleTitle; public class JustServeVersionProvider implements CommandLine.IVersionProvider { diff --git a/src/main/resources/application.yml b/cli/src/main/resources/application.yml similarity index 71% rename from src/main/resources/application.yml rename to cli/src/main/resources/application.yml index f3b2fe0..e4cd39a 100644 --- a/src/main/resources/application.yml +++ b/cli/src/main/resources/application.yml @@ -6,13 +6,8 @@ micronaut: services: justserve: url: https://www.justserve.org - client: - read-timeout: 20s justserve: token: ${:i-need-to-be-defined} -jackson: - deserialization: - ACCEPT_EMPTY_STRING_AS_NULL_OBJECT: true logger: levels: # org.justserve.auth.JustServeClientFilter: DEBUG \ No newline at end of file diff --git a/cli/src/test/groovy/org/justserve/cli/command/AssignOrgToProjectSpec.groovy b/cli/src/test/groovy/org/justserve/cli/command/AssignOrgToProjectSpec.groovy new file mode 100644 index 0000000..9c59f0b --- /dev/null +++ b/cli/src/test/groovy/org/justserve/cli/command/AssignOrgToProjectSpec.groovy @@ -0,0 +1,40 @@ +package org.justserve.cli.command + +import io.micronaut.test.extensions.spock.annotation.MicronautTest +import org.justserve.model.ProjectCard +import spock.lang.Execution + +import static org.spockframework.runtime.model.parallel.ExecutionMode.SAME_THREAD + +@Execution(SAME_THREAD) +@MicronautTest +class AssignOrgToProjectSpec extends BaseCommandSpec { + + def "can assign an organization to a project"() { + given: + def orgSearchResponse = authOrgClient.searchByLocation(createSearchRequestForElkGrove()) + UUID orgId = orgSearchResponse.body().organizations.first().id + ProjectCard project = searchResults.first() + def args = ["assignOrgToProject", "-p", project.getId().toString(), "-o", orgId.toString()] + + when: + def (outputStream, errorStream) = executeCommand(ctx, args as String[]) + + then: + errorStream.matches(blankRegex) + outputStream.contains("Successfully assigned organization ${orgId} to project ${project.getId()}") + } + + def "fails gracefully when project or org does not exist"() { + given: + UUID fakeId = UUID.randomUUID() + def args = ["assignOrgToProject", "-p", fakeId.toString(), "-o", fakeId.toString()] + + when: + def (outputStream, errorStream) = executeCommand(ctx, args as String[]) + + then: + outputStream.matches(blankRegex) + errorStream.contains("Failed to assign organization ${fakeId} to project ${fakeId}. (400: Client 'justserve': Bad Request)") + } +} diff --git a/src/test/groovy/org/justserve/cli/command/BaseCommandSpec.groovy b/cli/src/test/groovy/org/justserve/cli/command/BaseCommandSpec.groovy similarity index 96% rename from src/test/groovy/org/justserve/cli/command/BaseCommandSpec.groovy rename to cli/src/test/groovy/org/justserve/cli/command/BaseCommandSpec.groovy index 1cc84d0..e9eca9e 100644 --- a/src/test/groovy/org/justserve/cli/command/BaseCommandSpec.groovy +++ b/cli/src/test/groovy/org/justserve/cli/command/BaseCommandSpec.groovy @@ -2,8 +2,8 @@ package org.justserve.cli.command import io.micronaut.configuration.picocli.PicocliRunner import io.micronaut.context.ApplicationContext +import org.justserve.JustServeCommand import org.justserve.JustServeSpec -import org.justserve.cli.JustServeCommand import spock.lang.Execution import spock.lang.Shared @@ -21,7 +21,7 @@ class BaseCommandSpec extends JustServeSpec { def setupSpec() { def props = new Properties() - new File('gradle.properties').withInputStream { stream -> + new File('../gradle.properties').withInputStream { stream -> props.load(stream) } ansi = "\\u001B\\[[;\\d]*m" diff --git a/src/test/groovy/org/justserve/cli/command/GetTempPasswordSpec.groovy b/cli/src/test/groovy/org/justserve/cli/command/GetTempPasswordSpec.groovy similarity index 85% rename from src/test/groovy/org/justserve/cli/command/GetTempPasswordSpec.groovy rename to cli/src/test/groovy/org/justserve/cli/command/GetTempPasswordSpec.groovy index 41d9ead..c2b83bb 100644 --- a/src/test/groovy/org/justserve/cli/command/GetTempPasswordSpec.groovy +++ b/cli/src/test/groovy/org/justserve/cli/command/GetTempPasswordSpec.groovy @@ -1,27 +1,18 @@ package org.justserve.cli.command import io.micronaut.context.ApplicationContext -import net.datafaker.Faker -import org.justserve.TestUser import spock.lang.Execution import spock.lang.Retry -import spock.lang.Shared import spock.lang.Unroll import static org.spockframework.runtime.model.parallel.ExecutionMode.SAME_THREAD @Execution(SAME_THREAD) @Retry -class GetTempPasswordSpec extends BaseCommandSpec { - @Shared - TestUser readOnlyUser - def setupSpec() { - readOnlyUser = new TestUser(new Faker(Locale.of("en-us"))) - readOnlyUser.uuid = createUser(readOnlyUser).body().getId() - } +class GetTempPasswordSpec extends BaseCommandSpec { - @Unroll("getting temp password with '#flag' and '#email' returns ") + @Unroll("getting temp password with '#flag' and '#email' #expectation") def "commands to query temporary password should behave as expected with or without authentication"() { when: def (outputStream, errorStream) = executeCommand(context as ApplicationContext, ["getTempPassword", flag, email] as String[]) diff --git a/src/test/groovy/org/justserve/cli/command/MakeOrgAdminSpec.groovy b/cli/src/test/groovy/org/justserve/cli/command/MakeOrgAdminSpec.groovy similarity index 62% rename from src/test/groovy/org/justserve/cli/command/MakeOrgAdminSpec.groovy rename to cli/src/test/groovy/org/justserve/cli/command/MakeOrgAdminSpec.groovy index f465bd6..06a5820 100644 --- a/src/test/groovy/org/justserve/cli/command/MakeOrgAdminSpec.groovy +++ b/cli/src/test/groovy/org/justserve/cli/command/MakeOrgAdminSpec.groovy @@ -1,20 +1,28 @@ package org.justserve.cli.command import io.micronaut.context.ApplicationContext -import spock.lang.Execution +import spock.lang.Shared -import static org.spockframework.runtime.model.parallel.ExecutionMode.SAME_THREAD - -@Execution(SAME_THREAD) +//@Execution(SAME_THREAD) class MakeOrgAdminSpec extends BaseCommandSpec { + @Shared + UUID sharedUserID + + @Shared + List sharedOrgs + + def setupSpec() { + sharedUserID = createUser().body().id + sharedOrgs = createTestOrgs(3) + } + def "can make a user an admin to #orgCount org(s) using the #orgFlag and #userFlag flags #title"() { given: - UUID userID = createUser().body().id - def orgs = createOrgs(orgCount).join(",") + def orgs = sharedOrgs.take(orgCount).join(",") when: - def (outputStream, errorStream) = executeCommand(context as ApplicationContext, ["makeOrgAdmin", orgFlag, orgs, userFlag, userID] as String[]) + def (outputStream, errorStream) = executeCommand(context as ApplicationContext, ["makeOrgAdmin", orgFlag, orgs, userFlag, sharedUserID] as String[]) then: if (context == noAuthCtx) { @@ -25,7 +33,7 @@ class MakeOrgAdminSpec extends BaseCommandSpec { return } verifyAll { - (outputStream as String).contains("successfully reassigned ${orgCount} orgs to user ${userID}") + (outputStream as String).contains("successfully reassigned ${orgCount} orgs to user ${sharedUserID}") errorStream.matches(blankRegex) } @@ -47,22 +55,21 @@ class MakeOrgAdminSpec extends BaseCommandSpec { def "can make a user an admin to #orgCount where at least one org ID does not exist on JustServe"() { given: - UUID userID = createUser().body().id String orgs def fakeId = faker.internet().uuid().toString() if (orgCount == 1) { orgs = fakeId } else { - orgs = createOrgs(orgCount - 1).join(",") + "," + fakeId + orgs = sharedOrgs.take(orgCount - 1).join(",") + "," + fakeId } when: - def (outputStream, errorStream) = executeCommand(context as ApplicationContext, ["makeOrgAdmin", orgFlag, orgs, userFlag, userID] as String[]) + def (outputStream, errorStream) = executeCommand(context as ApplicationContext, ["makeOrgAdmin", orgFlag, orgs, userFlag, sharedUserID] as String[]) then: verifyAll { - (outputStream as String).contains("successfully reassigned ${orgCount - 1 } orgs to user ${userID}") - (errorStream as String).contains("Failed to make user ${userID} an admin for organization ${fakeId}.") + (outputStream as String).contains("successfully reassigned ${orgCount - 1} orgs to user ${sharedUserID}") + (errorStream as String).contains("Failed to make user ${sharedUserID} an admin for organization ${fakeId}.") } where: @@ -75,4 +82,33 @@ class MakeOrgAdminSpec extends BaseCommandSpec { "-o" | 1 | "--user" | ctx | "as an authorized user successfully makes the changes" | _ } + + def "can make a user an admin to #orgCount where at least one org Slug does not exist on JustServe"() { + given: + String orgs + def fakeSlug = faker.internet().slug().toString() + if (orgCount == 1) { + orgs = fakeSlug + } else { + orgs = authOrgClient.searchByLocation(createSearchRequestForElkGrove()).body().getOrganizations().url.take(orgCount - 1).join(",") + "," + fakeSlug + } + + when: + def (outputStream, errorStream) = executeCommand(context as ApplicationContext, ["makeOrgAdmin", orgFlag, orgs, userFlag, sharedUserID] as String[]) + + then: + verifyAll { + (outputStream as String).contains("successfully reassigned ${orgCount - 1} orgs to user ${sharedUserID}") + (errorStream as String).contains("Error The org '${fakeSlug}' is not found on JustServe") + } + + where: + orgFlag | orgCount | userFlag | context | title | _ + "-o" | 3 | "-u" | ctx | "as an authorized user successfully makes the changes" | _ + "--org" | 3 | "-u" | ctx | "as an authorized user successfully makes the changes" | _ + "-o" | 3 | "--user" | ctx | "as an authorized user successfully makes the changes" | _ + "-o" | 1 | "-u" | ctx | "as an authorized user successfully makes the changes" | _ + "--org" | 1 | "-u" | ctx | "as an authorized user successfully makes the changes" | _ + "-o" | 1 | "--user" | ctx | "as an authorized user successfully makes the changes" | _ + } } diff --git a/cli/src/test/groovy/org/justserve/cli/command/UnReassignProjectsSpec.groovy b/cli/src/test/groovy/org/justserve/cli/command/UnReassignProjectsSpec.groovy new file mode 100644 index 0000000..75053a8 --- /dev/null +++ b/cli/src/test/groovy/org/justserve/cli/command/UnReassignProjectsSpec.groovy @@ -0,0 +1,87 @@ +package org.justserve.cli.command + + +import io.micronaut.test.extensions.spock.annotation.MicronautTest +import org.justserve.TestUser +import org.justserve.model.ProjectCard +import org.justserve.util.EmailParser +import org.justserve.util.TestEmailGenerator +import spock.lang.Execution +import spock.lang.Shared + +import static org.spockframework.runtime.model.parallel.ExecutionMode.SAME_THREAD + +@Execution(SAME_THREAD) +@MicronautTest +class UnReassignProjectsSpec extends BaseCommandSpec { + + @Shared + File tempEmlFile + + @Shared + Map testEmails + + @Shared + List testProjects + + def setupSpec() { + testProjects = getProjectsByLocation(faker.location().toString()) + def newReadOnlyUser = new TestUser(faker) + newReadOnlyUser.uuid = createUser().body().id + testEmails = new HashMap<>() + testEmails.put("forwarded-reassignment-email", [TestEmailGenerator.generateMockValidEmlContent(testProjects, readOnlyUser), readOnlyUser]) + testEmails.put("automated-reassignment-email", [TestEmailGenerator.generateMockValidEmlContent(testProjects, newReadOnlyUser), newReadOnlyUser]) + testEmails.put("email-without-justserve-content", [TestEmailGenerator.generateInvalidMockEmlContent(), readOnlyUser]) + } + + def "can make reassignments from #title to a user"(String title, String fileContent, TestUser user) { + given: + if (title.contains("without")) { + return + } + tempEmlFile = File.createTempFile(title, ".eml") + tempEmlFile.write(fileContent) + def args = ["unReassignProjects", "-u", user.uuid.toString(), "-f", tempEmlFile.absolutePath] + def projectCount = EmailParser.getProjects(fileContent).values().flatten().size() + + when: + def (outputStream, errorStream) = executeCommand(ctx, args as String[]) + + then: + errorStream.matches(blankRegex) + testProjects.each { project -> outputStream.contains(project.id.toString()) + } + outputStream.contains("Successfully reassigned ${projectCount} projects to user ${user.uuid}") + + cleanup: + try { + tempEmlFile.delete() + } catch (Exception ignored) { + } + + where: + [title, fileContent, user] << testEmails.collect { key, value -> [key, value[0], value[1]] } + } + + def "shows error when project ID is invalid"() { + given: + def invalidProject = new ProjectCard().setId(UUID.randomUUID()).setTitle("Surprised by Joy") + def emailContent = TestEmailGenerator.generateMockValidEmlContent([invalidProject], readOnlyUser) + tempEmlFile = File.createTempFile("invalid-project", ".eml") + tempEmlFile.write(emailContent) + def args = ["unReassignProjects", "-u", readOnlyUser.uuid.toString(), "-f", tempEmlFile.absolutePath] + + when: + def (outputStream, errorStream) = executeCommand(ctx, args as String[]) + + then: + errorStream.contains("Failed to get project 'Surprised by Joy' (${invalidProject.id})") + outputStream.contains("Successfully reassigned 0 projects") + + cleanup: + try { + tempEmlFile.delete() + } catch (Exception ignored) { + } + } +} diff --git a/src/test/groovy/org/justserve/util/EmailParserSpec.groovy b/cli/src/test/groovy/org/justserve/util/EmailParserSpec.groovy similarity index 65% rename from src/test/groovy/org/justserve/util/EmailParserSpec.groovy rename to cli/src/test/groovy/org/justserve/util/EmailParserSpec.groovy index e708e63..319f66e 100644 --- a/src/test/groovy/org/justserve/util/EmailParserSpec.groovy +++ b/cli/src/test/groovy/org/justserve/util/EmailParserSpec.groovy @@ -3,13 +3,16 @@ package org.justserve.util import io.micronaut.core.io.ResourceResolver import io.micronaut.test.extensions.spock.annotation.MicronautTest import jakarta.inject.Inject +import net.datafaker.Faker import org.jsoup.nodes.Document -import org.justserve.cli.util.JustServeEmailParserError +import org.justserve.TestUser +import org.justserve.model.ProjectCard +import org.justserve.util.TestEmailGenerator.UrlStyle import spock.lang.Shared import spock.lang.Specification +import spock.lang.Unroll import java.util.stream.Collectors -import java.util.stream.Stream @MicronautTest class EmailParserSpec extends Specification { @@ -27,16 +30,17 @@ class EmailParserSpec extends Specification { def setupSpec() { testEmails = new HashMap<>() - Stream.of("sara-anderson-email.eml", "test-with-automated-email.eml", "test-without-automated-email.eml").forEach { file -> - def resource = resourceResolver.getResourceAsStream("classpath:$file") - resource.ifPresent { stream -> - try (BufferedReader reader = new BufferedReader(new InputStreamReader(stream))) { - testEmails.put(file.replace(".eml", ""), reader.lines().collect(Collectors.joining(System.lineSeparator()))) - } catch (IOException e) { - throw new RuntimeException("Failed to read test file: $file", e) - } - } - } + + Faker faker = new Faker() + TestUser recipient = new TestUser(faker) + List mockProjects = [ + new ProjectCard(id: UUID.randomUUID(), title: faker.book().title()), + new ProjectCard(id: UUID.randomUUID(), title: faker.book().title()) + ] + + testEmails.put("test-with-automated-email", TestEmailGenerator.generateMockValidEmlContent(mockProjects, recipient)) + testEmails.put("test-with-automated-email-zendesk", TestEmailGenerator.generateMockZendeskEmlContent(mockProjects, recipient)) + testEmails.put("test-without-automated-email", TestEmailGenerator.generateInvalidMockEmlContent()) testTrackingUrls = new HashMap<>() def yamlResource = resourceResolver.getResourceAsStream("classpath:projects.yaml") @@ -64,7 +68,7 @@ class EmailParserSpec extends Specification { return } def error = thrown(JustServeEmailParserError) - error.message == "Email is not a JustServe generated email." + error.message == "Email does not contain an HTML body." where: @@ -113,9 +117,31 @@ class EmailParserSpec extends Specification { return } def error = thrown(JustServeEmailParserError) - error.message == "Email is not a JustServe generated email." + error.message == "Email does not contain an HTML body." where: [title, fileContent] << testEmails.collect { key, value -> [key, value] } } + + @Unroll + def "Can parse project URLs with different encoding styles"(UrlStyle urlStyle) { + given: + Faker faker = new Faker() + TestUser recipient = new TestUser(faker) + List myMockProjects = [ + new ProjectCard(id: UUID.randomUUID(), title: faker.book().title()), + new ProjectCard(id: UUID.randomUUID(), title: faker.book().title()) + ] + String emailContent = TestEmailGenerator.generateMockValidEmlContent(myMockProjects, recipient, urlStyle) + + when: + Map> projects = EmailParser.getProjects(emailContent) + + then: + projects.size() == 2 + myMockProjects.every { mock -> projects.values().flatten().contains(mock.id) } + + where: + urlStyle << UrlStyle.values() + } } diff --git a/cli/src/test/groovy/org/justserve/util/TestEmailGenerator.groovy b/cli/src/test/groovy/org/justserve/util/TestEmailGenerator.groovy new file mode 100644 index 0000000..822655a --- /dev/null +++ b/cli/src/test/groovy/org/justserve/util/TestEmailGenerator.groovy @@ -0,0 +1,298 @@ +package org.justserve.util + +import net.datafaker.Faker +import org.justserve.TestUser +import org.justserve.model.ProjectCard + +import static java.util.concurrent.TimeUnit.DAYS + +class TestEmailGenerator { + + enum UrlStyle { + CLEAN, + ENCODED_DEFENSE, + ENCODED_AWS + } + + static String generateMockValidEmlContent(List projects, TestUser recipient, UrlStyle urlStyle = UrlStyle.ENCODED_AWS) { + StringBuilder sb = new StringBuilder() + Faker faker = new Faker() + + String recipientName = recipient.firstName + " " + recipient.lastName + String senderName = faker.name().fullName() + String senderEmail = faker.internet().emailAddress() + String boundary = "000000000000" + faker.internet().uuid().replace("-", "").substring(0, 16) + String phoneNumber = faker.phoneNumber().phoneNumber() + + sb.append("Return-Path: <").append(senderEmail).append(">\n") + sb.append("Date: ").append(faker.timeAndDate().past(1, DAYS)).append("\n") + sb.append("From: ").append(senderName).append(" <").append(senderEmail).append(">\n") + sb.append("To: JustServeSupport \n") + sb.append("Subject: Fwd: Project Reassignment\n") + sb.append("Mime-Version: 1.0\n") + sb.append("Content-Type: multipart/alternative; boundary=").append(boundary).append("\n\n") + + // Plain text part + sb.append("--").append(boundary).append("\n") + sb.append("Content-Type: text/plain; charset=UTF-8\n") + sb.append("Content-Transfer-Encoding: quoted-printable\n\n") + + sb.append("Hi Jonathan,=\n\n") + sb.append("Here you go. Thx for all of your help.=\n\n") + sb.append(senderName).append("=\n\n") + sb.append("---------- Forwarded message ---------\n") + sb.append("From: JustServe.org \n") + sb.append("Date: Tue, Dec 16, 2025 at 8:27 AM\n") + sb.append("Subject: Project Reassignment\n") + sb.append("To: <").append(senderEmail).append(">\n\n") + sb.append("Project Reassignment\n\n") + sb.append("The following projects have been reassigned from ").append(faker.name().fullName()).append(", to ") + .append(recipientName).append(", by ").append(senderName).append(":\n\n") + + projects.each { project -> + sb.append(" - ").append(project.title).append("\n") + sb.append(" \n") + } + + sb.append("\n").append(recipientName).append(" can now access these projects in their manage projects page for editing.\n\n") + sb.append("JustServe.org is provided as a service by The Church of Jesus Christ of Latter-day Saints.\n\n") + sb.append("© 2020 by Intellectual Reserve, Inc. All rights reserved.\n\n") + sb.append("50 East North Temple, Salt Lake City, Utah, 84150\n\n") + sb.append("This email was sent to: ").append(senderEmail).append("\n\n") + + // HTML part + sb.append("--").append(boundary).append("\n") + sb.append("Content-Type: text/html; charset=UTF-8\n") + sb.append("Content-Transfer-Encoding: quoted-printable\n\n") + + String htmlTemplateStart = """
Here you go.  Thx for your help.  

---------- Forwarded message ---------
From: JustServe.org <noreply-js@mail.justserve.org>
Date: Tue, Dec 16, 2025 at 8:27 AM
Subject: Project Reassignment
To: <${senderEmail}>


+ + + + +
+ + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ Logo Title +
+ + + + + + + + + + +
Project Reassignment
+

+ + The following projects have been reassigned from ${faker.name().fullName()}, to ${recipientName}, by ${senderName}: + +

+
    """ + + String htmlTemplateEnd = """
+

+ + ${recipientName} can now access these projects in their manage projects page for editing. + +

+
+
+
+ + + + + + + + + + + + + + +
+

JustServe.org is provided as a service by The Church of Jesus Christ of Latter-day Saints.

+

© 2020 by Intellectual Reserve, Inc. All rights reserved.

+

50 East North Temple, Salt Lake City, Utah, 84150

+

Terms of Use (Updated 8/12/2021) | Privacy Notice (Updated 10/12/2022)

+

This email was sent to: ${senderEmail}

+

If you would like to stop receiving these types of emails you may unsubscribe from your account settings page.

+
+
+ +
+


--
${senderName}
JustServe Assistant Area Director
${faker.address().state()} 
${phoneNumber}  Cell and Text



+""" + + sb.append(htmlTemplateStart) + + projects.each { project -> + String url + switch (urlStyle) { + case UrlStyle.ENCODED_DEFENSE: + url = "https://urldefense.com/v3/__https://www.justserve.org*2Fprojects*2F" + project.id + "/1/0100019cd9daccde-30d2f0ce-ca96-45a1-bd36-1cccc809eb61-000000/" + break + case UrlStyle.ENCODED_AWS: + url = "https://v6q93rxd.r.us-east-1.awstrack.me/L0/https:%2F%2Fwww.justserve.org%2Fprojects%2F" + project.id + "/1/0100019ce325c14c" + break + default: // UrlStyle.CLEAN + url = "https://www.justserve.org/projects/" + project.id + break + } + sb.append("
  • ").append(project.title).append("
  • ") + } + + sb.append(htmlTemplateEnd) + + sb.append("\n--").append(boundary).append("--\n") + return sb.toString() + } + + static String generateInvalidMockEmlContent() { + StringBuilder sb = new StringBuilder() + Faker faker = new Faker() + + String senderName = faker.name().fullName() + String senderEmail = faker.internet().emailAddress() + + sb.append("Return-Path: <").append(senderEmail).append(">\n") + sb.append("Date: ").append(faker.timeAndDate().past(1, DAYS)).append("\n") + sb.append("From: ").append(senderName).append(" <").append(senderEmail).append(">\n") + sb.append("To: JustServeSupport \n") + sb.append("Subject: Random user email without JS content\n") + sb.append("Mime-Version: 1.0\n") + sb.append("Content-Type: text/plain; charset=UTF-8\n") + sb.append("Content-Transfer-Encoding: quoted-printable\n\n") + + sb.append("Hi Jonathan,=\n\n") + sb.append("Can you help me reset my password? I forgot it.\n\n") + sb.append("Thanks,\n") + sb.append(senderName).append("\n") + + return sb.toString() + } + + static String generateMockZendeskEmlContent(List projects, TestUser recipient) { + StringBuilder sb = new StringBuilder() + Faker faker = new Faker() + + String senderName = faker.name().fullName() + String senderEmail = faker.internet().emailAddress() + String recipientName = recipient.firstName + " " + recipient.lastName + String recipientEmail = recipient.email + String boundary = "000000000000" + faker.internet().uuid().replace("-", "").substring(0, 16) + + sb.append("Return-Path: <").append(senderEmail).append(">\n") + sb.append("Date: ").append(faker.timeAndDate().past(1, DAYS)).append("\n") + sb.append("From: ").append(senderName).append(" <").append(senderEmail).append(">\n") + sb.append("To: JustServeSupport \n") + sb.append("Subject: Fwd: Project Reassignment\n") + sb.append("Mime-Version: 1.0\n") + sb.append("Content-Type: multipart/alternative; boundary=\"").append(boundary).append("\"\n\n") + + // Plain text part + sb.append("--").append(boundary).append("\n") + sb.append("Content-Type: text/plain; charset=\"UTF-8\"\n") + sb.append("Content-Transfer-Encoding: quoted-printable\n\n") + + sb.append("CCJSS ").append(faker.name().fullName()).append(" reassigned ").append(projects.size()).append(" projects to their lead JSS account, ").append(recipientName).append(".\n\n") + sb.append("---------- Forwarded message ---------\n") + sb.append("From: JustServe.org \n") + sb.append("Date: Thu, Mar 12, 2026 at 1:43 PM\n") + sb.append("Subject: Project Reassignment\n") + sb.append("To: <").append(recipientEmail).append(">\n\n") + sb.append("Project Reassignment\n\n") + sb.append("The following projects have been reassigned from ").append(faker.name().fullName()).append(", to ").append(recipientName).append(", by ").append(senderName).append(":\n\n") + + projects.each { project -> + sb.append(" - ").append(project.title).append("\n") + sb.append(" \n") + } + + sb.append("\n").append(recipientName).append(" can now access these projects in their manage projects page for editing.\n\n") + + // HTML part + sb.append("--").append(boundary).append("\n") + sb.append("Content-Type: text/html; charset=\"UTF-8\"\n") + sb.append("Content-Transfer-Encoding: quoted-printable\n\n") + + String htmlTemplateStart = """
    CCJSS ${faker.name().fullName()} reassigned ${projects.size()} projects to their lead JSS account, ${recipientName}.

    ---------- Forwarded message ---------
    From: JustServe.org <noreply-js@mail.justserve.org>
    Date: Thu, Mar 12, 2026 at 1:43 PM
    Subject: Project Reassignment
    To: <${recipientEmail}>


    +
    + + + + + + + + +
    + + + + + + + + + +
    + Logo Title +
    +
      """ + + String htmlTemplateEnd = """
    +
    +
    +
    """ + + sb.append(htmlTemplateStart) + + projects.each { project -> + String uglyUrl = "https://v6q93rxd.r.us-east-1.awstrack.me/L0/https:%2F%2Fwww.justserve.org%2Fprojects%2F" + project.id + "/1/0100019ce325c14c" + sb.append("
  • ").append(project.title).append("
  • ") + } + + sb.append(htmlTemplateEnd) + + sb.append("\n--").append(boundary).append("--\n") + return sb.toString() + } +} diff --git a/src/test/resources/SpockConfig.groovy b/cli/src/test/resources/SpockConfig.groovy similarity index 100% rename from src/test/resources/SpockConfig.groovy rename to cli/src/test/resources/SpockConfig.groovy diff --git a/src/test/resources/application-test.yaml b/cli/src/test/resources/application-test.yaml similarity index 100% rename from src/test/resources/application-test.yaml rename to cli/src/test/resources/application-test.yaml diff --git a/src/test/resources/projects.yaml b/cli/src/test/resources/projects.yaml similarity index 100% rename from src/test/resources/projects.yaml rename to cli/src/test/resources/projects.yaml diff --git a/core/build.gradle.kts b/core/build.gradle.kts new file mode 100644 index 0000000..6327199 --- /dev/null +++ b/core/build.gradle.kts @@ -0,0 +1,80 @@ +import org.apache.tools.ant.filters.ReplaceTokens +import java.util.* + +plugins { + id("groovy") + id("io.micronaut.library") version "4.5.3" + id("io.micronaut.openapi") version "4.5.3" + id("com.github.hauner.jarTest") version "1.1.0" +} + +version = project.properties["justserveCliVersion"]!! +group = "org.justserve" + +repositories { + mavenCentral() +} + +dependencies { + annotationProcessor("org.projectlombok:lombok") + annotationProcessor("io.micronaut:micronaut-http-validation") + annotationProcessor("io.micronaut.openapi:micronaut-openapi") + annotationProcessor("io.micronaut.serde:micronaut-serde-processor") + implementation("io.micronaut.serde:micronaut-serde-jackson") + implementation("io.micronaut:micronaut-retry") + implementation("org.simplejavamail:simple-java-mail:${project.properties["simpleJavaMailVersion"]}") + implementation("org.jsoup:jsoup:${project.properties["jsoupVersion"]}") + implementation("io.micronaut.reactor:micronaut-reactor") + compileOnly("io.micronaut:micronaut-http-client") + compileOnly("io.micronaut.openapi:micronaut-openapi-annotations") + compileOnly("org.projectlombok:lombok") + runtimeOnly("ch.qos.logback:logback-classic") + runtimeOnly("org.yaml:snakeyaml") + testImplementation("net.datafaker:datafaker:${project.properties["datafakerVersion"]}") + testImplementation("org.apache.commons:commons-lang3:${project.properties["commonsLang3Version"]}") + testImplementation("io.micronaut:micronaut-http-client") +} + +java { + sourceCompatibility = JavaVersion.toVersion("21") + targetCompatibility = JavaVersion.toVersion("21") +} + +micronaut { + testRuntime("spock2") + openapi { + version = project.properties["micronautOpenapiSpecVersion"] as String + client(file("src/main/resources/schema.yml")) { + apiPackageName = "org.justserve.client" + modelPackageName = "org.justserve.model" + useReactive = false + useAuth = false + lombok.set(true) + clientId = "justserve" + apiNameSuffix = "Client" + alwaysUseGenerateHttpResponse = true + additionalProperties.put("retryable", "true") +// https://github.com/micronaut-projects/micronaut-openapi/discussions/1783 + schemaMapping.put("EventType", "org.justserve.model.EventType") + importMapping.put("EventType", "org.justserve.model.EventType") + schemaMapping.put("ProjectLocationType", "org.justserve.model.ProjectLocationType") + importMapping.put("ProjectLocationType", "org.justserve.model.ProjectLocationType") + schemaMapping.put("ProjectStatus", "org.justserve.model.ProjectStatus") + importMapping.put("ProjectStatus", "org.justserve.model.ProjectStatus") + schemaMapping.put("TimeZone", "org.justserve.model.TimeZone") + importMapping.put("TimeZone", "org.justserve.model.TimeZone") + } + } + processing { + incremental(true) + annotations("org.justserve.*") + } +} + +tasks.withType { + val props = Properties() + file("../gradle.properties").inputStream().use { props.load(it) } + filesMatching("**/application.yml") { + filter(mapOf("tokens" to props), ReplaceTokens::class.java) + } +} \ No newline at end of file diff --git a/src/main/java/org/justserve/auth/JustServeClientFilter.java b/core/src/main/java/org/justserve/auth/JustServeClientFilter.java similarity index 92% rename from src/main/java/org/justserve/auth/JustServeClientFilter.java rename to core/src/main/java/org/justserve/auth/JustServeClientFilter.java index 6a6b425..c334e72 100644 --- a/src/main/java/org/justserve/auth/JustServeClientFilter.java +++ b/core/src/main/java/org/justserve/auth/JustServeClientFilter.java @@ -5,6 +5,7 @@ import io.micronaut.http.MutableHttpRequest; import io.micronaut.http.annotation.ClientFilter; import io.micronaut.http.annotation.RequestFilter; +import lombok.extern.slf4j.Slf4j; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -17,11 +18,10 @@ @SuppressWarnings("unused") @ClientFilter("/**") @Requires(property = "justserve.token") +@Slf4j public class JustServeClientFilter { private final String token; - private final Logger log = LoggerFactory.getLogger(JustServeClientFilter.class); - /** * Constructs a new JustServeClientFilter. * @@ -43,7 +43,9 @@ public void doFilter(MutableHttpRequest request) { log.debug("Skipping bearer token for login request ({})", request.getMethod() + " " + request.getUri()); return; } - + if (token.isEmpty()) { + log.warn("justserve.token is not set"); + } log.debug("adding bearer token to request ({})", request.getMethod() + " " + request.getUri()); request.bearerAuth(token); } diff --git a/src/main/java/org/justserve/client/BoundaryPermissionClient.java b/core/src/main/java/org/justserve/client/BoundaryPermissionClient.java similarity index 100% rename from src/main/java/org/justserve/client/BoundaryPermissionClient.java rename to core/src/main/java/org/justserve/client/BoundaryPermissionClient.java diff --git a/core/src/main/java/org/justserve/client/GraphQLClient.java b/core/src/main/java/org/justserve/client/GraphQLClient.java new file mode 100644 index 0000000..bb4b268 --- /dev/null +++ b/core/src/main/java/org/justserve/client/GraphQLClient.java @@ -0,0 +1,150 @@ +package org.justserve.client; + +import io.micronaut.http.annotation.Body; +import io.micronaut.http.annotation.Consumes; +import io.micronaut.http.annotation.Post; +import io.micronaut.http.annotation.Produces; +import io.micronaut.http.client.annotation.Client; +import io.micronaut.retry.annotation.Retryable; +import org.justserve.model.*; +import org.justserve.model.graph.*; + +import java.util.ArrayList; +import java.util.List; + +@Produces("application/json") +@Consumes("application/graphql-response+json; charset=utf-8") +@Retryable +@Client(id = "justserve", path = "/graphql") +public interface GraphQLClient { + + @Post + GraphQLResponse createEvent(@Body CreateEventMutation request); + + @Post + GraphQLResponse createEvents(@Body CreateEventsMutation request); + + @Post + GraphQLResponse createRecurringEvents(@Body CreateRecurringEventsMutation request); + + @Post + GraphQLResponse executeAddProjectAttachment(@Body GraphQLAddProjectAttachmentRequest request); + + @Post + GraphQLResponse executeAddProjectOrganization(@Body GraphQLAddProjectOrganizationRequest request); + + @Post + GraphQLResponse executeCombinedMutationUpdateProjectAddProjectTag(@Body GraphQLCombinedMutationUpdateProjectAddProjectTagRequest request); + + @Post + GraphQLResponse executeCreateProject(@Body GraphQLCreateProjectRequest request); + + @Post + GraphQLResponse executePublishProject(@Body GraphQLPublishProjectRequest request); + + @Post + GraphQLResponse executeSearchOrganization(@Body GraphQLSearchOrganizationRequest request); + + @Post + GraphQLResponse executeSetProjectLocation(@Body GraphQLSetProjectLocationRequest request); + + @Post + GraphQLResponse executeUpdateProjectAttachment(@Body GraphQLUpdateProjectAttachmentRequest request); + + @Post + GraphQLResponse executeUpdateProjectListing(@Body GraphQLUpdateProjectListingRequest request); + + @Post + GraphQLResponse executeUpdateProject(@Body GraphQLUpdateProjectRequest request); + + default GraphQLResponse addProjectAttachment(GraphQLAddProjectAttachmentVariables variables) { + String fixedQuery = "mutation ($projectId: ID!, $attachmentId: ID!) {\n addProjectAttachment(projectId: $projectId, attachmentId: $attachmentId) {\n attachmentId\n }\n }"; + GraphQLAddProjectAttachmentRequest request = new GraphQLAddProjectAttachmentRequest(); + request.setQuery(fixedQuery); + request.setVariables(variables); + return this.executeAddProjectAttachment(request); + } + + default GraphQLResponse addProjectOrganization(GraphQLAddProjectOrganizationVariables variables) { + String fixedQuery = "mutation addProjectOrganization($organizationId: ID!, $projectId: ID!) {\n addProjectOrganization(organizationId: $organizationId, projectId: $projectId) {\n id\n organizations {\n id\n name\n }\n }\n }"; + GraphQLAddProjectOrganizationRequest request = new GraphQLAddProjectOrganizationRequest(); + request.setQuery(fixedQuery); + request.setVariables(variables); + return this.executeAddProjectOrganization(request); + } + + default GraphQLResponse combinedMutationUpdateProjectAddProjectTag(GraphQLCombinedMutationUpdateProjectAddProjectTagVariables variables) { + String fixedQuery = "mutation combinedMutation($projectId: ID!, $modify: UpdateProjectInput!) {\n updateProject(\n id: $projectId,\n modify: $modify\n ) {\n id\n wheelchairAccessible\n itemDonations\n indoors\n longDescription\n shortDescription\n sponsorUserId\n groupProjects\n }\n\n skill0: addProjectTag(\n projectId: $projectId\n tagId: 31\n ) {\n id\n tags {\n id\n tagType\n tagTypeId\n translations(languageId: 1) {\n description\n label\n languageId\n }\n }\n }\nskill1: addProjectTag(\n projectId: $projectId\n tagId: 46\n ) {\n id\n tags {\n id\n tagType\n tagTypeId\n translations(languageId: 1) {\n description\n label\n languageId\n }\n }\n }\n\n interest0: addProjectTag(\n projectId: $projectId\n tagId: 11\n ) {\n id\n tags {\n id\n tagType\n tagTypeId\n translations(languageId: 1) {\n description\n label\n languageId\n }\n }\n }\ninterest1: addProjectTag(\n projectId: $projectId\n tagId: 26\n ) {\n id\n tags {\n id\n tagType\n tagTypeId\n translations(languageId: 1) {\n description\n label\n languageId\n }\n }\n }\n }"; + GraphQLCombinedMutationUpdateProjectAddProjectTagRequest request = new GraphQLCombinedMutationUpdateProjectAddProjectTagRequest(); + request.setQuery(fixedQuery); + request.setVariables(variables); + return this.executeCombinedMutationUpdateProjectAddProjectTag(request); + } + + default GraphQLResponse createProject(GraphQLCreateProjectVariables variables) { + String fixedQuery = "mutation createProject($title: String!, $eventType: ProjectType!, $locationType: ProjectLocationType!, $redirect: String) {\n createProject(\n title: $title\n eventType: $eventType\n locationType: $locationType\n redirect: $redirect\n ) {\n id\n title\n typeId\n locationTypeId\n externalVolunteerUrl\n statusId\n }\n }"; + GraphQLCreateProjectRequest request = new GraphQLCreateProjectRequest(); + request.setQuery(fixedQuery); + request.setVariables(variables); + return this.executeCreateProject(request); + } + + default GraphQLResponse publishProject(GraphQLPublishProjectVariables variables) { + String fixedQuery = "mutation ($projectId: ID!){\n publishProject(projectId: $projectId) {\n id\n statusId\n }\n }"; + GraphQLPublishProjectRequest request = new GraphQLPublishProjectRequest(); + request.setQuery(fixedQuery); + request.setVariables(variables); + return this.executePublishProject(request); + } + + default GraphQLResponse searchOrganization(GraphQLSearchOrganizationVariables variables) { + String fixedQuery = "\n query organization(\n $searchTerm: String!\n $includeAll: Boolean\n $activeOnly: Boolean\n ) {\n adminOrganizationSearchByTitle(\n activeOnly: $activeOnly\n includeAll: $includeAll\n title: $searchTerm\n ) {\n id\n name\n logo\n description\n contactName\n contactPhone\n contactEmail\n url\n location {\n displayCity\n displayState\n }\n }\n }\n "; + GraphQLSearchOrganizationRequest request = new GraphQLSearchOrganizationRequest(); + request.setQuery(fixedQuery); + request.setVariables(variables); + return this.executeSearchOrganization(request); + } + + default GraphQLResponse setProjectLocation(GraphQLSetProjectLocationVariables variables) { + String fixedQuery = "mutation setProjectLocation($projectId: ID!, $location: String, $locationData: LocationDataInput) {\n setProjectLocation(\n projectId: $projectId\n location: $location\n locationData: $locationData\n ) {\n displayAddress\n displayAddress2\n displayCity\n displayCountry\n displayCountryCode\n displayCounty\n displayNeighborhood\n displayPostalCode\n displayState\n id\n latitude\n locationDetails\n locationName\n longitude\n maxLatitude\n maxLongitude\n minLatitude\n minLongitude\n timezone\n civicGeography {\n state {\n code\n }\n }\n churchGeography {\n areaUnitId\n ccUnitId\n missionUnitId\n stakeUnitId\n }\n }\n }"; + GraphQLSetProjectLocationRequest request = new GraphQLSetProjectLocationRequest(); + request.setQuery(fixedQuery); + request.setVariables(variables); + return this.executeSetProjectLocation(request); + } + + default GraphQLResponse updateProjectAttachment(GraphQLUpdateProjectAttachmentVariables variables) { + String fixedQuery = "mutation ($attachmentId: ID!, $title: String!, $description: String!) {\n updateProjectAttachment(attachmentId: $attachmentId, title: $title, description: $description) {\n attachmentId\n }\n }"; + GraphQLUpdateProjectAttachmentRequest request = new GraphQLUpdateProjectAttachmentRequest(); + request.setQuery(fixedQuery); + request.setVariables(variables); + return this.executeUpdateProjectAttachment(request); + } + + default GraphQLResponse updateProjectListing(GraphQLUpdateProjectListingVariables variables) { + String fixedQuery = "mutation listing ($projectId: ID!, $unlisted: Boolean!) {\n updateProjectListing(projectId: $projectId, unlisted: $unlisted) {\n id\n unlisted\n }\n }"; + GraphQLUpdateProjectListingRequest request = new GraphQLUpdateProjectListingRequest(); + request.setQuery(fixedQuery); + request.setVariables(variables); + return this.executeUpdateProjectListing(request); + } + + default GraphQLResponse updateProject(GraphQLUpdateProjectVariables variables) { + String mutationFormat = "mutation ($projectId: ID!, $logo: String!) {\n updateProject(id: $projectId, modify: { logo: $logo }) {\n %s\n }\n }"; + + List responseFields = new ArrayList<>(); + responseFields.add("id"); + + if (variables.getLogo() != null) { + responseFields.add("logo"); + } + + String fieldsString = String.join("\n", responseFields); + String dynamicQuery = String.format(mutationFormat, fieldsString); + + GraphQLUpdateProjectRequest request = new GraphQLUpdateProjectRequest(); + request.setQuery(dynamicQuery); + request.setVariables(variables); + return this.executeUpdateProject(request); + } +} diff --git a/core/src/main/java/org/justserve/client/GraphQLErrorClientFilter.java b/core/src/main/java/org/justserve/client/GraphQLErrorClientFilter.java new file mode 100644 index 0000000..d45138e --- /dev/null +++ b/core/src/main/java/org/justserve/client/GraphQLErrorClientFilter.java @@ -0,0 +1,46 @@ +package org.justserve.client; + +import io.micronaut.http.HttpResponse; +import io.micronaut.http.MutableHttpRequest; +import io.micronaut.http.annotation.Filter; +import io.micronaut.http.client.exceptions.HttpClientResponseException; +import io.micronaut.http.filter.ClientFilterChain; +import io.micronaut.http.filter.HttpClientFilter; +import lombok.extern.slf4j.Slf4j; +import org.reactivestreams.Publisher; +import reactor.core.publisher.Mono; + +import java.util.Map; +import java.util.Optional; + +/** + * GraphQL calls return 200 even if errors occur. This filter marks the response as a failure and maps the server's + * error message to an{@link HttpClientResponseException}. This does not change the status code. + * + * @author jonathan zollinger + * @since 0.1.0 + */ +@Filter("/**/graphql") +@Slf4j +public class GraphQLErrorClientFilter implements HttpClientFilter { + + @Override + public Publisher> doFilter(MutableHttpRequest request, ClientFilterChain chain) { + + return Mono.from(chain.proceed(request)).map(response -> { + Optional bodyOpt = response.getBody(Map.class); + + if (bodyOpt.isPresent()) { + Map body = bodyOpt.get(); + String err = "errors"; + if (body.containsKey(err) && body.get(err) != null) { + Object errors = body.get(err); + String errorMessage = "GraphQL returned errors: " + errors.toString(); + throw new HttpClientResponseException(errorMessage, response); + } + log.debug("GraphQL request contains no errors"); + } + return response; + }); + } +} \ No newline at end of file diff --git a/core/src/main/java/org/justserve/model/CivicGeography.java b/core/src/main/java/org/justserve/model/CivicGeography.java new file mode 100644 index 0000000..ca41cc1 --- /dev/null +++ b/core/src/main/java/org/justserve/model/CivicGeography.java @@ -0,0 +1,17 @@ +package org.justserve.model; + +import io.micronaut.core.annotation.Introspected; +import io.micronaut.serde.annotation.Serdeable; +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * This class is currently a placeholder for a future work. + * This class does nothing. + */ +@Data +@Accessors(chain = true) +@Serdeable +@Introspected +public class CivicGeography { +} diff --git a/core/src/main/java/org/justserve/model/EventType.java b/core/src/main/java/org/justserve/model/EventType.java new file mode 100644 index 0000000..9cfae0e --- /dev/null +++ b/core/src/main/java/org/justserve/model/EventType.java @@ -0,0 +1,88 @@ +package org.justserve.model; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; +import io.micronaut.serde.annotation.Serdeable; +import lombok.Generated; +import lombok.RequiredArgsConstructor; + +import java.util.Arrays; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + * Defines the scheduling model for a JustServe project, determining how its + * {@link ProjectEvent}s are structured and displayed. + * + * @author Jonathan Zollinger + * @since 0.1.0 + */ +@RequiredArgsConstructor +@Serdeable +public enum EventType { + /** + *

    Date, Time, and Location

    + * A standard event that occurs at a specific time and place. + */ + DTL(1, "DTL"), + + /** + *

    Ongoing

    + * An event with no specific time. The start and end dates determine visibility on JustServe + */ + Ongoing(2, "ONGOING"), + + /** + *

    Recurring

    + * An event that repeats on a regular schedule, such as weekly or monthly. + *

    Example: An evening opportunity that occurs every Monday, Wednesday, + * and Friday for three months. + */ + Recurring(3, "RECURRING"), + + /** + *

    Multiple Date, Time, and Location

    + * A complex event that has multiple, distinct shifts or occurrences. + *

    Example: A project with multiple shifts on each Saturday for several weeks. + */ + MultipleDTL(4, "MULTIPLE_DTL"); + + public static final Map VALUE_MAPPING = Map.copyOf(Arrays.stream(values()) + .collect(Collectors.toMap(v -> v.intValue, Function.identity()))); + + private final Integer intValue; + private final String stringValue; + + @Override + public String toString() { + return String.valueOf(intValue); + } + + @JsonValue + public String getStringValue() { + return stringValue; + } + + /** + * Parses the incoming value to either the string or integer value, whichever the server is using. + * + * @param value the incoming value from the server + * @return the event type that matches the incoming value + */ + @Generated //manually placed annotation to tell jacoco coverage report to ignore this + @JsonCreator + public static EventType fromValue(Object value) { + if (value instanceof Number) { + int intVal = ((Number) value).intValue(); + for (EventType type : values()) { + if (type.intValue == intVal) return type; + } + } else if (value instanceof String strVal) { + for (EventType type : values()) { + if (type.stringValue.equalsIgnoreCase(strVal)) return type; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "' for EventType"); + } +} diff --git a/core/src/main/java/org/justserve/model/ProjectEvent.java b/core/src/main/java/org/justserve/model/ProjectEvent.java new file mode 100644 index 0000000..d39eed6 --- /dev/null +++ b/core/src/main/java/org/justserve/model/ProjectEvent.java @@ -0,0 +1,293 @@ +package org.justserve.model; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.micronaut.core.annotation.Introspected; +import io.micronaut.core.annotation.NonNull; +import io.micronaut.core.annotation.Nullable; +import io.micronaut.serde.annotation.Serdeable; +import jakarta.validation.constraints.Email; +import jakarta.validation.constraints.Size; +import lombok.*; +import lombok.experimental.Accessors; +import org.justserve.model.graph.CreateEventMutation; +import org.justserve.model.graph.GraphFields; + +import java.util.Date; +import java.util.List; +import java.util.UUID; + +import static java.lang.Boolean.TRUE; + +/** + *

    JustServe Project Event

    + * Valid to use with + *
    • {@link EventType#Ongoing} + *
    • {@link EventType#DTL} + *
    • {@link EventType#MultipleDTL}
    + * (Not valid to use with{@link EventType#Recurring} events + * + *

    Creating New Events

    + * Use {@code ProjectEvent.}{@link #builder()} when adding a new event to ensure all + * needed fields are included. This not only checks for required fields, but double checks + * contradictions or invalid combinations are being submitted. + *
    Example
    + *
    {@code
    + * ProjectEvent newEvent = ProjectEvent.builder()
    + *     .start(startDate)
    + *     .end(endDate)
    + *     .shiftTitle("Morning Shift")
    + *     .build();
    + * }
    + * + *

    Updating Existing Events

    + * Use {@code new ProjectEvent()} (without the builder) when updating an event. This + * skips the builder's checks and lets you send partial updates to existing events. + *
    Example
    + *
    {@code
    + * ProjectEvent partialUpdate = new ProjectEvent()
    + *     .setShiftTitle("Afternoon Shift");
    + * }
    + * + * @author Jonathan Zollinger + * @since 0.1.0 + */ +@EqualsAndHashCode(callSuper = true) +@Data +@Accessors(chain = true) +@NoArgsConstructor +@AllArgsConstructor +@Builder(buildMethodName = "buildInternal") +@Serdeable +@Introspected +public class ProjectEvent extends GraphFields { + @Nullable + @Email + private String contactEmail; + + @Nullable + @Size(max = 139) + private String contactName; + + @Nullable + private String contactPhone; + + /** + *

    Whether the project event has been deleted.

    + * Not Usable In: + *
      + *
    • {@link CreateEventMutation}
    • + *
    + */ + @Nullable + private Boolean deleted; + + /** + *

    The user who deleted the project event.

    + * See{@link #deletedByNavigation}
    + * Not Usable In: + *
      + *
    • {@link CreateEventMutation}
    • + *
    + */ + @Nullable + private UUID deletedBy; + + /** + *

    User who deleted the event.

    + * See{@link #deletedBy}
    + * Not Usable In: + *
      + *
    • {@link CreateEventMutation}
    • + *
    + */ + @Nullable + private User deletedByNavigation; + + /** + *

    The date and time the project event was deleted.

    + * Not Usable In: + *
      + *
    • {@link CreateEventMutation}
    • + *
    + */ + @Nullable + @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", timezone = "UTC") + private Date deletedOn; + + @Nullable + @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", timezone = "UTC") + private Date end; + + /** + *

    The end date and time of the event with timezone offset.

    + * Not Usable In: + *
      + *
    • {@link CreateEventMutation}
    • + *
    + */ + @Nullable + @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", timezone = "UTC") + private Date endDateTimeOffset; + + /** + *

    Indicates if the event capacity has been reached.

    + * Not Usable In: + *
      + *
    • {@link CreateEventMutation}
    • + *
    + */ + @Nullable + private Boolean eventCapReached; + + /** + * Whether a group cap is set for this event. + */ + @NonNull + @Builder.Default + private Boolean groupCap = false; + + /** + * The max number of people which can sign up by one person + */ + @Nullable + private Integer groupLimit; + + /** + *

    The unique identifier for the project event.

    + * Not Usable In: + *
      + *
    • {@link CreateEventMutation}
    • + *
    + */ + @Nullable + private UUID id; + + @Nullable + private String locationLink; + + @Nullable + @Size(max = 139) + private String locationName; + + /** + *

    The project this event belongs to.

    + * Not Usable In: + *
      + *
    • {@link CreateEventMutation}
    • + *
    + */ + @Nullable + private Project project; + + /** + *

    The location of the project event.

    + * Not Usable In: + *
      + *
    • {@link CreateEventMutation}
    • + *
    + */ + @Nullable + private ProjectEventLocation projectEventLocation; + + /** + *

    The ID of the project event location.

    + * Not Usable In: + *
      + *
    • {@link CreateEventMutation}
    • + *
    + */ + @Nullable + private UUID projectEventLocationId; + + /** + *

    The regions associated with the project event.

    + * Not Usable In: + *
      + *
    • {@link CreateEventMutation}
    • + *
    + */ + @Nullable + private List projectEventRegions; + + /** + *

    The ID of the project this event belongs to.

    + * Not Usable In: + *
      + *
    • {@link CreateEventMutation}
    • + *
    + */ + @Nullable + private UUID projectId; + + /** + *

    Information about the recurring schedule of the project event.

    + * Not Usable In: + *
      + *
    • {@link CreateEventMutation}
    • + *
    + */ + @Nullable + private ProjectRecurringTime projectRecurringTime; + + @Nullable + private String qrCodeImageLocation; + + /** + *

    The date the event is set to renew.

    + * Only Usable In: + *
      + *
    • {@link EventType#MultipleDTL}
    • + *
    + */ + @Nullable + @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", timezone = "UTC") + private Date renewDate; + + @Nullable + @Size(max = 300) + private String schedule; + + @Nullable + @Size(max = 300) + private String shiftTitle; + + @Nullable + private String specialDirections; + + @Nullable + @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", timezone = "UTC") + private Date start; + + @Nullable + private ProjectEventStatus status; + + @Nullable + private TimeZone timezone; + + @Nullable + private Integer totalVolunteersNeeded; + + /** + * whether a volunteer cap is set for this event. + */ + @Nullable + private Boolean volunteerCap; + + public static class ProjectEventBuilder { + public ProjectEvent build() { + ProjectEvent event = this.buildInternal(); + + if (event.getEnd() == null || event.getStart() == null) { + throw new IllegalStateException("Events created with the builder must have a start and end date"); + } + if ((TRUE.equals(event.getGroupCap()) && event.getGroupLimit() == null)) { + throw new IllegalStateException("groupLimit cannot be null when groupCap is true"); + } + if (TRUE.equals(event.getVolunteerCap()) && event.getTotalVolunteersNeeded() == null) { + throw new IllegalStateException("totalVolunteersNeeded cannot be null when volunteerCap is true"); + } + + return event; + } + } +} diff --git a/core/src/main/java/org/justserve/model/ProjectEventLocation.java b/core/src/main/java/org/justserve/model/ProjectEventLocation.java new file mode 100644 index 0000000..2b10965 --- /dev/null +++ b/core/src/main/java/org/justserve/model/ProjectEventLocation.java @@ -0,0 +1,17 @@ +package org.justserve.model; + +import io.micronaut.core.annotation.Introspected; +import io.micronaut.serde.annotation.Serdeable; +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * This class is currently a placeholder for a future work. + * This class does nothing. + */ +@Data +@Accessors(chain = true) +@Serdeable +@Introspected +public class ProjectEventLocation { +} diff --git a/core/src/main/java/org/justserve/model/ProjectEventStatus.java b/core/src/main/java/org/justserve/model/ProjectEventStatus.java new file mode 100644 index 0000000..aaed8aa --- /dev/null +++ b/core/src/main/java/org/justserve/model/ProjectEventStatus.java @@ -0,0 +1,64 @@ +package org.justserve.model; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; +import io.micronaut.serde.annotation.Serdeable; +import lombok.Generated; +import lombok.RequiredArgsConstructor; + +import java.util.Arrays; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + *

    Supported Project Event Status

    + *

    + * Project Status available to project events + * Use {@link ProjectStatus} + */ +@RequiredArgsConstructor +@Serdeable +public enum ProjectEventStatus { + ACTIVE(1, "ACTIVE"), + CANCELLED(2, "CANCELLED"), + ON_HOLD(3, "ON_HOLD"); + + public static final Map VALUE_MAPPING = Map.copyOf(Arrays.stream(values()) + .collect(Collectors.toMap(v -> v.intValue, Function.identity()))); + + private final Integer intValue; + private final String stringValue; + + @Override + public String toString() { + return String.valueOf(intValue); + } + + @JsonValue + public String getStringValue() { + return stringValue; + } + + /** + * Parses the incoming value to either the string or integer value, whichever the server is using. + * + * @param value the incoming value from the server + * @return the event type that matches the incoming value + */ + @Generated //manually placed annotation to tell jacoco coverage report to ignore this + @JsonCreator + public static ProjectEventStatus fromValue(Object value) { + if (value instanceof Number) { + int intVal = ((Number) value).intValue(); + for (ProjectEventStatus type : values()) { + if (type.intValue == intVal) return type; + } + } else if (value instanceof String strVal) { + for (ProjectEventStatus type : values()) { + if (type.stringValue.equalsIgnoreCase(strVal)) return type; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "' for ProjectEventStatus"); + } +} diff --git a/core/src/main/java/org/justserve/model/ProjectLocationType.java b/core/src/main/java/org/justserve/model/ProjectLocationType.java new file mode 100644 index 0000000..35bcf4d --- /dev/null +++ b/core/src/main/java/org/justserve/model/ProjectLocationType.java @@ -0,0 +1,62 @@ +package org.justserve.model; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; +import io.micronaut.serde.annotation.Serdeable; +import lombok.Generated; +import lombok.RequiredArgsConstructor; + +import java.util.Arrays; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + *

    Supported Location Types for Projects

    + * + */ +@RequiredArgsConstructor +@Serdeable +public enum ProjectLocationType { + SINGLE_LOCATION(1, "SINGLE_LOCATION"), + REGIONAL(3, "REGIONAL"), + REMOTE(4, "REMOTE"); + + public static final Map VALUE_MAPPING = Map.copyOf(Arrays.stream(values()) + .collect(Collectors.toMap(v -> v.intValue, Function.identity()))); + + private final Integer intValue; + private final String stringValue; + + @Override + public String toString() { + return String.valueOf(intValue); + } + + @JsonValue + public String getStringValue() { + return stringValue; + } + + /** + * Parses the incoming value to either the string or integer value, whichever the server is using. + * + * @param value the incoming value from the server + * @return the event type that matches the incoming value + */ + @Generated //manually placed annotation to tell jacoco coverage report to ignore this + @JsonCreator + public static ProjectLocationType fromValue(Object value) { + if (value instanceof Number) { + int intVal = ((Number) value).intValue(); + for (ProjectLocationType type : values()) { + if (type.intValue == intVal) return type; + } + } else if (value instanceof String strVal) { + for (ProjectLocationType type : values()) { + if (type.stringValue.equalsIgnoreCase(strVal)) return type; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "' for ProjectLocationType"); + } +} diff --git a/core/src/main/java/org/justserve/model/ProjectRecurringTime.java b/core/src/main/java/org/justserve/model/ProjectRecurringTime.java new file mode 100644 index 0000000..3d5782e --- /dev/null +++ b/core/src/main/java/org/justserve/model/ProjectRecurringTime.java @@ -0,0 +1,144 @@ +package org.justserve.model; + +import io.micronaut.core.annotation.Introspected; +import io.micronaut.core.annotation.Nullable; +import io.micronaut.serde.annotation.Serdeable; +import jakarta.validation.constraints.Email; +import jakarta.validation.constraints.Size; +import lombok.*; +import lombok.experimental.Accessors; +import org.justserve.model.graph.GraphFields; + +import java.util.List; +import java.util.UUID; + +import static java.lang.Boolean.TRUE; + +/** + *

    JustServe Project Recurring Time

    + * Valid to use with + *
      + *
    • {@link EventType#Recurring}
    • + *
    + * + *

    Creating New Recurring Events

    + * Use {@code ProjectRecurringTime.}{@link #builder()} when adding a new recurring event to ensure all + * needed fields are included and validated. + * + * @author Jonathan Zollinger + * @since 0.1.0 + */ +@EqualsAndHashCode(callSuper = true) +@Data +@Accessors(chain = true) +@NoArgsConstructor +@AllArgsConstructor +@Builder(buildMethodName = "buildInternal") +@Serdeable +@Introspected +public class ProjectRecurringTime extends GraphFields { + + @Nullable + @Email + private String contactEmail; + + @Nullable + @Size(max = 139) + private String contactName; + + @Nullable + private String contactPhone; + + @Nullable + private String startTime; + + @Nullable + private String endTime; + + @Builder.Default + private Boolean firstWeek = false; + + @Builder.Default + private Boolean secondWeek = false; + + @Builder.Default + private Boolean thirdWeek = false; + + @Builder.Default + private Boolean fourthWeek = false; + + @Builder.Default + private Boolean fifthWeek = false; + + @Builder.Default + private Boolean lastWeek = false; + + @Nullable + private Integer groupLimit; + + + @Nullable + private UUID id; + + @Nullable + private RecurringType recurringType; + + @Nullable + private List daysOfMonth; + + /** + *

    The days of the months a recurring event lands on.

    + * For example, a monthly recurring event landing on the 16th of the month: + * + */ + @Nullable + private List recurringDaysOfMonths; + + @Nullable + private UUID projectRecurringId; + + @Nullable + private String specialDirections; + + @Builder.Default + private Boolean volunteersCapped = false; + + @Nullable + private Integer totalVolunteersNeeded; + + @Nullable + private Integer volunteersNeeded; + + @Builder.Default + private Boolean monday = false; + + @Builder.Default + private Boolean tuesday = false; + + @Builder.Default + private Boolean wednesday = false; + + @Builder.Default + private Boolean thursday = false; + + @Builder.Default + private Boolean friday = false; + + @Builder.Default + private Boolean saturday = false; + + @Builder.Default + private Boolean sunday = false; + + + public static class ProjectRecurringTimeBuilder { + public ProjectRecurringTime build() { + ProjectRecurringTime event = this.buildInternal(); + if (TRUE.equals(event.getVolunteersCapped()) && event.getVolunteersNeeded() == null) { + throw new IllegalStateException("volunteersNeeded cannot be null when volunteersCapped is true"); + } + + return event; + } + } +} diff --git a/core/src/main/java/org/justserve/model/ProjectStatus.java b/core/src/main/java/org/justserve/model/ProjectStatus.java new file mode 100644 index 0000000..f4466ee --- /dev/null +++ b/core/src/main/java/org/justserve/model/ProjectStatus.java @@ -0,0 +1,70 @@ +package org.justserve.model; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; +import io.micronaut.serde.annotation.Serdeable; +import lombok.Generated; +import lombok.RequiredArgsConstructor; + +import java.util.Arrays; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + *

    Status for a project.

    + * + * Use{@link ProjectEventStatus} when creating a project events. + * + * @author Jonathan Zollinger + * @since 0.1.0 + */ +@RequiredArgsConstructor +@Serdeable +public enum ProjectStatus { + PUBLISHED(1, "PUBLISHED"), + SUBMITTED(2, "SUBMITTED"), + DRAFT(3, "DRAFT"), + TEMPLATE(4, "TEMPLATE"), + ON_HOLD(5, "ON_HOLD"), + CANCELLED(6, "CANCELLED"), + DECLINED(7, "DECLINED"); + + public static final Map VALUE_MAPPING = Map.copyOf(Arrays.stream(values()) + .collect(Collectors.toMap(v -> v.intValue, Function.identity()))); + + private final Integer intValue; + private final String stringValue; + + @Override + public String toString() { + return String.valueOf(intValue); + } + + @JsonValue + public String getStringValue() { + return stringValue; + } + + /** + * Parses the incoming value to either the string or integer value, whichever the server is using. + * + * @param value the incoming value from the server + * @return the event type that matches the incoming value + */ + @Generated //manually placed annotation to tell jacoco coverage report to ignore this + @JsonCreator + public static ProjectStatus fromValue(Object value) { + if (value instanceof Number) { + int intVal = ((Number) value).intValue(); + for (ProjectStatus type : values()) { + if (type.intValue == intVal) return type; + } + } else if (value instanceof String strVal) { + for (ProjectStatus type : values()) { + if (type.stringValue.equalsIgnoreCase(strVal)) return type; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "' for ProjectStatus"); + } +} diff --git a/core/src/main/java/org/justserve/model/RecurringType.java b/core/src/main/java/org/justserve/model/RecurringType.java new file mode 100644 index 0000000..5fc1e80 --- /dev/null +++ b/core/src/main/java/org/justserve/model/RecurringType.java @@ -0,0 +1,17 @@ +package org.justserve.model; + +import io.micronaut.core.annotation.Introspected; +import io.micronaut.serde.annotation.Serdeable; + +/** + * JustServe Project Recurring Type. + * + * @author Jonathan Zollinger + * @since 0.1.0 + */ +@Serdeable +@Introspected +public enum RecurringType { + WEEKLY, + MONTHLY +} diff --git a/core/src/main/java/org/justserve/model/TimeZone.java b/core/src/main/java/org/justserve/model/TimeZone.java new file mode 100644 index 0000000..33f95d4 --- /dev/null +++ b/core/src/main/java/org/justserve/model/TimeZone.java @@ -0,0 +1,214 @@ +package org.justserve.model; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; +import io.micronaut.serde.annotation.Serdeable; +import lombok.Generated; +import lombok.RequiredArgsConstructor; + +import java.util.Arrays; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + *

    TimeZones supported in JustServe

    + *
      + *
    • The queryValue field reflects the options in the UI (and what is sent to the server).
    • + *
    • The ResponseValue is the String which is returned from the server
    • + *
    + * + * @author Jonathan Zollinger + * @since 0.1.0 + */ +@RequiredArgsConstructor +@Serdeable +public enum TimeZone { + INTERNATIONAL_DATE_LINE_WEST(1, "(UTC-12:00) International Date Line West", "Dateline Standard Time"), + COORDINATED_UNIVERSAL_TIME_11(2, "(UTC-11:00) Coordinated Universal Time-11", "UTC-11"), + ALEUTIAN_ISLANDS(3, "(UTC-10:00) Aleutian Islands", "Aleutian Standard Time"), + HAWAII(4, "(UTC-10:00) Hawaii", "Hawaiian Standard Time"), + MARQUESAS_ISLANDS(5, "(UTC-09:30) Marquesas Islands", "Marquesas Standard Time"), + ALASKA(6, "(UTC-09:00) Alaska", "Alaskan Standard Time"), + COORDINATED_UNIVERSAL_TIME_09(7, "(UTC-09:00) Coordinated Universal Time-09", "UTC-09"), + BAJA_CALIFORNIA(8, "(UTC-08:00) Baja California", "Pacific Standard Time (Mexico)"), + COORDINATED_UNIVERSAL_TIME_08(9, "(UTC-08:00) Coordinated Universal Time-08", "UTC-08"), + PACIFIC_TIME_US_AND_CANADA(10, "(UTC-08:00) Pacific Time (US & Canada)", "Pacific Standard Time"), + ARIZONA(11, "(UTC-07:00) Arizona", "US Mountain Standard Time"), + LA_PAZ(12, "(UTC-07:00) La Paz", "Mountain Standard Time (Mexico)"), + MOUNTAIN_TIME_US_AND_CANADA(13, "(UTC-07:00) Mountain Time (US & Canada)", "Mountain Standard Time"), + YUKON(14, "(UTC-07:00) Yukon", "Yukon Standard Time"), + CENTRAL_AMERICA(15, "(UTC-06:00) Central America", "Central America Standard Time"), + CENTRAL_TIME_US_AND_CANADA(16, "(UTC-06:00) Central Time (US & Canada)", "Central Standard Time"), + EASTER_ISLAND(17, "(UTC-06:00) Easter Island", "Easter Island Standard Time"), + GUADALAJARA(18, "(UTC-06:00) Guadalajara", "Central Standard Time (Mexico)"), + SASKATCHEWAN(19, "(UTC-06:00) Saskatchewan", "Canada Central Standard Time"), + BOGOTA(20, "(UTC-05:00) Bogota", "SA Pacific Standard Time"), + CHETUMAL(21, "(UTC-05:00) Chetumal", "Eastern Standard Time (Mexico)"), + EASTERN_TIME_US_AND_CANADA(22, "(UTC-05:00) Eastern Time (US & Canada)", "Eastern Standard Time"), + HAITI(23, "(UTC-05:00) Haiti", "Haiti Standard Time"), + HAVANA(24, "(UTC-05:00) Havana", "Cuba Standard Time"), + INDIANA_EAST(25, "(UTC-05:00) Indiana (East)", "US Eastern Standard Time"), + TURKS_AND_CAICOS(26, "(UTC-05:00) Turks and Caicos", "Turks And Caicos Standard Time"), + ASUNCION(27, "(UTC-04:00) Asuncion", "Paraguay Standard Time"), + ATLANTIC_TIME_CANADA(28, "(UTC-04:00) Atlantic Time (Canada)", "Atlantic Standard Time"), + CARACAS(29, "Caracas", "Venezuela Standard Time"), + CUIABA(30, "(UTC-04:00) Cuiaba", "Central Brazilian Standard Time"), + GEORGETOWN(31, "(UTC-04:00) Georgetown", "SA Western Standard Time"), + SANTIAGO(32, "(UTC-04:00) Santiago", "Pacific SA Standard Time"), + NEWFOUNDLAND(33, "(UTC-03:30) Newfoundland", "Newfoundland Standard Time"), + ARAGUAINA(34, "(UTC-03:00) Araguaina", "Tocantins Standard Time"), + BRASILIA(35, "(UTC-03:00) Brasilia", "E. South America Standard Time"), + CAYENNE(36, "(UTC-03:00) Cayenne", "SA Eastern Standard Time"), + CITY_OF_BUENOS_AIRES(37, "(UTC-03:00) City of Buenos Aires", "Argentina Standard Time"), + MONTEVIDEO(38, "(UTC-03:00) Montevideo", "Montevideo Standard Time"), + PUNTA_ARENAS(39, "(UTC-03:00) Punta Arenas", "Magallanes Standard Time"), + SAINT_PIERRE_AND_MIQUELON(40, "(UTC-03:00) Saint Pierre and Miquelon", "Saint Pierre Standard Time"), + SALVADOR(41, "(UTC-03:00) Salvador", "Bahia Standard Time"), + COORDINATED_UNIVERSAL_TIME_02(42, "(UTC-02:00) Coordinated Universal Time-02", "UTC-02"), + GREENLAND(43, "(UTC-02:00) Greenland", "Greenland Standard Time"), + MID_ATLANTIC_OLD(44, "(UTC-02:00) Mid-Atlantic - Old", "Mid-Atlantic Standard Time"), + AZORES(45, "(UTC-01:00) Azores", "Azores Standard Time"), + CABO_VERDE_IS(46, "(UTC-01:00) Cabo Verde Is.", "Cape Verde Standard Time"), + COORDINATED_UNIVERSAL_TIME(47, "(UTC) Coordinated Universal Time", "UTC"), + DUBLIN(48, "(UTC+00:00) Dublin", "GMT Standard Time"), + MONROVIA(49, "(UTC+00:00) Monrovia", "Greenwich Standard Time"), + SAO_TOME(50, "(UTC+00:00) Sao Tome", "Sao Tome Standard Time"), + CASABLANCA(51, "(UTC+01:00) Casablanca", "Morocco Standard Time"), + AMSTERDAM(52, "(UTC+01:00) Amsterdam", "W. Europe Standard Time"), + BELGRADE(53, "(UTC+01:00) Belgrade", "Central Europe Standard Time"), + BRUSSELS(54, "(UTC+01:00) Brussels", "Romance Standard Time"), + SARAJEVO(55, "(UTC+01:00) Sarajevo", "Central European Standard Time"), + WEST_CENTRAL_AFRICA(56, "(UTC+01:00) West Central Africa", "W. Central Africa Standard Time"), + ATHENS(57, "(UTC+02:00) Athens", "GTB Standard Time"), + BEIRUT(58, "(UTC+02:00) Beirut", "Middle East Standard Time"), + CAIRO(59, "(UTC+02:00) Cairo", "Egypt Standard Time"), + CHISINAU(60, "(UTC+02:00) Chisinau", "E. Europe Standard Time"), + GAZA(61, "(UTC+02:00) Gaza", "West Bank Standard Time"), + HARARE(62, "(UTC+02:00) Harare", "South Africa Standard Time"), + HELSINKI(63, "(UTC+02:00) Helsinki", "FLE Standard Time"), + JERUSALEM(64, "(UTC+02:00) Jerusalem", "Israel Standard Time"), + JUBA(65, "(UTC+02:00) Juba", "South Sudan Standard Time"), + KALININGRAD(66, "(UTC+02:00) Kaliningrad", "Kaliningrad Standard Time"), + KHARTOUM(67, "(UTC+02:00) Khartoum", "Sudan Standard Time"), + TRIPOLI(68, "(UTC+02:00) Tripoli", "Libya Standard Time"), + WINDHOEK(69, "(UTC+02:00) Windhoek", "Namibia Standard Time"), + AMMAN(70, "(UTC+03:00) Amman", "Jordan Standard Time"), + BAGHDAD(71, "(UTC+03:00) Baghdad", "Arabic Standard Time"), + DAMASCUS(72, "(UTC+03:00) Damascus", "Syria Standard Time"), + ISTANBUL(73, "(UTC+03:00) Istanbul", "Turkey Standard Time"), + KUWAIT(74, "(UTC+03:00) Kuwait", "Arab Standard Time"), + MINSK(75, "(UTC+03:00) Minsk", "Belarus Standard Time"), + MOSCOW(76, "(UTC+03:00) Moscow", "Russian Standard Time"), + NAIROBI(77, "(UTC+03:00) Nairobi", "E. Africa Standard Time"), + VOLGOGRAD(78, "(UTC+03:00) Volgograd", "Volgograd Standard Time"), + TEHRAN(79, "(UTC+03:30) Tehran", "Iran Standard Time"), + ABU_DHABI(80, "(UTC+04:00) Abu Dhabi", "Arabian Standard Time"), + ASTRAKHAN(81, "(UTC+04:00) Astrakhan", "Astrakhan Standard Time"), + BAKU(82, "(UTC+04:00) Baku", "Azerbaijan Standard Time"), + IZHEVSK(83, "(UTC+04:00) Izhevsk", "Russia Time Zone 3"), + PORT_LOUIS(84, "(UTC+04:00) Port Louis", "Mauritius Standard Time"), + SARATOV(85, "(UTC+04:00) Saratov", "Samara Time"), + TBILISI(86, "(UTC+04:00) Tbilisi", "Georgian Standard Time"), + YEREVAN(87, "(UTC+04:00) Yerevan", "Caucasus Standard Time"), + KABUL(88, "(UTC+04:30) Kabul", "Afghanistan Standard Time"), + ASHGABAT(89, "(UTC+05:00) Ashgabat", "West Asia Standard Time"), + ASTANA(90, "(UTC+05:00) Astana", "Central Asia Standard Time"), + EKATERINBURG(91, "(UTC+05:00) Ekaterinburg", "Ekaterinburg Standard Time"), + ISLAMABAD(92, "(UTC+05:00) Islamabad", "Pakistan Standard Time"), + CHENNAI(93, "(UTC+05:30) Chennai", "India Standard Time"), + SRI_JAYAWARDENEPURA(94, "(UTC+05:30) Sri Jayawardenepura", "Sri Lanka Standard Time"), + KATHMANDU(95, "(UTC+05:45) Kathmandu", "Nepal Standard Time"), + BISHKEK(96, "(UTC+06:00) Bishkek", "Central Asia Standard Time"), + DHAKA(97, "(UTC+06:00) Dhaka", "Bangladesh Standard Time"), + OMSK(98, "(UTC+06:00) Omsk", "Omsk Standard Time"), + YANGON_RANGOON(99, "(UTC+06:30) Yangon (Rangoon)", "Myanmar Standard Time"), + BANGKOK(100, "(UTC+07:00) Bangkok", "SE Asia Standard Time"), + BARNAUL(101, "(UTC+07:00) Barnaul", "Altai Standard Time"), + HOVD(102, "(UTC+07:00) Hovd", "W. Mongolia Standard Time"), + KRASNOYARSK(103, "(UTC+07:00) Krasnoyarsk", "North Asia Standard Time"), + NOVOSIBIRSK(104, "(UTC+07:00) Novosibirsk", "N. Central Asia Standard Time"), + TOMSK(105, "(UTC+07:00) Tomsk", "Tomsk Standard Time"), + BEIJING(106, "(UTC+08:00) Beijing", "China Standard Time"), + IRKUTSK(107, "(UTC+08:00) Irkutsk", "North Asia East Standard Time"), + KUALA_LUMPUR(108, "(UTC+08:00) Kuala Lumpur", "Singapore Standard Time"), + PERTH(109, "(UTC+08:00) Perth", "W. Australia Standard Time"), + TAIPEI(110, "(UTC+08:00) Taipei", "Taipei Standard Time"), + ULAANBAATAR(111, "(UTC+08:00) Ulaanbaatar", "Ulaanbaatar Standard Time"), + EUCLA(112, "(UTC+08:45) Eucla", "Aus Central W. Standard Time"), + CHITA(113, "(UTC+09:00) Chita", "Transbaikal Standard Time"), + OSAKA(114, "(UTC+09:00) Osaka", "Tokyo Standard Time"), + PYONGYANG(115, "(UTC+09:00) Pyongyang", "North Korea Standard Time"), + SEOUL(116, "(UTC+09:00) Seoul", "Korea Standard Time"), + YAKUTSK(117, "(UTC+09:00) Yakutsk", "Yakutsk Standard Time"), + ADELAIDE(118, "(UTC+09:30) Adelaide", "Cen. Australia Standard Time"), + DARWIN(119, "(UTC+09:30) Darwin", "AUS Central Standard Time"), + BRISBANE(120, "(UTC+10:00) Brisbane", "E. Australia Standard Time"), + CANBERRA(121, "(UTC+10:00) Canberra", "AUS Eastern Standard Time"), + GUAM(122, "(UTC+10:00) Guam", "West Pacific Standard Time"), + HOBART(123, "(UTC+10:00) Hobart", "Tasmania Standard Time"), + VLADIVOSTOK(124, "(UTC+10:00) Vladivostok", "Vladivostok Standard Time"), + LORD_HOWE_ISLAND(125, "(UTC+10:30) Lord Howe Island", "Lord Howe Standard Time"), + BOUGAINVILLE_ISLAND(126, "(UTC+11:00) Bougainville Island", "Bougainville Standard Time"), + CHOKURDAKH(127, "(UTC+11:00) Chokurdakh", "Russia Time Zone 10"), + MAGADAN(128, "(UTC+11:00) Magadan", "Magadan Standard Time"), + NORFOLK_ISLAND(129, "(UTC+11:00) Norfolk Island", "Norfolk Standard Time"), + SAKHALIN(130, "(UTC+11:00) Sakhalin", "Sakhalin Standard Time"), + SOLOMON_IS(131, "(UTC+11:00) Solomon Is.", "Central Pacific Standard Time"), + ANADYR(132, "(UTC+12:00) Anadyr", "Russia Time Zone 11"), + AUCKLAND(133, "(UTC+12:00) Auckland", "New Zealand Standard Time"), + COORDINATED_UNIVERSAL_TIME_12(134, "(UTC+12:00) Coordinated Universal Time+12", "UTC+12"), + FIJI(135, "(UTC+12:00) Fiji", "Fiji Standard Time"), + PETROPAVLOVSK_KAMCHATSKY_OLD(136, "(UTC+12:00) Petropavlovsk-Kamchatsky - Old", "Kamchatka Standard Time"), + CHATHAM_ISLANDS(137, "(UTC+12:45) Chatham Islands", "Chatham Islands Standard Time"), + COORDINATED_UNIVERSAL_TIME_13(138, "(UTC+13:00) Coordinated Universal Time+13", "UTC+13"), + NUKU_ALOFA(139, "(UTC+13:00) Nuku'alofa", "Tonga Standard Time"), + SAMOA(140, "(UTC+13:00) Samoa", "Samoa Standard Time"), + KIRITIMATI_ISLAND(141, "(UTC+14:00) Kiritimati Island", "Line Islands Standard Time"); + + public static final Map VALUE_MAPPING = Map.copyOf(Arrays.stream(values()) + .collect(Collectors.toMap(v -> v.intValue, Function.identity()))); + + /** + * This integer value is used for sending + */ + private final Integer intValue; + /** + * This string value is what is used when sending this enum TO the server + */ + private final String queryValue; + /** + * This string value is what is used when receiving this enum FROM the server + */ + private final String responseValue; + + @Override + @JsonValue + public String toString() { + return queryValue; + } + + /** + * Parses the incoming value to either the one of the string or integer value, whichever the server is using. + * + * @param value the incoming value from the server + * @return the event type that matches the incoming value + */ + @Generated //manually placed annotation to tell jacoco coverage report to ignore this + @JsonCreator + public static TimeZone fromValue(Object value) { + if (value instanceof Number) { + int intVal = ((Number) value).intValue(); + for (TimeZone type : values()) { + if (type.intValue == intVal) return type; + } + } else if (value instanceof String strVal) { + for (TimeZone type : values()) { + if (type.queryValue.equalsIgnoreCase(strVal) || type.responseValue.equalsIgnoreCase(strVal)) { + return type; + } + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "' for TimeZone"); + } +} diff --git a/core/src/main/java/org/justserve/model/User.java b/core/src/main/java/org/justserve/model/User.java new file mode 100644 index 0000000..625d0b5 --- /dev/null +++ b/core/src/main/java/org/justserve/model/User.java @@ -0,0 +1,7 @@ +package org.justserve.model; + +import io.micronaut.serde.annotation.Serdeable; + +@Serdeable +public class User { +} diff --git a/core/src/main/java/org/justserve/model/graph/CreateEventMutation.java b/core/src/main/java/org/justserve/model/graph/CreateEventMutation.java new file mode 100644 index 0000000..563df3b --- /dev/null +++ b/core/src/main/java/org/justserve/model/graph/CreateEventMutation.java @@ -0,0 +1,41 @@ +package org.justserve.model.graph; + +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import io.micronaut.serde.annotation.Serdeable; + +/** + * Data Transfer Object for the {@code createEvent} GraphQL mutation. + * This class dynamically constructs the mutation query based on the non-null fields + * provided in the {@link CreateEventVariables}. + * + * @author Jonathan Zollinger + * @since 0.1.0 + */ +@Serdeable +@JsonPropertyOrder({"query", "variables"}) +public class CreateEventMutation extends GraphMutation { + + public CreateEventMutation(CreateEventVariables variables) { + this.query = """ + mutation createEvent($projectId: ID!, $projectEvent: UpdateProjectEventInput!) { + createEvent( + projectId: $projectId + projectEvent: $projectEvent + ) { + %s + } + } + """; + this.variables = variables; + } + + @Override + public CreateEventVariables getVariables() { + return (CreateEventVariables) super.getVariables(); + } + + @Override + public String getQuery() { + return String.format(query, getVariables().getProjectEvent().getMutationFields()); + } +} diff --git a/core/src/main/java/org/justserve/model/graph/CreateEventVariables.java b/core/src/main/java/org/justserve/model/graph/CreateEventVariables.java new file mode 100644 index 0000000..0c5ce9b --- /dev/null +++ b/core/src/main/java/org/justserve/model/graph/CreateEventVariables.java @@ -0,0 +1,28 @@ +package org.justserve.model.graph; + +import io.micronaut.serde.annotation.Serdeable; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; +import org.justserve.model.ProjectEvent; + +import java.util.UUID; + +/** + * Pojo to serialize the variables object passed with a createEvent mutation. + * + * @author Jonathan Zollinger + * @since 0.1.0 + */ +@EqualsAndHashCode(callSuper = true) +@Serdeable +@Data +@AllArgsConstructor +@NoArgsConstructor +@Accessors(chain = true) +public class CreateEventVariables extends GraphVariables { + private UUID projectId; + private ProjectEvent projectEvent; +} diff --git a/core/src/main/java/org/justserve/model/graph/CreateEventsData.java b/core/src/main/java/org/justserve/model/graph/CreateEventsData.java new file mode 100644 index 0000000..dac2b2e --- /dev/null +++ b/core/src/main/java/org/justserve/model/graph/CreateEventsData.java @@ -0,0 +1,43 @@ +package org.justserve.model.graph; + +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import io.micronaut.serde.annotation.Serdeable; +import lombok.Data; +import org.justserve.model.ProjectEvent; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * Parses the dynamic response from the createEvents GraphQL mutation. + * + * @author Jonathan Zollinger + * @since 0.1.0 + */ +@Serdeable +@Data +public class CreateEventsData { + + @JsonIgnore + private Map events = new HashMap<>(); + + @JsonAnySetter + public void addEvent(String key, ProjectEvent event) { + if (key != null && key.startsWith("event")) { + events.put(key, event); + } + } + + /** + * Helper to return all the dynamically parsed events as a single list. + * + * @return List of newly created events + */ + @JsonIgnore + public List getEventList() { + return new ArrayList<>(events.values()); + } +} diff --git a/core/src/main/java/org/justserve/model/graph/CreateEventsMutation.java b/core/src/main/java/org/justserve/model/graph/CreateEventsMutation.java new file mode 100644 index 0000000..e328834 --- /dev/null +++ b/core/src/main/java/org/justserve/model/graph/CreateEventsMutation.java @@ -0,0 +1,70 @@ +package org.justserve.model.graph; + +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import io.micronaut.serde.annotation.Serdeable; + +import java.util.List; +import java.util.stream.IntStream; + +/** + * Data Transfer Object for the {@code createEvents} GraphQL mutation. + * This class dynamically constructs the mutation query based on the + * events provided in the {@link CreateEventsVariables}. + * + * @author Jonathan Zollinger + * @since 0.1.0 + */ +@Serdeable +@JsonPropertyOrder({"query", "variables"}) +public class CreateEventsMutation extends GraphMutation { + + public CreateEventsMutation(CreateEventsVariables variables) { + if (variables.getProjectEvents().isEmpty()) { + throw new IllegalArgumentException("At least one event must be provided"); + } + this.query = buildQuery(variables); + this.variables = variables; + } + + private String buildQuery(CreateEventsVariables variables) { + StringBuilder args = new StringBuilder("$projectId: ID!"); + StringBuilder body = new StringBuilder(); + + List sortedKeys = variables.getProjectEvents().keySet().stream().sorted().toList(); + + IntStream.range(0, sortedKeys.size()).forEach(i -> { + String key = sortedKeys.get(i); + args.append(", $").append(key).append(": UpdateProjectEventInput!"); + body.append(String.format(""" + %s: createEvent( + projectId: $projectId + projectEvent: $%s + ) { + %%s + } + """, "event" + i, key)); + }); + + return String.format(""" + mutation createEvents(%s) { + %s} + """, args, body); + } + + @Override + public CreateEventsVariables getVariables() { + return (CreateEventsVariables) super.getVariables(); + } + + @Override + public String getQuery() { + CreateEventsVariables vars = getVariables(); + + List sortedKeys = vars.getProjectEvents().keySet().stream().sorted().toList(); + + Object[] fieldsArray = sortedKeys.stream().map(sortedKey -> vars.getProjectEvents().get(sortedKey) + .getMutationFields()).toArray(); + + return String.format(query, fieldsArray); + } +} diff --git a/core/src/main/java/org/justserve/model/graph/CreateEventsVariables.java b/core/src/main/java/org/justserve/model/graph/CreateEventsVariables.java new file mode 100644 index 0000000..d42c523 --- /dev/null +++ b/core/src/main/java/org/justserve/model/graph/CreateEventsVariables.java @@ -0,0 +1,46 @@ +package org.justserve.model.graph; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import io.micronaut.serde.annotation.Serdeable; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.NonNull; +import lombok.experimental.Accessors; +import org.justserve.model.ProjectEvent; + +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +/** + * Pojo to serialize the variables object passed with a createEvents mutation. + * + * @author Jonathan Zollinger + * @since 0.1.0 + */ +@EqualsAndHashCode(callSuper = true) +@Serdeable +@Data +@NoArgsConstructor +@Accessors(chain = true) +public class CreateEventsVariables extends GraphVariables { + + private UUID projectId; + + @JsonIgnore + private Map projectEvents = new HashMap<>(); + + public CreateEventsVariables(UUID projectId, @NonNull ProjectEvent... events) { + this.projectId = projectId; + for (int i = 0; i < events.length; i++) { + this.projectEvents.put("projectEvent" + i, events[i]); + } + } + + @JsonAnyGetter + public Map getProjectEvents() { + return projectEvents; + } +} diff --git a/core/src/main/java/org/justserve/model/graph/CreateRecurringEventsData.java b/core/src/main/java/org/justserve/model/graph/CreateRecurringEventsData.java new file mode 100644 index 0000000..41fd297 --- /dev/null +++ b/core/src/main/java/org/justserve/model/graph/CreateRecurringEventsData.java @@ -0,0 +1,43 @@ +package org.justserve.model.graph; + +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import io.micronaut.serde.annotation.Serdeable; +import lombok.Data; +import org.justserve.model.ProjectRecurringTime; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * Parses the dynamic response from the createRecurringEvents GraphQL mutation. + * + * @author Jonathan Zollinger + * @since 0.1.0 + */ +@Serdeable +@Data +public class CreateRecurringEventsData { + + @JsonIgnore + private Map events = new HashMap<>(); + + @JsonAnySetter + public void addEvent(String key, ProjectRecurringTime event) { + if (key != null && key.startsWith("event")) { + events.put(key, event); + } + } + + /** + * Helper to return all the dynamically parsed events as a single list. + * + * @return List of newly created recurring events + */ + @JsonIgnore + public List getEventList() { + return new ArrayList<>(events.values()); + } +} diff --git a/core/src/main/java/org/justserve/model/graph/CreateRecurringEventsMutation.java b/core/src/main/java/org/justserve/model/graph/CreateRecurringEventsMutation.java new file mode 100644 index 0000000..0c0127b --- /dev/null +++ b/core/src/main/java/org/justserve/model/graph/CreateRecurringEventsMutation.java @@ -0,0 +1,78 @@ +package org.justserve.model.graph; + +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import io.micronaut.serde.annotation.Serdeable; +import org.justserve.model.ProjectRecurringTime; + +import java.util.List; +import java.util.UUID; +import java.util.stream.IntStream; + +/** + * Data Transfer Object for the {@code createRecurringEvents} GraphQL mutation. + * This class dynamically constructs the mutation query based on the + * events provided in the {@link CreateRecurringEventsVariables}. + * + * @author Jonathan Zollinger + * @since 0.1.0 + */ +@Serdeable +@JsonPropertyOrder({"query", "variables"}) +public class CreateRecurringEventsMutation extends GraphMutation { + + public CreateRecurringEventsMutation(UUID projectId, ProjectRecurringTime... events) { + this(new CreateRecurringEventsVariables(projectId, events)); + } + + public CreateRecurringEventsMutation(CreateRecurringEventsVariables variables) { + if (variables.getProjectEvents() == null || variables.getProjectEvents().isEmpty()) { + throw new IllegalArgumentException("At least one event must be provided"); + } + this.query = buildQuery(variables); + this.variables = variables; + } + + private String buildQuery(CreateRecurringEventsVariables variables) { + StringBuilder args = new StringBuilder("$projectId: ID!"); + StringBuilder body = new StringBuilder(); + + List sortedKeys = variables.getProjectEvents().keySet().stream().sorted().toList(); + + String template = """ + %s: addRecurringTime( + projectId: $projectId + recurringTime: $%s + ) { + %%s + } + """; + + IntStream.range(0, sortedKeys.size()).forEach(i -> { + String key = sortedKeys.get(i); + args.append(", $").append(key).append(": CreateProjectRecurringTimeInput!"); + body.append(String.format(template, "event" + i, key)); + }); + + return String.format(""" + mutation createRecurringEvents(%s) { + %s} + """, args, body); + } + + @Override + public CreateRecurringEventsVariables getVariables() { + return (CreateRecurringEventsVariables) super.getVariables(); + } + + @Override + public String getQuery() { + CreateRecurringEventsVariables vars = getVariables(); + + List sortedKeys = vars.getProjectEvents().keySet().stream().sorted().toList(); + + Object[] fieldsArray = sortedKeys.stream().map(sortedKey -> vars.getProjectEvents().get(sortedKey) + .getMutationFields()).toArray(); + + return String.format(query, fieldsArray); + } +} diff --git a/core/src/main/java/org/justserve/model/graph/CreateRecurringEventsVariables.java b/core/src/main/java/org/justserve/model/graph/CreateRecurringEventsVariables.java new file mode 100644 index 0000000..ebf9337 --- /dev/null +++ b/core/src/main/java/org/justserve/model/graph/CreateRecurringEventsVariables.java @@ -0,0 +1,46 @@ +package org.justserve.model.graph; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import io.micronaut.serde.annotation.Serdeable; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.NonNull; +import lombok.experimental.Accessors; +import org.justserve.model.ProjectRecurringTime; + +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +/** + * Pojo to serialize the variables object passed with a createRecurringEvents mutation. + * + * @author Jonathan Zollinger + * @since 0.1.0 + */ +@EqualsAndHashCode(callSuper = true) +@Serdeable +@Data +@NoArgsConstructor +@Accessors(chain = true) +public class CreateRecurringEventsVariables extends GraphVariables { + + private UUID projectId; + + @JsonIgnore + private Map projectEvents = new HashMap<>(); + + public CreateRecurringEventsVariables(UUID projectId, @NonNull ProjectRecurringTime... events) { + this.projectId = projectId; + for (int i = 0; i < events.length; i++) { + this.projectEvents.put("projectEvent" + i, events[i]); + } + } + + @JsonAnyGetter + public Map getProjectEvents() { + return projectEvents; + } +} diff --git a/core/src/main/java/org/justserve/model/graph/GraphFields.java b/core/src/main/java/org/justserve/model/graph/GraphFields.java new file mode 100644 index 0000000..0d092c1 --- /dev/null +++ b/core/src/main/java/org/justserve/model/graph/GraphFields.java @@ -0,0 +1,52 @@ +package org.justserve.model.graph; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import io.micronaut.core.annotation.Introspected; +import io.micronaut.core.beans.BeanIntrospection; +import io.micronaut.core.beans.BeanIntrospector; +import io.micronaut.core.naming.Named; +import io.micronaut.serde.annotation.Serdeable; + +import java.util.stream.Collectors; + +/** + *

    Fields used in a graphql mutation.

    + * These are the fields used in{@link GraphMutation#query} fields. + * + * @author Jonathan Zollinger + * @since 0.1.0 + */ +@Introspected +@Serdeable +public class GraphFields { + + @JsonIgnore + protected String getMutationFields() { + return getFieldsForBean(this); + } + + /** + * Reflection free implementation of querying non-null fields for a bean. + * + * @param bean class which is being queried + * @param class type + * @return all fields that are not null + */ + private static String getFieldsForBean(T bean) { + @SuppressWarnings("unchecked") + Class beanClass = (Class) bean.getClass(); + BeanIntrospection introspection = BeanIntrospector.SHARED.getIntrospection(beanClass); + + return introspection.getBeanProperties().stream() + .filter(prop -> !prop.getName().equals("mutationFields")) + .filter(prop -> { + try { + return prop.get(bean) != null; + } catch (Exception e) { + return false; + } + }) + .map(Named::getName) + .collect(Collectors.joining("\n ")); + } +} diff --git a/core/src/main/java/org/justserve/model/graph/GraphMutation.java b/core/src/main/java/org/justserve/model/graph/GraphMutation.java new file mode 100644 index 0000000..e9afc71 --- /dev/null +++ b/core/src/main/java/org/justserve/model/graph/GraphMutation.java @@ -0,0 +1,80 @@ +package org.justserve.model.graph; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import io.micronaut.serde.annotation.Serdeable; +import jakarta.validation.constraints.Pattern; +import lombok.Getter; +import org.justserve.client.GraphQLClient; + +/** + * Abstract base class used to serialize the JSON payload sent via the{@link GraphQLClient} + * for GraphQL operations. + * + * @author Jonathan Zollinger + * @since 0.1.0 + */ +@Serdeable +@Getter +@JsonPropertyOrder({"query", "variables"}) +public abstract class GraphMutation { + /** + *

    Mutation Query String

    formatted to receive a (@code \n) delimited string of variable names.
    + * The query is to include the mutation's signature, as well as its opening and closing curly braces.
    + *
    Example:
    {@code "mutation ($projectId: ID!, $attachmentId: ID!) {\\n %s\\n}" } + */ + //"^mutation\\b[\\s\\S]*\\{[\\s\\S]*%s[\\s\\S]*\\}$" + @Pattern(regexp = "^mutation.*\\{.*%s.*}.*", message = "Query must begin with 'mutation' and include a '%s' placeholder") + String query; + + @JsonProperty("variables") + GraphVariables variables; + + /** + *

    {@summary Gets the query string used in this mutation object.}

    + * Produces the dynamic string used for the mutation. Fields with null values are not included in the query. + *
    Example:
    + * {@code getQuery} would return this string if the variables include non-null values for id, projectId, contactEmail, + * contactName, contactPhone, start and end.
    + *
    +     * mutation createEvent($projectId: ID!, $projectEvent: UpdateProjectEventInput!) {
    +     *      createEvent(
    +     *          projectId: $projectId
    +     *          projectEvent: $projectEvent
    +     *      ) {
    +     *          id
    +     *          projectId
    +     *          contactEmail
    +     *          contactName
    +     *          contactPhone
    +     *          start
    +     *          end
    +     *      }
    +     * }
    +     * 
    + *

    + * {@code getQuery} would return this string if the variables did not include non-null values for the contact + * information: + * + *

    +     * mutation createEvent($projectId: ID!, $projectEvent: UpdateProjectEventInput!) {
    +     *      createEvent(
    +     *          projectId: $projectId
    +     *          projectEvent: $projectEvent
    +     *      ) {
    +     *          id
    +     *          projectId
    +     *          start
    +     *          end
    +     *      }
    +     * }
    +     * 
    + * + *

    NOTE

    + * Only the value property names values are provided in this part of the query. See{@link GraphFields#getMutationFields()} + * + * @return The entire graphql mutation string. + * + */ + public abstract String getQuery(); +} diff --git a/core/src/main/java/org/justserve/model/graph/GraphQLResponse.java b/core/src/main/java/org/justserve/model/graph/GraphQLResponse.java new file mode 100644 index 0000000..d77a1d4 --- /dev/null +++ b/core/src/main/java/org/justserve/model/graph/GraphQLResponse.java @@ -0,0 +1,31 @@ +package org.justserve.model.graph; + +import io.micronaut.serde.annotation.Serdeable; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + *

    GraphQL Response

    + * A generic wrapper for GraphQL API responses, containing the data payload and any execution errors. + * + * @param Underlying response object + * @author Jonathan Zollinger + * @since 0.1.0 + */ +@Serdeable +@Data +@NoArgsConstructor +@AllArgsConstructor +public class GraphQLResponse { + + private T data; + + private List errors; + + public boolean hasErrors() { + return errors != null && !errors.isEmpty(); + } +} diff --git a/core/src/main/java/org/justserve/model/graph/GraphVariables.java b/core/src/main/java/org/justserve/model/graph/GraphVariables.java new file mode 100644 index 0000000..92708c7 --- /dev/null +++ b/core/src/main/java/org/justserve/model/graph/GraphVariables.java @@ -0,0 +1,14 @@ +package org.justserve.model.graph; + +import io.micronaut.serde.annotation.Serdeable; + +/** + * Parent class to any variables to be used in a{@link GraphMutation#variables} setting. + * + * @author Jonathan Zollinger + * @since 0.1.0 + */ +@Serdeable +public class GraphVariables { + +} diff --git a/core/src/main/resources/application.yml b/core/src/main/resources/application.yml new file mode 100644 index 0000000..9bb0298 --- /dev/null +++ b/core/src/main/resources/application.yml @@ -0,0 +1,28 @@ +micronaut: + application: + name: justserve devkit core + http: + services: + justserve: + url: https://www.justserve.org + client: + read-timeout: 20s + connect-timeout: 5s + request-timeout: 30s + retryAttempts: 3 + pool: + enabled: true + acquire-timeout: 30s + max-connections: 100 + codec: + json: + additional-types: + - application/graphql-response+json +justserve: + token: ${:i-need-to-be-defined} +jackson: + deserialization: + ACCEPT_EMPTY_STRING_AS_NULL_OBJECT: true +logger: + levels: +# org.justserve.auth.JustServeClientFilter: DEBUG \ No newline at end of file diff --git a/src/main/resources/logback.xml b/core/src/main/resources/logback.xml similarity index 91% rename from src/main/resources/logback.xml rename to core/src/main/resources/logback.xml index b1bec03..66538dd 100644 --- a/src/main/resources/logback.xml +++ b/core/src/main/resources/logback.xml @@ -8,7 +8,7 @@ - + - \ No newline at end of file + diff --git a/src/main/resources/schema.yml b/core/src/main/resources/schema.yml similarity index 67% rename from src/main/resources/schema.yml rename to core/src/main/resources/schema.yml index f23e0b4..1767582 100644 --- a/src/main/resources/schema.yml +++ b/core/src/main/resources/schema.yml @@ -150,58 +150,62 @@ paths: application/json: schema: type: null + /api/v1/projects/{id}/organization/{organizationId}/assign: + put: + tags: [ Project ] + description: Assigns an organization to a project. + operationId: assignOrganizationToProject + parameters: + - name: id + in: path + description: ID of the project + required: true + schema: { type: string, format: uuid } + - name: organizationId + in: path + description: ID of the organization to assign + required: true + schema: { type: string, format: uuid } + responses: + '200': + description: OK + content: + application/json: + schema: + type: null /api/v1/users: post: description: Register a new user on JustServe operationId: createUser tags: - User - parameters: - - name: FirstName - in: query - required: true - schema: - maxLength: 50 - minLength: 1 - type: string - - name: LastName - in: query - required: true - schema: - maxLength: 50 - minLength: 1 - type: string - - name: Email - in: query - required: true - schema: - pattern: "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$" - type: string - - name: Password - in: query - required: true - schema: - maxLength: 100 - minLength: 8 - type: string - format: password - - name: Postal - in: query - schema: - type: string - - name: Language - description: language locale, ie 'en-us' - in: query - schema: - type: string - - name: Country - in: query - schema: - type: string - - name: CountryCode - in: query - schema: - type: string + requestBody: + content: + multipart/form-data: + schema: + type: object + properties: + FirstName: + maxLength: 50 + minLength: 1 + type: string + LastName: + maxLength: 50 + minLength: 1 + type: string + Email: + pattern: "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$" + type: string + Password: + maxLength: 100 + minLength: 8 + type: string + format: password + Postal: { type: string } + Language: { type: string, description: "language locale, ie 'en-us'" } + Country: { type: string } + CountryCode: { type: string } + termsChecked: { type: boolean } responses: '200': description: OK @@ -293,6 +297,32 @@ paths: '500': description: Internal Server Error content: { application/json: { schema: { $ref: '#/components/schemas/ProblemDetails' } } } + /api/v1/users/{userId}/bounded: + get: + tags: [ User ] + description: Get bounded user details + operationId: getAllUserInformation + parameters: + - name: userId + in: path + required: true + schema: { type: string, format: uuid } + - name: showLeads + in: query + schema: { type: boolean, default: true } + - name: showFull + in: query + schema: { type: boolean, default: true } + - name: levels + in: query + schema: { type: integer, format: int32, default: 1 } + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/UserResultBounded' /api/v1/routing/{url}: get: operationId: getOrgIdFromSlug @@ -309,6 +339,184 @@ paths: components: schemas: + TimeZone: + type: string + GraphQLCreateEventData: + type: object + properties: + createEvent: + type: object + properties: + id: { type: string, format: uuid } + projectId: { type: string, format: uuid } + contactEmail: { type: string, format: email } + contactName: { type: string } + contactPhone: { type: string, format: phone } + start: { type: string, format: date-time } + end: { type: string, format: date-time } + groupCap: { type: boolean } + groupLimit: { type: integer, format: int32 } + timezone: { $ref: '#/components/schemas/TimeZone' } + totalVolunteersNeeded: { type: integer, format: int32 } + volunteerCap: { type: boolean } + GraphQLSearchOrganizationData: + type: object + properties: + adminOrganizationSearchByTitle: + type: array + items: + type: object + properties: + id: { type: string, format: uuid } + name: { type: string } + logo: { type: string } + description: { type: string } + contactName: { type: string } + contactPhone: { type: string, format: phone } + contactEmail: { type: string, format: email } + url: { type: string } + location: + type: object + properties: + displayCity: { type: string } + displayState: { type: string } + GraphQLUpdateProjectData: + type: object + properties: + updateProject: + type: object + properties: + id: { type: string, format: uuid } + logo: { type: string } + GraphQLSetProjectLocationData: + type: object + properties: + setProjectLocation: + type: object + properties: + displayAddress: { type: string } + displayAddress2: { type: string, nullable: true } + displayCity: { type: string } + displayCountry: { type: string } + displayCountryCode: { type: string } + displayCounty: { type: string } + displayNeighborhood: { type: string, nullable: true } + displayPostalCode: { type: string } + displayState: { type: string } + id: { type: string, format: uuid } + latitude: { type: number, format: double } + locationDetails: { type: string, nullable: true } + locationName: { type: string } + longitude: { type: number, format: double } + maxLatitude: { type: number, format: double } + maxLongitude: { type: number, format: double } + minLatitude: { type: number, format: double } + minLongitude: { type: number, format: double } + timezone: { type: string } + civicGeography: + type: object + properties: + state: + type: object + properties: + code: { type: string, nullable: true } + churchGeography: + type: object + properties: + areaUnitId: { type: string } + ccUnitId: { type: string } + missionUnitId: { type: string } + stakeUnitId: { type: string } + GraphQLAddProjectAttachmentData: + type: object + properties: + addProjectAttachment: + type: object + properties: + attachmentId: { type: string, format: uuid } + GraphQLAddProjectOrganizationData: + type: object + properties: + addProjectOrganization: + type: object + properties: + id: { type: string, format: uuid } + organizations: + type: array + items: + type: object + properties: + id: { type: string, format: uuid } + name: { type: string } + GraphQLCombinedMutationUpdateProjectAddProjectTagData: + type: object + properties: + updateProject: + type: object + properties: + id: { type: string, format: uuid } + wheelchairAccessible: { type: boolean } + itemDonations: { type: boolean } + indoors: { type: boolean } + longDescription: { type: string, maxLength: 2000 } + shortDescription: { type: string, maxLength: 300 } + sponsorUserId: { type: string, format: uuid } + groupProjects: { type: boolean } + additionalProperties: + type: object + properties: + id: { type: string, format: uuid } + tags: + type: array + items: + type: object + properties: + id: { type: integer, format: int32 } + tagType: { type: string } + tagTypeId: { type: integer, format: int32 } + translations: + type: array + items: + type: object + properties: + description: { type: string, nullable: true } + label: { type: string } + languageId: { type: integer, format: int32 } + GraphQLCreateProjectData: + type: object + properties: + createProject: + type: object + properties: + id: { type: string, format: uuid } + title: { type: string } + typeId: { type: integer, format: int32 } + locationTypeId: { type: integer, format: int32 } + externalVolunteerUrl: { type: string, nullable: true } + statusId: { type: integer, format: int32 } + GraphQLPublishProjectData: + type: object + properties: + publishProject: + type: object + properties: + id: { type: string, format: uuid } + statusId: { type: integer, format: int32 } + GraphQLUpdateProjectAttachmentData: + type: object + properties: + updateProjectAttachment: + type: object + properties: + attachmentId: { type: string, format: uuid } + GraphQLUpdateProjectListingData: + type: object + properties: + updateProjectListing: + type: object + properties: + id: { type: string, format: uuid } + unlisted: { type: boolean } BoundaryUpdateRequest: type: object properties: @@ -738,16 +946,17 @@ components: relativityScore: { type: number, format: double } additionalProperties: false ProjectStatus: - type: string - enum: - - None - - Published - - Submitted - - Draft - - Template - - OnHold - - Cancelled - - Declined + type: integer + format: int32 + enum: [ 1, 2, 3, 4, 5, 6, 7 ] + x-enum-varnames: + - PUBLISHED + - SUBMITTED + - DRAFT + - TEMPLATE + - ON_HOLD + - CANCELLED + - DECLINED UserSlimSearchResult: description: | high level information for a given user @@ -857,8 +1066,8 @@ components: organizationType: { $ref: '#/components/schemas/OrganizationType' } title: { type: string, nullable: true } logo: { type: string, nullable: true } - url: { type: string, nullable: true } - internalURL: { type: string, nullable: true } + url: { type: string, nullable: true, description: "this provides only the url slug" } + internalURL: { type: string, nullable: true, description: "this currently returns null when an org is searched for by location" } website: { type: string, nullable: true } description: { type: string, nullable: true } contactName: { type: string, nullable: true } @@ -1231,7 +1440,7 @@ components: description: {} url: {} internalUrl: {} - organizationId: {} + organizationId: { type: string, format: uuid } reviewedBy: {} reviewedOn: {} linked: @@ -1564,3 +1773,437 @@ components: - projectOwnerUserId - projectLocationType - underReview + UserResultBounded: + type: object + properties: + id: { type: string, nullable: true } + firstName: { type: string, nullable: true } + lastName: { type: string, nullable: true } + role: { $ref: '#/components/schemas/Role' } + isLead: { type: boolean } + email: { type: string, nullable: true } + phone: { type: string, nullable: true } + keywords: { type: string, nullable: true } + isActive: { type: boolean } + updatedBy: { $ref: '#/components/schemas/UpdatedBy' } + permissions: + type: array + items: { $ref: '#/components/schemas/BoundaryPermissionBounded' } + nullable: true + civicBoundaries: + type: array + items: { $ref: '#/components/schemas/GeographyBounded' } + nullable: true + churchBoundaries: + type: array + items: { $ref: '#/components/schemas/GeographyBounded' } + nullable: true + organizations: + type: array + items: { $ref: '#/components/schemas/OrganizationBounded' } + nullable: true + pendingOrganizations: + type: array + items: { $ref: '#/components/schemas/ProjectBounded' } + nullable: true + pendingProjects: + type: array + items: { $ref: '#/components/schemas/ProjectBounded' } + nullable: true + activeProjects: + type: array + items: { $ref: '#/components/schemas/ProjectBounded' } + nullable: true + historicalProjects: + type: array + items: { $ref: '#/components/schemas/ProjectBounded' } + nullable: true + draftProjects: + type: array + items: { $ref: '#/components/schemas/ProjectBounded' } + nullable: true + templateProjects: + type: array + items: { $ref: '#/components/schemas/ProjectBounded' } + nullable: true + additionalProperties: false + UpdatedBy: + type: object + properties: + name: { type: string, nullable: true } + boundaryName: { type: string, nullable: true } + role: { $ref: '#/components/schemas/Role' } + isLead: { type: boolean } + updatedDate: { type: string } # broken, returns year-zero instead of a meaningful date + additionalProperties: false + BoundaryPermissionBounded: + type: object + properties: + id: { type: string, nullable: true } + boundary: { type: string, nullable: true } + admins: + type: array + items: { $ref: '#/components/schemas/BoundaryAdminBounded' } + nullable: true + additionalProperties: false + BoundaryAdminBounded: + type: object + properties: + id: { type: string, nullable: true } + firstName: { type: string, nullable: true } + lastName: { type: string, nullable: true } + type: { $ref: '#/components/schemas/Role' } + additionalProperties: false + GeographyBounded: + type: object + properties: + id: { type: string, nullable: true } + name: { type: string, nullable: true } + type: { $ref: '#/components/schemas/GeographyType' } + civicCountryId: { type: string, nullable: true } + civicStateId: { type: string, nullable: true } + civicCountyId: { type: string, nullable: true } + civicCityId: { type: string, nullable: true } + additionalProperties: false + OrganizationBounded: + type: object + properties: + id: { type: string, nullable: true } + endorsements: + type: array + items: { $ref: '#/components/schemas/Endorsement' } + nullable: true + name: { type: string, nullable: true } + url: { type: string, nullable: true } + location: { $ref: '#/components/schemas/Location' } + status: { $ref: '#/components/schemas/OrganizationStatus' } + isLead: { type: boolean } + type: { $ref: '#/components/schemas/OrganizationType' } + additionalProperties: false + ProjectBounded: + type: object + properties: + id: { type: string, nullable: true } + name: { type: string, nullable: true } + projectOwners: + type: array + items: { $ref: '#/components/schemas/ProjectOwner' } + nullable: true + locations: + type: array + items: { $ref: '#/components/schemas/Location' } + nullable: true + status: { $ref: '#/components/schemas/ProjectStatus' } + organization: { $ref: '#/components/schemas/ProjectOrg' } + createdBy: { type: string, nullable: true } + cbfName: { type: string, nullable: true } + cblName: { type: string, nullable: true } + startDate: { type: string, format: date-time } + endDate: { type: string, format: date-time } + isActive: { type: boolean } + isUnlistedProject: { type: boolean } + ongoing: { type: boolean } + isDirectlyOwnedOrSponsored: { type: boolean } + isOwnedOrRepresentedViaOrganization: { type: boolean } + volunteersNeeded: { type: integer, format: int32 } + volunteersAcquired: { type: integer, format: int32 } + projectOwnerName: { type: string, nullable: true } + projectOwnerUserId: { type: string, nullable: true } + additionalProperties: false + ProjectOwner: + type: object + properties: + id: { type: string, nullable: true } + ownerType: { $ref: '#/components/schemas/OwnerType' } + additionalProperties: false + OwnerType: + type: integer + format: int32 + enum: [ 0, 1 ] + x-enum-varnames: + - User + - Organization + ProjectOrg: + type: object + properties: + authorization: { type: boolean } + organizationAuthorization: { type: boolean, nullable: true } + name: { type: string, nullable: true } + description: { type: string, nullable: true } + url: { type: string, nullable: true } + internalUrl: { type: string, nullable: true } + organizationId: { type: string, nullable: true } + reviewedBy: { type: string, nullable: true } + reviewedOn: { type: string, format: date-time, nullable: true } + linked: { type: boolean } + logo: { type: string, nullable: true } + additionalProperties: false + GraphQLAddProjectAttachmentRequest: + type: object + properties: + query: { type: string } + variables: { $ref: '#/components/schemas/GraphQLAddProjectAttachmentVariables' } + GraphQLAddProjectAttachmentVariables: + type: object + properties: + projectId: + type: string + format: uuid + attachmentId: + type: string + format: uuid + GraphQLAddProjectOrganizationRequest: + type: object + properties: + query: { type: string } + variables: { $ref: '#/components/schemas/GraphQLAddProjectOrganizationVariables' } + GraphQLAddProjectOrganizationVariables: + type: object + properties: + organizationId: + type: string + format: uuid + projectId: + type: string + format: uuid + GraphQLCombinedMutationUpdateProjectAddProjectTagRequest: + type: object + properties: + query: { type: string } + variables: { $ref: '#/components/schemas/GraphQLCombinedMutationUpdateProjectAddProjectTagVariables' } + GraphQLCombinedMutationUpdateProjectAddProjectTagVariables: + type: object + properties: + projectId: + type: string + format: uuid + modify: + type: object + properties: + indoors: + type: boolean + longDescription: + type: string + maxLength: 2000 + shortDescription: + type: string + maxLength: 300 + sponsorUserId: + type: string + format: uuid + suitableAllAges: + type: boolean + groupProjects: + type: boolean + itemDonations: + type: boolean + wheelchairAccessible: + type: boolean + sponsorType: + type: string + GraphQLCreateEventRequest: + type: object + properties: + query: { type: string } + variables: { $ref: '#/components/schemas/GraphQLCreateEventVariables' } + GraphQLCreateOngoingEventRequest: + type: object + properties: + query: { type: string } + variables: { $ref: '#/components/schemas/GraphQLCreateOngoingEventVariables' } + GraphQLCreateEventVariables: + type: object + properties: + id: + description: ID for the overall project + type: string + format: uuid + projectEvent: + type: object + properties: + contactEmail: + type: string + format: email + contactName: + type: string + contactPhone: + type: string + format: phone + end: + type: string + format: date-time + groupCap: + type: boolean + groupLimit: + type: integer + shiftTitle: + type: string + start: + type: string + format: date-time + timezone: + $ref: '#/components/schemas/TimeZone' + totalVolunteersNeeded: + type: integer + volunteerCap: + type: boolean + GraphQLCreateOngoingEventVariables: + type: object + properties: + id: + description: ID for the overall project + type: string + format: uuid + projectEvent: + type: object + properties: + contactEmail: + type: string + format: email + maxLength: 200 + contactName: + type: string + maxLength: 200 + contactPhone: + type: string + format: phone + maxLength: 139 + schedule: + type: string + maxLength: 100 # will be corrected to 300 + shiftTitle: + type: string + maxLength: 100 # will be corrected to 300 + + GraphQLCreateProjectRequest: + type: object + properties: + query: { type: string } + variables: { $ref: '#/components/schemas/GraphQLCreateProjectVariables' } + GraphQLCreateProjectVariables: + type: object + properties: + title: + type: string + eventType: + $ref: "EventType" + locationType: + $ref: "ProjectLocationType" + redirect: + type: string + GraphQLPublishProjectRequest: + type: object + properties: + query: { type: string } + variables: { $ref: '#/components/schemas/GraphQLPublishProjectVariables' } + GraphQLPublishProjectVariables: + type: object + properties: + projectId: + type: string + format: uuid + GraphQLSearchOrganizationRequest: + type: object + properties: + query: { type: string } + variables: { $ref: '#/components/schemas/GraphQLSearchOrganizationVariables' } + GraphQLSearchOrganizationVariables: + type: object + properties: + searchTerm: + minLength: 3 + maxLength: 100 + description: must not be null, and must be at least three characters long to avoid an exception + type: string + includeAll: + description: must not be null + type: boolean + GraphQLSetProjectLocationRequest: + type: object + properties: + query: { type: string } + variables: { $ref: '#/components/schemas/GraphQLSetProjectLocationVariables' } + GraphQLSetProjectLocationVariables: + type: object + properties: + projectId: + type: string + format: uuid + location: + type: string + locationData: + type: object + properties: + country: + type: string + countryCode: + type: string + state: + type: string + city: + type: string + county: + type: string + postal: + type: string + neighborhood: + type: string + latitude: + type: number + longitude: + type: number + address: + type: string + areaId: + type: string + ccId: + type: string + missionId: + type: string + stakeId: + type: string + locationDetails: + type: string + locationName: + type: string + GraphQLUpdateProjectAttachmentRequest: + type: object + properties: + query: { type: string } + variables: { $ref: '#/components/schemas/GraphQLUpdateProjectAttachmentVariables' } + GraphQLUpdateProjectAttachmentVariables: + type: object + properties: + attachmentId: + type: string + format: uuid + title: + type: string + description: + type: string + GraphQLUpdateProjectListingRequest: + type: object + properties: + query: { type: string } + variables: { $ref: '#/components/schemas/GraphQLUpdateProjectListingVariables' } + GraphQLUpdateProjectListingVariables: + type: object + properties: + projectId: + type: string + format: uuid + unlisted: + type: boolean + GraphQLUpdateProjectRequest: + type: object + properties: + query: { type: string } + variables: { $ref: '#/components/schemas/GraphQLUpdateProjectVariables' } + GraphQLUpdateProjectVariables: + type: object + properties: + projectId: + type: string + format: uuid + logo: + type: string diff --git a/core/src/main/resources/swagger.json b/core/src/main/resources/swagger.json new file mode 100644 index 0000000..528fc83 --- /dev/null +++ b/core/src/main/resources/swagger.json @@ -0,0 +1,38188 @@ +{ + "openapi": "3.0.1", + "info": { + "title": "JustServe API", + "description": "Some services require authentication - visit the root application and sign in - then return here to perform authenticated service calls", + "version": "v1" + }, + "paths": { + "/api/v1/project/{projectId}/attachment": { + "post": { + "tags": [ + "Attachment" + ], + "parameters": [ + { + "name": "projectId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.AttachmentUploadModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.AttachmentUploadModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.AttachmentUploadModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.AttachmentUploadModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.AttachmentResult" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.AttachmentResult" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.AttachmentResult" + } + } + } + } + } + } + }, + "/api/v1/project/{projectId}/attachment/{id}": { + "delete": { + "tags": [ + "Attachment" + ], + "parameters": [ + { + "name": "projectId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.BoolResult" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.BoolResult" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.BoolResult" + } + } + } + } + } + } + }, + "/api/v1/project/{projectId}/attachment/remove/{id}": { + "delete": { + "tags": [ + "Attachment" + ], + "parameters": [ + { + "name": "projectId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.BoolResult" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.BoolResult" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.BoolResult" + } + } + } + } + } + } + }, + "/api/v1/attachment/{id}/info": { + "get": { + "tags": [ + "Attachment" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.AttachmentSlim" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.AttachmentSlim" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.AttachmentSlim" + } + } + } + } + } + } + }, + "/api/v1/attachment/{attachmentId}": { + "get": { + "tags": [ + "Attachment" + ], + "parameters": [ + { + "name": "attachmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/project/{projectId}/attachment/add/{attachmentId}": { + "post": { + "tags": [ + "Attachment" + ], + "parameters": [ + { + "name": "projectId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "attachmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Projects.ProjectAttachment" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Projects.ProjectAttachment" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Projects.ProjectAttachment" + } + } + } + } + } + } + }, + "/api/v1/boundaries/users/{userId}": { + "get": { + "tags": [ + "BoundaryPermission" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "churchLeadsOnly", + "in": "query", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.BoundaryDataResponse" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.BoundaryDataResponse" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.BoundaryDataResponse" + } + } + } + } + } + } + } + }, + "/api/v1/boundaries/org/{organizationId}/children": { + "get": { + "tags": [ + "BoundaryPermission" + ], + "parameters": [ + { + "name": "organizationId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.BoundaryDataResponse" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.BoundaryDataResponse" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.BoundaryDataResponse" + } + } + } + } + } + } + } + }, + "/api/v1/boundaries/church/{ldsGeographyId}/children": { + "get": { + "tags": [ + "BoundaryPermission" + ], + "parameters": [ + { + "name": "ldsGeographyId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "churchLeadsOnly", + "in": "query", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.BoundaryDataResponse" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.BoundaryDataResponse" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.BoundaryDataResponse" + } + } + } + } + } + } + } + }, + "/api/v1/boundaries/users/{userId}/organizations": { + "get": { + "tags": [ + "BoundaryPermission" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.BoundaryDataResponse" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.BoundaryDataResponse" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.BoundaryDataResponse" + } + } + } + } + } + } + } + }, + "/api/v1/boundaries/civic/{id}/users/{userId}": { + "put": { + "tags": [ + "BoundaryPermission" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/boundaries/rep/{targetAdminUserId}/org/{organizationId}": { + "put": { + "tags": [ + "BoundaryPermission" + ], + "parameters": [ + { + "name": "organizationId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "targetAdminUserId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/boundaries/{userId}/removeall": { + "put": { + "tags": [ + "BoundaryPermission" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/boundaries/getorglead/{orgId}": { + "get": { + "tags": [ + "BoundaryPermission" + ], + "parameters": [ + { + "name": "orgId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserResultLimited" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserResultLimited" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserResultLimited" + } + } + } + } + } + } + }, + "/api/v1/boundaries/getchurchlead/{id}": { + "get": { + "tags": [ + "BoundaryPermission" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/boundaries/getjsrep/{orgId}": { + "get": { + "tags": [ + "BoundaryPermission" + ], + "parameters": [ + { + "name": "orgId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserResultLimited" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserResultLimited" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserResultLimited" + } + } + } + } + } + } + }, + "/api/v1/boundaries/update": { + "put": { + "tags": [ + "BoundaryPermission" + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.BoundaryUpdateDeleteViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.BoundaryUpdateDeleteViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.BoundaryUpdateDeleteViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.BoundaryUpdateDeleteViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/boundaries/church/{roleid}/{userid}/{churchgeographyid}": { + "put": { + "tags": [ + "BoundaryPermission" + ], + "parameters": [ + { + "name": "roleid", + "in": "path", + "required": true, + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.Role" + } + }, + { + "name": "userid", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "churchgeographyid", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/boundaries/church/{userid}": { + "delete": { + "tags": [ + "BoundaryPermission" + ], + "parameters": [ + { + "name": "userid", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/boundaries/org/{roleid}/{userid}/{organizationId}": { + "put": { + "tags": [ + "BoundaryPermission" + ], + "parameters": [ + { + "name": "roleid", + "in": "path", + "required": true, + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.Role" + } + }, + { + "name": "userid", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "organizationId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/boundaries/org/{userid}/{organizationId}": { + "delete": { + "tags": [ + "BoundaryPermission" + ], + "parameters": [ + { + "name": "userid", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "organizationId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/churchGeographies/{churchGeographyId}/adminLabelEnums": { + "get": { + "tags": [ + "ChurchGeography" + ], + "parameters": [ + { + "name": "churchGeographyId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "page", + "in": "query", + "schema": { + "type": "integer", + "format": "int32", + "default": 0 + } + }, + { + "name": "size", + "in": "query", + "schema": { + "type": "integer", + "format": "int32", + "default": 25 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Pagination.PaginationResult`1[[System.Collections.Generic.IEnumerable`1[[JustServe.Contracts.Geographies.ChurchGeographyAdminLabelEnum, JustServe.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Pagination.PaginationResult`1[[System.Collections.Generic.IEnumerable`1[[JustServe.Contracts.Geographies.ChurchGeographyAdminLabelEnum, JustServe.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Pagination.PaginationResult`1[[System.Collections.Generic.IEnumerable`1[[JustServe.Contracts.Geographies.ChurchGeographyAdminLabelEnum, JustServe.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]" + } + } + } + } + } + } + }, + "/api/v1/churchGeographies/adminLabelEnums": { + "post": { + "tags": [ + "ChurchGeography" + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.ChurchGeographyAdminLabelEnumRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.ChurchGeographyAdminLabelEnumRequest" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.ChurchGeographyAdminLabelEnumRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.ChurchGeographyAdminLabelEnumRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + }, + "put": { + "tags": [ + "ChurchGeography" + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.ChurchGeographyAdminLabelEnumUpdateRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.ChurchGeographyAdminLabelEnumUpdateRequest" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.ChurchGeographyAdminLabelEnumUpdateRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.ChurchGeographyAdminLabelEnumUpdateRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/churchGeographies/adminLabelEnums/{churchGeographyAdminLabelEnumId}": { + "delete": { + "tags": [ + "ChurchGeography" + ], + "parameters": [ + { + "name": "churchGeographyAdminLabelEnumId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/churchGeographies/{unitIdOrChurchGeographyId}/upsert": { + "put": { + "tags": [ + "ChurchGeography" + ], + "parameters": [ + { + "name": "unitIdOrChurchGeographyId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/churchGeographies/{areaUnitId}/updateArea": { + "put": { + "tags": [ + "ChurchGeography" + ], + "parameters": [ + { + "name": "areaUnitId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/churchGeographies/updateAllAreas": { + "put": { + "tags": [ + "ChurchGeography" + ], + "parameters": [ + { + "name": "areaUnitId", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/corus/allarticles": { + "get": { + "tags": [ + "Corus" + ], + "parameters": [ + { + "name": "lang", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "isPreview", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Corus.ArticlesDataSet" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Corus.ArticlesDataSet" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Corus.ArticlesDataSet" + } + } + } + } + } + } + }, + "/api/v1/corus/get-article-by-id": { + "get": { + "tags": [ + "Corus" + ], + "parameters": [ + { + "name": "lang", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Id", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Corus.ArticlesDataSet" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Corus.ArticlesDataSet" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Corus.ArticlesDataSet" + } + } + } + } + } + } + }, + "/api/v1/corus/allchapters": { + "get": { + "tags": [ + "Corus" + ], + "parameters": [ + { + "name": "lang", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "isPreview", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Corus.ChaptersDataSet" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Corus.ChaptersDataSet" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Corus.ChaptersDataSet" + } + } + } + } + } + } + }, + "/api/v1/corus/training/allchapters": { + "get": { + "tags": [ + "Corus" + ], + "parameters": [ + { + "name": "lang", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "isPreview", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Corus.ChaptersDataSet" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Corus.ChaptersDataSet" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Corus.ChaptersDataSet" + } + } + } + } + } + } + }, + "/api/v1/corus/getchapter": { + "get": { + "tags": [ + "Corus" + ], + "parameters": [ + { + "name": "lang", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ChapterId", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "corusPage", + "in": "query", + "schema": { + "$ref": "#/components/schemas/JustServe.API.Controllers.CorusController+CorusPage" + } + }, + { + "name": "isPreview", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Corus.ChaptersDataSet" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Corus.ChaptersDataSet" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Corus.ChaptersDataSet" + } + } + } + } + } + } + }, + "/api/v1/corus/getpage": { + "get": { + "tags": [ + "Corus" + ], + "parameters": [ + { + "name": "lang", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageId", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "corusPage", + "in": "query", + "schema": { + "$ref": "#/components/schemas/JustServe.API.Controllers.CorusController+CorusPage" + } + }, + { + "name": "isPreview", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Corus.PagesDataSet" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Corus.PagesDataSet" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Corus.PagesDataSet" + } + } + } + } + } + } + }, + "/api/v1/corus/media": { + "get": { + "tags": [ + "Corus" + ], + "parameters": [ + { + "name": "lang", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "size", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "corusPage", + "in": "query", + "schema": { + "$ref": "#/components/schemas/JustServe.API.Controllers.CorusController+CorusPage" + } + }, + { + "name": "isPreview", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/corus/media/{size}/{id}": { + "get": { + "tags": [ + "Corus" + ], + "parameters": [ + { + "name": "lang", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "size", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "corusPage", + "in": "query", + "schema": { + "$ref": "#/components/schemas/JustServe.API.Controllers.CorusController+CorusPage" + } + }, + { + "name": "isPreview", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/routing/{url}": { + "get": { + "tags": [ + "DynamicRouting" + ], + "parameters": [ + { + "name": "url", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.DynamicRoutingDataResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.DynamicRoutingDataResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.DynamicRoutingDataResponse" + } + } + } + } + } + } + }, + "/api/v1/email/contact/leadName": { + "post": { + "tags": [ + "Email" + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.ContactUsReciepientViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.ContactUsReciepientViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.ContactUsReciepientViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.ContactUsReciepientViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/email/contact": { + "post": { + "tags": [ + "Email" + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.ContactUsViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.ContactUsViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.ContactUsViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.ContactUsViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/email/announcement": { + "post": { + "tags": [ + "Email" + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.ProjectAnnouncementViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.ProjectAnnouncementViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.ProjectAnnouncementViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.ProjectAnnouncementViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/canary": { + "get": { + "tags": [ + "Health" + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.HealthCheckResponse" + } + } + } + } + } + } + }, + "/api/v1/loglevels": { + "get": { + "tags": [ + "Health" + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/images/crop": { + "post": { + "tags": [ + "Image" + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.CropViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.CropViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.CropViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.CropViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.CropedImageResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.CropedImageResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.CropedImageResponse" + } + } + } + } + } + } + }, + "/api/v1/images": { + "post": { + "tags": [ + "Image" + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.ImageUploadRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.ImageUploadRequest" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.ImageUploadRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.ImageUploadRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ImageUploadResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ImageUploadResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ImageUploadResponse" + } + } + } + } + } + } + }, + "/api/v1/languages": { + "get": { + "tags": [ + "Language" + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.LocaleNames" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.LocaleNames" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.LocaleNames" + } + } + } + } + } + } + } + }, + "/api/v1/locations/user/{userId}/admin": { + "post": { + "tags": [ + "Locations" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.LocationMapsObject" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.LocationMapsObject" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.LocationMapsObject" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.LocationMapsObject" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.BoolResult" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.BoolResult" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.BoolResult" + } + } + } + } + } + } + }, + "/api/v1/locations/{language}": { + "get": { + "tags": [ + "Locations" + ], + "parameters": [ + { + "name": "language", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.CountryStatePair" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.CountryStatePair" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.CountryStatePair" + } + } + } + } + } + } + } + }, + "/api/v1/locations/chidren/{parentId}/{locale}": { + "get": { + "tags": [ + "Locations" + ], + "parameters": [ + { + "name": "parentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "locale", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.CivicChildResult" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.CivicChildResult" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.CivicChildResult" + } + } + } + } + } + } + } + }, + "/api/v1/locations/{language}/countries": { + "get": { + "tags": [ + "Locations" + ], + "parameters": [ + { + "name": "language", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + } + }, + "/api/v1/locations/{language}/address/{address}": { + "get": { + "tags": [ + "Locations" + ], + "parameters": [ + { + "name": "language", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "address", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Locations.Location" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Locations.Location" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Locations.Location" + } + } + } + } + } + } + }, + "/api/v1/locations/{language}/countries/postal": { + "get": { + "tags": [ + "Locations" + ], + "parameters": [ + { + "name": "language", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Geographies.CountryNameInfo" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Geographies.CountryNameInfo" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Geographies.CountryNameInfo" + } + } + } + } + } + } + } + }, + "/api/v1/locations/countrycodes": { + "get": { + "tags": [ + "Locations" + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Geographies.CountryInfo" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Geographies.CountryInfo" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Geographies.CountryInfo" + } + } + } + } + } + } + } + }, + "/api/v1/locations/{language}/countries/all": { + "get": { + "tags": [ + "Locations" + ], + "parameters": [ + { + "name": "language", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "SupportedCountriesOnly", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "excludeSupportedCountries", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Geographies.CountryNameInfo" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Geographies.CountryNameInfo" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Geographies.CountryNameInfo" + } + } + } + } + } + } + } + }, + "/api/v1/locations/{language}/countries/all/{excludeSupportedCountries}": { + "get": { + "tags": [ + "Locations" + ], + "parameters": [ + { + "name": "language", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "SupportedCountriesOnly", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "excludeSupportedCountries", + "in": "path", + "required": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Geographies.CountryNameInfo" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Geographies.CountryNameInfo" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Geographies.CountryNameInfo" + } + } + } + } + } + } + } + }, + "/api/v1/locations/lds/{id}/name": { + "get": { + "tags": [ + "Locations" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/locations/lds/{id}": { + "get": { + "tags": [ + "Locations" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Geographies.LDSGeography" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Geographies.LDSGeography" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Geographies.LDSGeography" + } + } + } + } + } + } + }, + "/api/v1/locations/geocode": { + "post": { + "tags": [ + "Locations" + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.LocationString" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.LocationString" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.LocationString" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.LocationString" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Locations.LocationRad" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Locations.LocationRad" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Locations.LocationRad" + } + } + } + } + } + } + }, + "/api/v1/locations/geocode/suggestions": { + "post": { + "tags": [ + "Locations" + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.LocationString" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.LocationString" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.LocationString" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.LocationString" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.SuggestionResponse" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.SuggestionResponse" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.SuggestionResponse" + } + } + } + } + } + } + } + }, + "/api/v1/locations/registration-age": { + "get": { + "tags": [ + "Locations" + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + } + }, + "/api/v1/locations/get-country-launch-info": { + "get": { + "tags": [ + "Locations" + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + } + }, + "/api/v1/locations/get-country-launch-info/{updateCache}": { + "get": { + "tags": [ + "Locations" + ], + "parameters": [ + { + "name": "updateCache", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + } + }, + "/api/v1/metrics/raw/church/{unitId}": { + "post": { + "tags": [ + "Metrics" + ], + "parameters": [ + { + "name": "unitId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.WidgetRequestModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.WidgetRequestModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.WidgetRequestModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.WidgetRequestModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.Metrics" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.Metrics" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.Metrics" + } + } + } + } + } + } + } + }, + "/api/v1/metrics/church/{unitId}/{lang}": { + "get": { + "tags": [ + "Metrics" + ], + "parameters": [ + { + "name": "unitId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "lang", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/metrics/church/{unitId}/date/{date}": { + "get": { + "tags": [ + "Metrics" + ], + "parameters": [ + { + "name": "date", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "unitId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/metrics/church/{unitId}/excel/{lang}": { + "get": { + "tags": [ + "Metrics" + ], + "parameters": [ + { + "name": "unitId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "lang", + "in": "path", + "required": true, + "schema": { + "type": "string", + "default": "en-us" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/mobile/v1/user/login": { + "post": { + "tags": [ + "Mobile" + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.LogInModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.LogInModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.LogInModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.LogInModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileUserResponseModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileUserResponseModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileUserResponseModel" + } + } + } + } + } + } + }, + "/api/mobile/v1/user/logout": { + "get": { + "tags": [ + "Mobile" + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "boolean" + } + }, + "application/json": { + "schema": { + "type": "boolean" + } + }, + "text/json": { + "schema": { + "type": "boolean" + } + } + } + } + } + } + }, + "/api/mobile/v1/user/token/{token}": { + "post": { + "tags": [ + "Mobile" + ], + "parameters": [ + { + "name": "token", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.RefreshTokenModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.RefreshTokenModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.RefreshTokenModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.RefreshTokenModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileUserResponseModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileUserResponseModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileUserResponseModel" + } + } + } + } + } + } + }, + "/api/mobile/v1/user/register": { + "post": { + "tags": [ + "Mobile" + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Users.UserRegistrationModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Users.UserRegistrationModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Users.UserRegistrationModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Users.UserRegistrationModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileUserResponseModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileUserResponseModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileUserResponseModel" + } + } + } + } + } + } + }, + "/api/mobile/v1/user/recovery": { + "post": { + "tags": [ + "Mobile" + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.RecoverAccountViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.RecoverAccountViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.RecoverAccountViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.RecoverAccountViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/mobile/v1/user/activation/{token}": { + "get": { + "tags": [ + "Mobile" + ], + "parameters": [ + { + "name": "token", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/mobile/v1/users/test/{userId}/activate": { + "get": { + "tags": [ + "Mobile" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/mobile/v1/users/test/{userId}/activationEmailLink": { + "get": { + "tags": [ + "Mobile" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/mobile/v1/user/{userId}": { + "get": { + "tags": [ + "Mobile" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Users.MobileUser" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Users.MobileUser" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Users.MobileUser" + } + } + } + } + } + }, + "delete": { + "tags": [ + "Mobile" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + }, + "post": { + "tags": [ + "Mobile" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.MobileUpdateUserModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.MobileUpdateUserModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.MobileUpdateUserModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.MobileUpdateUserModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.MobileUpdateUserModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.MobileUpdateUserModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.MobileUpdateUserModel" + } + } + } + } + } + } + }, + "/api/mobile/v1/user/{userId}/accountInformation": { + "get": { + "tags": [ + "Mobile" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Personalsettings" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Personalsettings" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Personalsettings" + } + } + } + } + } + } + }, + "/api/mobile/v1/user/{userId}/personal": { + "get": { + "tags": [ + "Mobile" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Personalsettings" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Personalsettings" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Personalsettings" + } + } + } + } + } + } + }, + "/api/mobile/v1/user/{userId}/location": { + "get": { + "tags": [ + "Mobile" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileLocationSlim" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileLocationSlim" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileLocationSlim" + } + } + } + } + } + } + }, + "/api/mobile/v1/user/{userId}/projectOptions": { + "get": { + "tags": [ + "Mobile" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.Projectsearchpreferences" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.Projectsearchpreferences" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.Projectsearchpreferences" + } + } + } + } + } + } + }, + "/api/mobile/v1/user/{userId}/contactOptions": { + "get": { + "tags": [ + "Mobile" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.Notificationsettings" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.Notificationsettings" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.Notificationsettings" + } + } + } + } + } + } + }, + "/api/mobile/v1/user/{userId}/interests": { + "get": { + "tags": [ + "Mobile" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "lang", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "string" + } + }, + "application/json": { + "schema": { + "type": "string" + } + }, + "text/json": { + "schema": { + "type": "string" + } + } + } + } + } + } + }, + "/api/mobile/v1/user/{userId}/interests/{lang}": { + "get": { + "tags": [ + "Mobile" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "lang", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "string" + } + }, + "application/json": { + "schema": { + "type": "string" + } + }, + "text/json": { + "schema": { + "type": "string" + } + } + } + } + } + } + }, + "/api/mobile/v1/user/{userId}/skills": { + "get": { + "tags": [ + "Mobile" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "lang", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + } + }, + "/api/mobile/v1/user/{userId}/skills/{lang}": { + "get": { + "tags": [ + "Mobile" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "lang", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + } + }, + "/api/mobile/v1/user/{userId}/tools": { + "get": { + "tags": [ + "Mobile" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "lang", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + } + }, + "/api/mobile/v1/user/{userId}/tools/{lang}": { + "get": { + "tags": [ + "Mobile" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "lang", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + } + }, + "/api/mobile/v1/user/{userId}/favoriteProjects": { + "get": { + "tags": [ + "Mobile" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileProject" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileProject" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileProject" + } + } + } + } + } + } + } + }, + "/api/mobile/v2/user/{userId}/favoriteProjects": { + "get": { + "tags": [ + "Mobile" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileProject" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileProject" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileProject" + } + } + } + } + } + } + } + }, + "/api/mobile/v1/user/{userId}/favoriteOrganizations": { + "get": { + "tags": [ + "Mobile" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileOrg" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileOrg" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileOrg" + } + } + } + } + } + } + } + }, + "/api/mobile/v2/user/{userId}/favoriteOrganizations": { + "get": { + "tags": [ + "Mobile" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileOrg" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileOrg" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileOrg" + } + } + } + } + } + } + } + }, + "/api/mobile/v1/user/{userId}/volunteeredProjects": { + "get": { + "tags": [ + "Mobile" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileProject" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileProject" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileProject" + } + } + } + } + } + } + } + }, + "/api/mobile/v2/user/{userId}/volunteeredProjects": { + "get": { + "tags": [ + "Mobile" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileProject" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileProject" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileProject" + } + } + } + } + } + } + } + }, + "/api/mobile/v1/user/{userId}/notifications/dismiss/completeprofile": { + "put": { + "tags": [ + "Mobile" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "notificationId", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + } + }, + "/api/mobile/v1/user/{userId}/notifications/dismiss/{notificationId}": { + "put": { + "tags": [ + "Mobile" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "notificationId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + } + }, + "/api/mobile/v1/projects/search": { + "post": { + "tags": [ + "Mobile" + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.MobileProjectSearchRequestModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.MobileProjectSearchRequestModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.MobileProjectSearchRequestModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.MobileProjectSearchRequestModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileProjectSearchResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileProjectSearchResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileProjectSearchResponse" + } + } + } + } + } + } + }, + "/api/mobile/v2/projects/search": { + "post": { + "tags": [ + "Mobile" + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.MobileProjectSearchRequestModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.MobileProjectSearchRequestModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.MobileProjectSearchRequestModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.MobileProjectSearchRequestModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileProjectSearchResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileProjectSearchResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileProjectSearchResponse" + } + } + } + } + } + } + }, + "/api/mobile/v1/projects/{projectId}/user/{userId}/favorite": { + "put": { + "tags": [ + "Mobile" + ], + "parameters": [ + { + "name": "projectId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Users.MobileUser" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Users.MobileUser" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Users.MobileUser" + } + } + } + } + } + }, + "delete": { + "tags": [ + "Mobile" + ], + "parameters": [ + { + "name": "projectId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Users.MobileUser" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Users.MobileUser" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Users.MobileUser" + } + } + } + } + } + } + }, + "/api/mobile/v1/projects": { + "post": { + "tags": [ + "Mobile" + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.MobileStringList" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.MobileStringList" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.MobileStringList" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.MobileStringList" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileProject" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileProject" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileProject" + } + } + } + } + } + } + } + }, + "/api/mobile/v2/projects": { + "post": { + "tags": [ + "Mobile" + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.MobileStringList" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.MobileStringList" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.MobileStringList" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.MobileStringList" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileProject" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileProject" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileProject" + } + } + } + } + } + } + } + }, + "/api/mobile/v1/projects/{id}/event/{eventId}/volunteer/{userId}": { + "put": { + "tags": [ + "Mobile" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "eventId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.MobileProjectVolunteerModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.MobileProjectVolunteerModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.MobileProjectVolunteerModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.MobileProjectVolunteerModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + }, + "delete": { + "tags": [ + "Mobile" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "eventId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileProject" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileProject" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileProject" + } + } + } + } + } + } + }, + "/api/mobile/v1/projects/{id}/volunteer/{userId}/recurring/{volunteeredRecurrenceId}": { + "put": { + "tags": [ + "Mobile" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "volunteeredRecurrenceId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.VolunteerRecurringViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.VolunteerRecurringViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.VolunteerRecurringViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.VolunteerRecurringViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/mobile/v1/projects/searchByTitle": { + "post": { + "tags": [ + "Mobile" + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.MobileProjectFAYT" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.MobileProjectFAYT" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.MobileProjectFAYT" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.MobileProjectFAYT" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.FAYTResponse" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.FAYTResponse" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.FAYTResponse" + } + } + } + } + } + } + } + }, + "/api/mobile/v1/projects/{projectId}/volunteer/external": { + "put": { + "tags": [ + "Mobile" + ], + "parameters": [ + { + "name": "projectId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/mobile/v2/organizations/search": { + "post": { + "tags": [ + "Mobile" + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.MobileOrgSearchModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.MobileOrgSearchModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.MobileOrgSearchModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.MobileOrgSearchModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileOrgSearchResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileOrgSearchResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileOrgSearchResponse" + } + } + } + } + } + } + }, + "/api/mobile/v1/organizations/search": { + "post": { + "tags": [ + "Mobile" + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.MobileOrgSearchModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.MobileOrgSearchModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.MobileOrgSearchModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.MobileOrgSearchModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileOrgSearchResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileOrgSearchResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileOrgSearchResponse" + } + } + } + } + } + } + }, + "/api/mobile/v1/organizations": { + "post": { + "tags": [ + "Mobile" + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.MobileStringList" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.MobileStringList" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.MobileStringList" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.MobileStringList" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileOrg" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileOrg" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileOrg" + } + } + } + } + } + } + } + }, + "/api/mobile/v2/organizations": { + "post": { + "tags": [ + "Mobile" + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.MobileStringList" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.MobileStringList" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.MobileStringList" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.MobileStringList" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileOrg" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileOrg" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileOrg" + } + } + } + } + } + } + } + }, + "/api/mobile/v1/organizations/{orgId}/user/{userId}/favorite": { + "put": { + "tags": [ + "Mobile" + ], + "parameters": [ + { + "name": "orgId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserSearchResults" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserSearchResults" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserSearchResults" + } + } + } + } + } + } + }, + "delete": { + "tags": [ + "Mobile" + ], + "parameters": [ + { + "name": "orgId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserSearchResults" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserSearchResults" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserSearchResults" + } + } + } + } + } + } + } + }, + "/api/mobile/v1/organizations/searchByTitle": { + "post": { + "tags": [ + "Mobile" + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.MobileProjectFAYT" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.MobileProjectFAYT" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.MobileProjectFAYT" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.MobileProjectFAYT" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.SearchResponseWithRelativityScore" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.SearchResponseWithRelativityScore" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.SearchResponseWithRelativityScore" + } + } + } + } + } + } + } + }, + "/api/mobile/v1/search/LocationSearchSuggestions": { + "post": { + "tags": [ + "Mobile" + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.LocationString" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.LocationString" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.LocationString" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.LocationString" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + } + }, + "/api/mobile/v1/languages": { + "get": { + "tags": [ + "Mobile" + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.LocaleNames" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.LocaleNames" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.LocaleNames" + } + } + } + } + } + } + } + }, + "/api/mobile/v1/options/{bcp47Language}/{countryCode}": { + "get": { + "tags": [ + "Mobile" + ], + "parameters": [ + { + "name": "bcp47Language", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "refreshCache", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "countryCode", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileOptions" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileOptions" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileOptions" + } + } + } + } + } + } + }, + "/api/mobile/v1/options/{bcp47Language}/{refreshCache}/{countryCode}": { + "get": { + "tags": [ + "Mobile" + ], + "parameters": [ + { + "name": "bcp47Language", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "refreshCache", + "in": "path", + "required": true, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "countryCode", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileOptions" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileOptions" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileOptions" + } + } + } + } + } + } + }, + "/api/mobile/v1/options/{bcp47Language}/skills/{countryCode}": { + "get": { + "tags": [ + "Mobile" + ], + "parameters": [ + { + "name": "bcp47Language", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "countryCode", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.SkillInfo" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.SkillInfo" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.SkillInfo" + } + } + } + } + } + } + } + }, + "/api/mobile/v1/options/{bcp47Language}/interests": { + "get": { + "tags": [ + "Mobile" + ], + "parameters": [ + { + "name": "bcp47Language", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.IdandName" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.IdandName" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.IdandName" + } + } + } + } + } + } + } + }, + "/api/mobile/v1/options/{bcp47Language}/countries": { + "get": { + "tags": [ + "Mobile" + ], + "parameters": [ + { + "name": "bcp47Language", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileCountryNameInfo" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileCountryNameInfo" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileCountryNameInfo" + } + } + } + } + } + } + } + }, + "/api/mobile/v1/options/{bcp47Language}/tools": { + "get": { + "tags": [ + "Mobile" + ], + "parameters": [ + { + "name": "bcp47Language", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.IdandName" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.IdandName" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.IdandName" + } + } + } + } + } + } + } + }, + "/api/mobile/v1/options/{bcp47Language}/radiusOptions": { + "get": { + "tags": [ + "Mobile" + ], + "parameters": [ + { + "name": "bcp47Language", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + } + } + } + } + }, + "/api/mobile/v1/volunteer/privacy/{bcp47Language}": { + "get": { + "tags": [ + "Mobile" + ], + "parameters": [ + { + "name": "bcp47Language", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "string" + } + }, + "application/json": { + "schema": { + "type": "string" + } + }, + "text/json": { + "schema": { + "type": "string" + } + } + } + } + } + } + }, + "/api/v1/newsletter/projects/search": { + "post": { + "tags": [ + "Newsletter" + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SearchProjectsNewsletterModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SearchProjectsNewsletterModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SearchProjectsNewsletterModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SearchProjectsNewsletterModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectTiny" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectTiny" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectTiny" + } + } + } + } + } + } + } + }, + "/api/v1/newsletter/projects/admin/{userId}": { + "get": { + "tags": [ + "Newsletter" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + } + } + } + } + } + }, + "/api/v1/newsletter/project/volunteered/{userId}": { + "get": { + "tags": [ + "Newsletter" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + } + } + } + } + } + }, + "/api/v1/newsletter/user/{userId}": { + "get": { + "tags": [ + "Newsletter" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserNewsletter" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserNewsletter" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserNewsletter" + } + } + } + } + } + } + }, + "/api/v1/newsletter/d365user/{userId}": { + "get": { + "tags": [ + "Newsletter" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.MSDynamicsFormattedUserV2" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.MSDynamicsFormattedUserV2" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.MSDynamicsFormattedUserV2" + } + } + } + } + } + } + }, + "/api/v1/notifications/users/{userId}": { + "get": { + "tags": [ + "Notification" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Notifications.UserNotification" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Notifications.UserNotification" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Notifications.UserNotification" + } + } + } + } + } + } + } + }, + "/api/v1/notifications/users/banner/geo": { + "post": { + "tags": [ + "Notification" + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.LocationString" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.LocationString" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.LocationString" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.LocationString" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Notifications.CustomNotificationResult" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Notifications.CustomNotificationResult" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Notifications.CustomNotificationResult" + } + } + } + } + } + } + } + }, + "/api/v1/notifications/{notificationId}/seen": { + "put": { + "tags": [ + "Notification" + ], + "parameters": [ + { + "name": "notificationId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/notifications/users/{userId}/clearall": { + "delete": { + "tags": [ + "Notification" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Notifications.UserNotification" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Notifications.UserNotification" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Notifications.UserNotification" + } + } + } + } + } + } + } + }, + "/api/v1/notifications/createcustom": { + "put": { + "tags": [ + "Notification" + ], + "parameters": [ + { + "name": "notificationId", + "in": "query", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.CustomNotificationModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.CustomNotificationModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.CustomNotificationModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.CustomNotificationModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Notifications.CustomNotification" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Notifications.CustomNotification" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Notifications.CustomNotification" + } + } + } + } + } + } + }, + "/api/v1/notifications/updatecustom/{notificationId}": { + "put": { + "tags": [ + "Notification" + ], + "parameters": [ + { + "name": "notificationId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.CustomNotificationModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.CustomNotificationModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.CustomNotificationModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.CustomNotificationModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Notifications.CustomNotification" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Notifications.CustomNotification" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Notifications.CustomNotification" + } + } + } + } + } + } + }, + "/api/v1/notifications/ActiveBannerNotifications": { + "get": { + "tags": [ + "Notification" + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Notifications.CustomNotification" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Notifications.CustomNotification" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Notifications.CustomNotification" + } + } + } + } + } + } + } + }, + "/api/v1/notifications/custom/{customNotificationId}": { + "get": { + "tags": [ + "Notification" + ], + "parameters": [ + { + "name": "customNotificationId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Notifications.CustomNotification" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Notifications.CustomNotification" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Notifications.CustomNotification" + } + } + } + } + } + }, + "delete": { + "tags": [ + "Notification" + ], + "parameters": [ + { + "name": "customNotificationId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/organizations": { + "post": { + "tags": [ + "Organization" + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.OrganizationCreateRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.OrganizationCreateRequest" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.OrganizationCreateRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.OrganizationCreateRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "string" + } + } + } + } + } + } + }, + "/api/v1/organizations/url/validate": { + "post": { + "tags": [ + "Organization" + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.VanityURLValidationModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.VanityURLValidationModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.VanityURLValidationModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.VanityURLValidationModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.BoolResult" + } + } + } + } + } + } + }, + "/api/v1/organizations/{id}": { + "put": { + "tags": [ + "Organization" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.OrganizationUpdateRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.OrganizationUpdateRequest" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.OrganizationUpdateRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.OrganizationUpdateRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + }, + "get": { + "tags": [ + "Organization" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Organizations.Organization" + } + } + } + } + } + } + }, + "/api/v1/organizations/{id}/{includeEndorsementData}": { + "get": { + "tags": [ + "Organization" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "includeEndorsementData", + "in": "path", + "required": true, + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Organizations.Organization" + } + } + } + } + } + } + }, + "/api/v1/organizations/{id}/projects": { + "post": { + "tags": [ + "Organization" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.OrganizationProjectSearchRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.OrganizationProjectSearchRequest" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.OrganizationProjectSearchRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.OrganizationProjectSearchRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectsView" + } + } + } + } + } + } + }, + "/api/v2/organizations/{id}/projects": { + "get": { + "tags": [ + "Organization" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "keywords", + "in": "query", + "schema": { + "type": "string", + "default": "" + } + }, + { + "name": "page", + "in": "query", + "schema": { + "type": "integer", + "format": "int32", + "default": 0 + } + }, + { + "name": "size", + "in": "query", + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Pagination.PaginationResult`1[[JustServe.Contracts.Responses.ProjectCard, JustServe.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]" + } + } + } + } + } + } + }, + "/api/v1/organizations/{id}/{includeProjects}": { + "delete": { + "tags": [ + "Organization" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "includeProjects", + "in": "path", + "required": true, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/organizations/{id}/announcements": { + "post": { + "tags": [ + "Organization" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.CreateUpdateAnnouncementViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.CreateUpdateAnnouncementViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.CreateUpdateAnnouncementViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.CreateUpdateAnnouncementViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "string" + } + } + } + } + } + } + }, + "/api/v1/organizations/{id}/announcements/{announcementId}": { + "put": { + "tags": [ + "Organization" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "announcementId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.CreateUpdateAnnouncementViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.CreateUpdateAnnouncementViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.CreateUpdateAnnouncementViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.CreateUpdateAnnouncementViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + }, + "delete": { + "tags": [ + "Organization" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "announcementId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/organizations/{organizationId}/announcements": { + "get": { + "tags": [ + "Organization" + ], + "parameters": [ + { + "name": "organizationId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/organizations/{organizationId}/follow/user/{userId}": { + "put": { + "tags": [ + "Organization" + ], + "parameters": [ + { + "name": "organizationId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + }, + "delete": { + "tags": [ + "Organization" + ], + "parameters": [ + { + "name": "organizationId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/organizations/{id}/associate/project/{projectId}": { + "put": { + "tags": [ + "Organization" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "projectId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + }, + "delete": { + "tags": [ + "Organization" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "projectId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/organizations/search": { + "post": { + "tags": [ + "Organization" + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SearchOrganizationsViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SearchOrganizationsViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SearchOrganizationsViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SearchOrganizationsViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.OrganizationSearchResponse" + } + } + } + } + } + } + }, + "/api/v1/organizations/users/{userId}": { + "get": { + "tags": [ + "Organization" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.OrganizationSlim" + } + } + } + } + } + } + } + }, + "/api/v1/organizations/users/{userId}/assigned": { + "get": { + "tags": [ + "Organization" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.OrganizationSlim" + } + } + } + } + } + } + } + }, + "/api/v1/organizations/{organizationId}/owners": { + "get": { + "tags": [ + "Organization" + ], + "parameters": [ + { + "name": "organizationId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserSlim" + } + } + } + } + } + } + } + }, + "/api/v1/organizations/admin/search": { + "post": { + "tags": [ + "Organization" + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.AdminSearchOrganizationsViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.AdminSearchOrganizationsViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.AdminSearchOrganizationsViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.AdminSearchOrganizationsViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.OrganizationSearchResults" + } + } + } + } + } + } + }, + "/api/v1/organizations/changeType": { + "post": { + "tags": [ + "Organization" + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.OrganizationTypeModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.OrganizationTypeModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.OrganizationTypeModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.OrganizationTypeModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/organizations/vc/{id}/AddCause": { + "post": { + "tags": [ + "Organization" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Organizations.Cause" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Organizations.Cause" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Organizations.Cause" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Organizations.Cause" + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/organizations/vc/{id}/causes": { + "post": { + "tags": [ + "Organization" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Organizations.Cause" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Organizations.Cause" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Organizations.Cause" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Organizations.Cause" + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/organizations/vc/{id}/causes/{causeId}": { + "delete": { + "tags": [ + "Organization" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "causeId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + }, + "get": { + "tags": [ + "Organization" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "causeId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Organizations.Cause" + } + } + } + } + } + }, + "post": { + "tags": [ + "Organization" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "causeId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Organizations.Cause" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Organizations.Cause" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Organizations.Cause" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Organizations.Cause" + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + }, + "put": { + "tags": [ + "Organization" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "causeId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Organizations.Cause" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Organizations.Cause" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Organizations.Cause" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Organizations.Cause" + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/organizations/vc/{url}/causes/{causeId}": { + "get": { + "tags": [ + "Organization" + ], + "parameters": [ + { + "name": "url", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "causeId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Organizations.Cause" + } + } + } + } + } + } + }, + "/api/v1/organizations/vc/{id}/endorsements": { + "get": { + "tags": [ + "Organization" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.EndorsementOrgInfoSlim" + } + } + } + } + } + } + } + }, + "/api/v1/organizations/vc/{id}/endorsements/{organizationId}": { + "delete": { + "tags": [ + "Organization" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "organizationId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/organizations/endorsements/{id}/approve/{organizationId}/{approved}": { + "post": { + "tags": [ + "Organization" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "organizationId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "approved", + "in": "path", + "required": true, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/organizations/vc/{id}/endorsements/{organizationId}/approve": { + "post": { + "tags": [ + "Organization" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "organizationId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "approved", + "in": "query", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/organizations/vc/{id}/endorsements/{organizationId}/reject": { + "post": { + "tags": [ + "Organization" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "organizationId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/organizations/endorsements/{requestingOrganizationId}/request/{requestedOrganizationId}": { + "post": { + "tags": [ + "Organization" + ], + "parameters": [ + { + "name": "requestingOrganizationId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "requestedOrganizationId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/organizations/{organizationId}/liteInformation": { + "get": { + "tags": [ + "Organization" + ], + "parameters": [ + { + "name": "organizationId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.OrganizationLite" + } + } + } + } + } + } + }, + "/api/v2/organizations/user/{userId}/count": { + "get": { + "tags": [ + "Organization" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "integer", + "format": "int32" + } + } + } + } + } + } + }, + "/api/v1/privacyterms/{lang}/date": { + "get": { + "tags": [ + "PolicyTerms" + ], + "parameters": [ + { + "name": "lang", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.PrivacyTermsDates" + } + } + } + } + } + } + }, + "/api/v1/privacyterms/{lang}/date/{overrideCache}": { + "get": { + "tags": [ + "PolicyTerms" + ], + "parameters": [ + { + "name": "lang", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "overrideCache", + "in": "path", + "required": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.PrivacyTermsDates" + } + } + } + } + } + } + }, + "/api/v1/terms/{lang}/date": { + "get": { + "tags": [ + "PolicyTerms" + ], + "parameters": [ + { + "name": "lang", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "string" + } + } + } + } + } + } + }, + "/api/v1/terms/{lang}/date/{overrideCache}": { + "get": { + "tags": [ + "PolicyTerms" + ], + "parameters": [ + { + "name": "lang", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "overrideCache", + "in": "path", + "required": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "string" + } + } + } + } + } + } + }, + "/api/v1/privacy/{lang}/date": { + "get": { + "tags": [ + "PolicyTerms" + ], + "parameters": [ + { + "name": "lang", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "string" + } + } + } + } + } + } + }, + "/api/v1/privacy/{lang}/date/{overrideCache}": { + "get": { + "tags": [ + "PolicyTerms" + ], + "parameters": [ + { + "name": "lang", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "overrideCache", + "in": "path", + "required": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "string" + } + } + } + } + } + } + }, + "/api/v1/terms/{lang}": { + "get": { + "tags": [ + "PolicyTerms" + ], + "parameters": [ + { + "name": "lang", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.PrivacyTerms" + } + } + } + } + } + } + }, + "/api/v1/terms/{lang}/{overrideSaved}": { + "get": { + "tags": [ + "PolicyTerms" + ], + "parameters": [ + { + "name": "lang", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "overrideSaved", + "in": "path", + "required": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.PrivacyTerms" + } + } + } + } + } + } + }, + "/api/v1/privacy/{lang}": { + "get": { + "tags": [ + "PolicyTerms" + ], + "parameters": [ + { + "name": "lang", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.PrivacyTerms" + } + } + } + } + } + } + }, + "/api/v1/privacy/{lang}/{overrideSaved}": { + "get": { + "tags": [ + "PolicyTerms" + ], + "parameters": [ + { + "name": "lang", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "overrideSaved", + "in": "path", + "required": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.PrivacyTerms" + } + } + } + } + } + } + }, + "/api/exceptions/400/custom": { + "get": { + "tags": [ + "ProblemDetails" + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/exceptions/400/vanilla": { + "get": { + "tags": [ + "ProblemDetails" + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/exceptions/400": { + "get": { + "tags": [ + "ProblemDetails" + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/exceptions/401": { + "get": { + "tags": [ + "ProblemDetails" + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/exceptions/403": { + "get": { + "tags": [ + "ProblemDetails" + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/exceptions/404": { + "get": { + "tags": [ + "ProblemDetails" + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/exceptions/417": { + "get": { + "tags": [ + "ProblemDetails" + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/exceptions/422": { + "get": { + "tags": [ + "ProblemDetails" + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/exceptions/500": { + "get": { + "tags": [ + "ProblemDetails" + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/exceptions/500/custom": { + "get": { + "tags": [ + "ProblemDetails" + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/exceptions/501": { + "get": { + "tags": [ + "ProblemDetails" + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/exceptions/504": { + "get": { + "tags": [ + "ProblemDetails" + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/projects/{projectId}/status/{status}": { + "get": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "projectId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "status", + "in": "path", + "required": true, + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.ProjectStatus" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + } + } + } + } + } + }, + "/api/v1/projects/{projectId}/calendar": { + "get": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "projectId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.CalendarProjectResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.CalendarProjectResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.CalendarProjectResponse" + } + } + } + } + } + } + }, + "/api/v1/projects": { + "post": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "organizationId", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + } + } + } + } + } + }, + "/api/v1/projects/organization/{organizationId}": { + "post": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "organizationId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + } + } + } + } + } + }, + "/api/v1/projects/user/{userId}": { + "get": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectSlim" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectSlim" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectSlim" + } + } + } + } + } + } + } + }, + "/api/v2/projects/user/{userId}/count": { + "get": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "integer", + "format": "int32" + } + }, + "application/json": { + "schema": { + "type": "integer", + "format": "int32" + } + }, + "text/json": { + "schema": { + "type": "integer", + "format": "int32" + } + } + } + } + } + } + }, + "/api/v1/projects/user/{userId}/all": { + "post": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SearchAdminProjectsViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SearchAdminProjectsViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SearchAdminProjectsViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SearchAdminProjectsViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectsSlimSearchResults" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectsSlimSearchResults" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectsSlimSearchResults" + } + } + } + } + }, + "deprecated": true + } + }, + "/api/v1/projects/user/{userId}/pendingTemplateOrDraft": { + "post": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SearchAdminProjectsViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SearchAdminProjectsViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SearchAdminProjectsViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SearchAdminProjectsViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectsSlimSearchResults" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectsSlimSearchResults" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectsSlimSearchResults" + } + } + } + } + } + } + }, + "/api/v1/projects/{projectId}": { + "post": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "projectId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "lang", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.LatLongPostal" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.LatLongPostal" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.LatLongPostal" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.LatLongPostal" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + } + } + } + } + }, + "get": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "projectId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "lang", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "userSearchLat", + "in": "query", + "schema": { + "type": "number", + "format": "double", + "default": 999 + } + }, + { + "name": "userSearchLong", + "in": "query", + "schema": { + "type": "number", + "format": "double", + "default": 999 + } + }, + { + "name": "userPostalCode", + "in": "query", + "schema": { + "type": "string", + "default": "" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + } + } + } + } + } + }, + "/api/v1/projects/{projectId}/{lang}": { + "post": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "projectId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "lang", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.LatLongPostal" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.LatLongPostal" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.LatLongPostal" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.LatLongPostal" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + } + } + } + } + }, + "get": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "projectId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "lang", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userSearchLat", + "in": "query", + "schema": { + "type": "number", + "format": "double", + "default": 999 + } + }, + { + "name": "userSearchLong", + "in": "query", + "schema": { + "type": "number", + "format": "double", + "default": 999 + } + }, + { + "name": "userPostalCode", + "in": "query", + "schema": { + "type": "string", + "default": "" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + } + } + } + } + } + }, + "/api/v1/projects/{id}/volunteers/csv": { + "get": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "string", + "format": "binary" + } + }, + "application/json": { + "schema": { + "type": "string", + "format": "binary" + } + }, + "text/json": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + } + }, + "/api/v1/projects/{projectId}/volunteers": { + "get": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "projectId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectVolunteersInterested" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectVolunteersInterested" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectVolunteersInterested" + } + } + } + } + } + } + }, + "/api/v1/projects/{projectId}/summary": { + "get": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "projectId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "lang", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectResponse" + } + } + } + } + } + } + }, + "/api/v1/projects/{projectId}/summary/{lang}": { + "get": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "projectId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "lang", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectResponse" + } + } + } + } + } + } + }, + "/api/v1/projects/{projectId}/users": { + "get": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "projectId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Users.User" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Users.User" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Users.User" + } + } + } + } + } + } + } + }, + "/api/v1/projects/{id}/status/{status}": { + "put": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "status", + "in": "path", + "required": true, + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.ProjectStatus" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.StatusChangeViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.StatusChangeViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.StatusChangeViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.StatusChangeViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/projects/{id}/unlist/{unlisted}": { + "put": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "unlisted", + "in": "path", + "required": true, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/projects/{id}": { + "put": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "organizationId", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "sendUpdate", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + } + } + } + } + }, + "delete": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/projects/{id}/organization/{organizationId}": { + "put": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "organizationId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "sendUpdate", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + } + } + } + } + } + }, + "/api/v1/projects/{id}/{sendUpdate}": { + "put": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "organizationId", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "sendUpdate", + "in": "path", + "required": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + } + } + } + } + } + }, + "/api/v1/projects/{id}/organization/{organizationId}/{sendUpdate}": { + "put": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "organizationId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "sendUpdate", + "in": "path", + "required": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + } + } + } + } + } + }, + "/api/v1/projects/{id}/users/{userId}": { + "put": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/projects/{id}/organization/{organizationId}/assign": { + "put": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "organizationId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/projects/{id}/users/reassignAndDelete": { + "put": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.ReassignDelete" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.ReassignDelete" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.ReassignDelete" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.ReassignDelete" + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/projects/{id}/organization/reassignAndDelete": { + "put": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.ReassignDelete" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.ReassignDelete" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.ReassignDelete" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.ReassignDelete" + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/projects/admin/search": { + "post": { + "tags": [ + "Projects" + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SearchAdminProjectsViewModelv2" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SearchAdminProjectsViewModelv2" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SearchAdminProjectsViewModelv2" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SearchAdminProjectsViewModelv2" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectsSlimSearchResults" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectsSlimSearchResults" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectsSlimSearchResults" + } + } + } + } + } + } + }, + "/api/v2/projects/search": { + "post": { + "tags": [ + "Projects" + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SearchProjectsViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SearchProjectsViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SearchProjectsViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SearchProjectsViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Pagination.PaginationProjectSearchResult`1[[System.Collections.Generic.IEnumerable`1[[JustServe.Contracts.Responses.ProjectCard, JustServe.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Pagination.PaginationProjectSearchResult`1[[System.Collections.Generic.IEnumerable`1[[JustServe.Contracts.Responses.ProjectCard, JustServe.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Pagination.PaginationProjectSearchResult`1[[System.Collections.Generic.IEnumerable`1[[JustServe.Contracts.Responses.ProjectCard, JustServe.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]" + } + } + } + } + } + } + }, + "/api/v1/projects/{id}/user/{userId}/favorite": { + "put": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + }, + "delete": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/projects/user/{userId}/sponsored": { + "get": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectsAndIdList" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectsAndIdList" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectsAndIdList" + } + } + } + } + } + } + }, + "/api/v1/projects/{id}/volunteer/{userId}": { + "put": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.VolunteerViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.VolunteerViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.VolunteerViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.VolunteerViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + }, + "delete": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/projects/{projectId}/volunteer/{volunteerUserId}/recurring/{projectEventId}": { + "put": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "projectId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "volunteerUserId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "projectEventId", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.VolunteerRecurringViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.VolunteerRecurringViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.VolunteerRecurringViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.VolunteerRecurringViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/projects/{id}/ongoing/{ongoingId}/interest/{userId}": { + "put": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "ongoingId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.OngoingInterestViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.OngoingInterestViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.OngoingInterestViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.OngoingInterestViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/projects/{projectId}/volunteer/manual/{projectEventId}": { + "put": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "projectId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "projectEventId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.VolunteerManualModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.VolunteerManualModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.VolunteerManualModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.VolunteerManualModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.VolunteerDetails" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.VolunteerDetails" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.VolunteerDetails" + } + } + } + } + } + } + }, + "/api/v1/projects/{id}/recurring/volunteer/{userId}/{eventId}": { + "delete": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "dtlId", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "eventId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/projects/{id}/dtl/{dtlId}/volunteer/{userId}/{eventId}": { + "delete": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "dtlId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "eventId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/projects/{id}/ongoing/{ongoingId}/interest/{interestedId}": { + "delete": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "ongoingId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "interestedId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v2/projects/{projectId}/volunteers/{volunteerId}": { + "delete": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "projectId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "volunteerId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/projects/{id}/volunteer/external": { + "put": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/projects/{id}/dtl/{dtlId}/timeslot/{timeSlotId}/user/{userId}": { + "put": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "dtlId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "timeSlotId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.HoursServedItemViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.HoursServedItemViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.HoursServedItemViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.HoursServedItemViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/projects/{projectId}/ongoing/{ongoingId}/user/{userId}": { + "put": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "projectId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "ongoingId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.HoursServedViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.HoursServedViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.HoursServedViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.HoursServedViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/projects/{id}/target/{targetId}/hours": { + "put": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "targetId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.HoursServedBulkModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.HoursServedBulkModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.HoursServedBulkModel" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.HoursServedBulkModel" + } + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/projects/skills/{language}/{countryCode}": { + "get": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "language", + "in": "path", + "required": true, + "schema": { + "type": "string", + "default": "en-us" + } + }, + { + "name": "countryCode", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + } + }, + "/api/v1/projects/allfilters/{language}/{countryCode}": { + "get": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "language", + "in": "path", + "required": true, + "schema": { + "type": "string", + "default": "en-us" + } + }, + { + "name": "countryCode", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + } + }, + "/api/v1/projects/allProjectfilters/{language}/{countryCode}": { + "get": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "language", + "in": "path", + "required": true, + "schema": { + "type": "string", + "default": "en-us" + } + }, + { + "name": "countryCode", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + } + }, + "/api/v1/projects/organization/search/{id}": { + "post": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "page", + "in": "query", + "schema": { + "type": "integer", + "format": "int32", + "default": 0 + } + }, + { + "name": "size", + "in": "query", + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + }, + { + "name": "includeExpired", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectSearchResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectSearchResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectSearchResponse" + } + } + } + } + } + } + }, + "/api/v1/projects/organization/search/{id}/{includeExpired}": { + "post": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "page", + "in": "query", + "schema": { + "type": "integer", + "format": "int32", + "default": 0 + } + }, + { + "name": "size", + "in": "query", + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + }, + { + "name": "includeExpired", + "in": "path", + "required": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectSearchResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectSearchResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectSearchResponse" + } + } + } + } + } + } + }, + "/api/v1/projects/organization/search/{id}/{page}/{size}": { + "post": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "page", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 0 + } + }, + { + "name": "size", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + }, + { + "name": "includeExpired", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectSearchResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectSearchResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectSearchResponse" + } + } + } + } + } + } + }, + "/api/v1/projects/organization/search/{id}/{page}/{size}/{includeExpired}": { + "post": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "page", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 0 + } + }, + { + "name": "size", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + }, + { + "name": "includeExpired", + "in": "path", + "required": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectSearchResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectSearchResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectSearchResponse" + } + } + } + } + } + } + }, + "/api/v1/projects/{id}/user/{adminId}/authorized/{authorize}": { + "get": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "adminId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "authorize", + "in": "path", + "required": true, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + } + } + } + } + } + }, + "/api/v1/projects/createFromTemplate/{id}": { + "post": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Project" + } + } + } + } + } + } + }, + "/api/v1/projects/{id}/dtl/{dtlId}/volunteer/{userId}/{timeSlotId}/printvalidation": { + "get": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "dtlId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "projectEventId", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "timeSlotId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/GetTopCityProjectCounts/{browserLocale}": { + "get": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "browserLocale", + "in": "path", + "required": true, + "schema": { + "type": "string", + "default": "en-US" + } + }, + { + "name": "refreshCache", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.CountryCountsResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.CountryCountsResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.CountryCountsResponse" + } + } + } + } + } + } + }, + "/api/v1/GetTopCityProjectCounts/{browserLocale}/{refreshCache}": { + "get": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "browserLocale", + "in": "path", + "required": true, + "schema": { + "type": "string", + "default": "en-US" + } + }, + { + "name": "refreshCache", + "in": "path", + "required": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.CountryCountsResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.CountryCountsResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.CountryCountsResponse" + } + } + } + } + } + } + }, + "/api/v1/GetTopCityOrgCounts/{browserLocale}": { + "get": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "browserLocale", + "in": "path", + "required": true, + "schema": { + "type": "string", + "default": "en-US" + } + }, + { + "name": "refreshCache", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.CountryCountsResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.CountryCountsResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.CountryCountsResponse" + } + } + } + } + } + } + }, + "/api/v1/GetTopCityOrgCounts/{browserLocale}/{refreshCache}": { + "get": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "browserLocale", + "in": "path", + "required": true, + "schema": { + "type": "string", + "default": "en-US" + } + }, + { + "name": "refreshCache", + "in": "path", + "required": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.CountryCountsResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.CountryCountsResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.CountryCountsResponse" + } + } + } + } + } + } + }, + "/api/v1/projects/HomepageSearch": { + "post": { + "tags": [ + "Projects" + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.HomepageProjectRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.HomepageProjectRequest" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.HomepageProjectRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.HomepageProjectRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.HomepageProjectInfo" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.HomepageProjectInfo" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.HomepageProjectInfo" + } + } + } + } + } + } + }, + "/api/v1/projects/searchByTitle": { + "post": { + "tags": [ + "Projects" + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SearchProjectsGlobalViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SearchProjectsGlobalViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SearchProjectsGlobalViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SearchProjectsGlobalViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.SearchResponseObject" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.SearchResponseObject" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.SearchResponseObject" + } + } + } + } + } + } + } + }, + "/api/v1/projects/admin/{userId}/search/{page}/{size}": { + "get": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "page", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "size", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "status", + "in": "query", + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + { + "name": "title", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "loc", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "locMod", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "start", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "startMod", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "end", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "endMod", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "org", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ldesc", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "unlisted", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "expired", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "user", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "uEmail", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "userMods", + "in": "query", + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + { + "name": "uEmailMods", + "in": "query", + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Pagination.PaginationResult`1[[System.Collections.Generic.IEnumerable`1[[JustServe.Contracts.Responses.ProjectAdmin, JustServe.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Pagination.PaginationResult`1[[System.Collections.Generic.IEnumerable`1[[JustServe.Contracts.Responses.ProjectAdmin, JustServe.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Pagination.PaginationResult`1[[System.Collections.Generic.IEnumerable`1[[JustServe.Contracts.Responses.ProjectAdmin, JustServe.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]" + } + } + } + } + } + } + }, + "/api/v1/projects/{projectId}/ownerLog": { + "get": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "projectId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Logging.ProjectOwnerLog" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Logging.ProjectOwnerLog" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Logging.ProjectOwnerLog" + } + } + } + } + } + } + } + }, + "/api/v1/projects/clone": { + "post": { + "tags": [ + "Projects" + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.CloneProjectRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.CloneProjectRequest" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.CloneProjectRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.CloneProjectRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "string", + "format": "uuid" + } + }, + "application/json": { + "schema": { + "type": "string", + "format": "uuid" + } + }, + "text/json": { + "schema": { + "type": "string", + "format": "uuid" + } + } + } + } + } + } + }, + "/api/v1/projects/{projectId}/basicInformation": { + "get": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "projectId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectBasicInformation" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectBasicInformation" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectBasicInformation" + } + } + } + } + } + } + }, + "/api/v2/projects/volunteers/search": { + "get": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "ProjectId", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "From", + "in": "query", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "To", + "in": "query", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "ProjectEventId", + "in": "query", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "VolunteerName", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "VolunteerEmail", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "VolunteerPhone", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Note", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Skills", + "in": "query", + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + { + "name": "GroupSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "GroupSizeModifier", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Page", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Size", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Pagination.PaginationResult`1[[System.Collections.Generic.IEnumerable`1[[JustServe.Contracts.Responses.VolunteerLiteDetails, JustServe.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Pagination.PaginationResult`1[[System.Collections.Generic.IEnumerable`1[[JustServe.Contracts.Responses.VolunteerLiteDetails, JustServe.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Pagination.PaginationResult`1[[System.Collections.Generic.IEnumerable`1[[JustServe.Contracts.Responses.VolunteerLiteDetails, JustServe.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]" + } + } + } + } + } + } + }, + "/api/v1/projects/{projectId}/events/search": { + "get": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "projectId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "ProjectId", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "ProjectEventId", + "in": "query", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "FromTime", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ToTime", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "From", + "in": "query", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "To", + "in": "query", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "VolunteerResponsibility", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ProjectEventStatus", + "in": "query", + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + { + "name": "Page", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Size", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Pagination.PaginationResult`1[[System.Collections.Generic.IEnumerable`1[[JustServe.Contracts.Responses.ProjectEventCustom, JustServe.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Pagination.PaginationResult`1[[System.Collections.Generic.IEnumerable`1[[JustServe.Contracts.Responses.ProjectEventCustom, JustServe.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Pagination.PaginationResult`1[[System.Collections.Generic.IEnumerable`1[[JustServe.Contracts.Responses.ProjectEventCustom, JustServe.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]" + } + } + } + } + } + } + }, + "/api/v2/projects/{projectId}/events/{projectEventId}/volunteers/{projectVolunteerId}/hours": { + "post": { + "tags": [ + "Projects" + ], + "parameters": [ + { + "name": "projectId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "projectEventId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "projectVolunteerId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.UpsertProjectVolunteerHoursRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.UpsertProjectVolunteerHoursRequest" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.UpsertProjectVolunteerHoursRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.UpsertProjectVolunteerHoursRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/downloads/en-us/PD60006060-JustServe-Benefits-For-Teens-Who-Serve-ENG.pdf": { + "get": { + "tags": [ + "Redirects" + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/downloads/en-us/PD60006367-JustServe-Styleguide-Short-ENG.pdf": { + "get": { + "tags": [ + "Redirects" + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/downloads/en-us/PD60012420-JustServe-Life-Benefits-of-Service-ENG.pdf": { + "get": { + "tags": [ + "Redirects" + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/resources/all/{lang}": { + "get": { + "tags": [ + "Resource" + ], + "parameters": [ + { + "name": "lang", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.Resource" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.Resource" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.Resource" + } + } + } + } + } + } + } + }, + "/api/v1/stories/search": { + "post": { + "tags": [ + "Stories" + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.StoriesSearchViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.StoriesSearchViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.StoriesSearchViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.StoriesSearchViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.StoryLimited" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.StoryLimited" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.StoryLimited" + } + } + } + } + } + } + } + }, + "/api/v1/stories/{successStoryId}": { + "get": { + "tags": [ + "Stories" + ], + "parameters": [ + { + "name": "successStoryId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Story" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Story" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Story" + } + } + } + } + } + }, + "delete": { + "tags": [ + "Stories" + ], + "parameters": [ + { + "name": "successStoryId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + }, + "put": { + "tags": [ + "Stories" + ], + "parameters": [ + { + "name": "successStoryId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SuccessStoryViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SuccessStoryViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SuccessStoryViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SuccessStoryViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/stories": { + "post": { + "tags": [ + "Stories" + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SuccessStoryViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SuccessStoryViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SuccessStoryViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SuccessStoryViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/stories/admin/{userId}": { + "post": { + "tags": [ + "Stories" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SearchAdminStoriesViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SearchAdminStoriesViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SearchAdminStoriesViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SearchAdminStoriesViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.StorySearchResults" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.StorySearchResults" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.StorySearchResults" + } + } + } + } + } + } + }, + "/api/v1/timezones/all": { + "get": { + "tags": [ + "TimeZone" + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.TimeZone.TimeZoneEnum" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.TimeZone.TimeZoneEnum" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.TimeZone.TimeZoneEnum" + } + } + } + } + } + } + } + }, + "/api/v1/timezones/name": { + "get": { + "tags": [ + "TimeZone" + ], + "parameters": [ + { + "name": "iana", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.TimeZone.TimeZoneEnum" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.TimeZone.TimeZoneEnum" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.TimeZone.TimeZoneEnum" + } + } + } + } + } + } + }, + "/api/v1/timezones/coordinates": { + "get": { + "tags": [ + "TimeZone" + ], + "parameters": [ + { + "name": "latitude", + "in": "query", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "longitude", + "in": "query", + "schema": { + "type": "number", + "format": "double" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.TimeZone.TimeZoneEnum" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.TimeZone.TimeZoneEnum" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.TimeZone.TimeZoneEnum" + } + } + } + } + } + } + }, + "/api/v1/token": { + "post": { + "tags": [ + "Token" + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/users/activation/{token}": { + "get": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "token", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/users/{userId}/activate": { + "get": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/users/{targetUserId}/password": { + "put": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "targetUserId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.ChangePasswordViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.ChangePasswordViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.ChangePasswordViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.ChangePasswordViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/users/{id}/lang/{lang}": { + "put": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "lang", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "string" + } + }, + "application/json": { + "schema": { + "type": "string" + } + }, + "text/json": { + "schema": { + "type": "string" + } + } + } + } + } + } + }, + "/api/v1/users/{userId}/clean": { + "get": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/users/{userId}/recordofservice": { + "post": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.RecordOfService" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.RecordOfService" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.RecordOfService" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.RecordOfService" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "string" + } + }, + "application/json": { + "schema": { + "type": "string" + } + }, + "text/json": { + "schema": { + "type": "string" + } + } + } + } + } + }, + "put": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.RecordOfService" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.RecordOfService" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.RecordOfService" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.RecordOfService" + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/users/{userId}/recordofservice/{recordOfServiceId}": { + "delete": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "recordOfServiceId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/users/{userId}": { + "delete": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + }, + "get": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserResult" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserResult" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserResult" + } + } + } + } + } + }, + "put": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.UpdateUserModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.UpdateUserModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.UpdateUserModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.UpdateUserModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v2/users/{userId}/activeProjects/{page}/{size}": { + "get": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "page", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 0 + } + }, + { + "name": "size", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectCard" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectCard" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectCard" + } + } + } + } + } + } + } + }, + "/api/v2/users/{userId}/activeProjects": { + "get": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "page", + "in": "query", + "schema": { + "type": "integer", + "format": "int32", + "default": 0 + } + }, + { + "name": "size", + "in": "query", + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectCard" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectCard" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectCard" + } + } + } + } + } + } + } + }, + "/api/v1/users/arealeads": { + "get": { + "tags": [ + "User" + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserSearchResults" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserSearchResults" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserSearchResults" + } + } + } + } + } + } + } + }, + "/api/v1/users/{userId}/boundaries/civic": { + "get": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "option", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "geographyId", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "childType", + "in": "query", + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.GeographyType" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.CivicGeographyLimited" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.CivicGeographyLimited" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.CivicGeographyLimited" + } + } + } + } + } + } + } + }, + "/api/v1/users/{userId}/boundaries/civic/{option}": { + "get": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "option", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "geographyId", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "childType", + "in": "query", + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.GeographyType" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.CivicGeographyLimited" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.CivicGeographyLimited" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.CivicGeographyLimited" + } + } + } + } + } + } + } + }, + "/api/v1/users/{userId}/boundaries/civic/{option}/{geographyId}/{childType}": { + "get": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "option", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "geographyId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "childType", + "in": "path", + "required": true, + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.GeographyType" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.CivicGeographyLimited" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.CivicGeographyLimited" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.CivicGeographyLimited" + } + } + } + } + } + } + } + }, + "/api/v1/users/{userId}/boundaries/church/{option}": { + "get": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "option", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "churchGeographyId", + "in": "query", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "childType", + "in": "query", + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.GeographyType" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.LDSGeographyLimited" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.LDSGeographyLimited" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.LDSGeographyLimited" + } + } + } + } + } + } + } + }, + "/api/v1/users/{userId}/boundaries/church": { + "get": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "option", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "churchGeographyId", + "in": "query", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "childType", + "in": "query", + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.GeographyType" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.LDSGeographyLimited" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.LDSGeographyLimited" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.LDSGeographyLimited" + } + } + } + } + } + } + } + }, + "/api/v1/users/{userId}/boundaries/church/{option}/{churchGeographyId}/{childType}": { + "get": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "option", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "churchGeographyId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "childType", + "in": "path", + "required": true, + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.GeographyType" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.LDSGeographyLimited" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.LDSGeographyLimited" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.LDSGeographyLimited" + } + } + } + } + } + } + } + }, + "/api/v1/users/{userId}/bounded": { + "get": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "showLeads", + "in": "query", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "showFull", + "in": "query", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "levels", + "in": "query", + "schema": { + "type": "integer", + "format": "int32", + "default": 1 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserResultBounded" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserResultBounded" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserResultBounded" + } + } + } + } + } + } + }, + "/api/v1/users/{userId}/claims": { + "get": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + } + }, + "/api/v1/users/zendeskToken": { + "get": { + "tags": [ + "User" + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + } + }, + "/api/v1/users/hash": { + "post": { + "tags": [ + "User" + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.DailyUserHashModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.DailyUserHashModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.DailyUserHashModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.DailyUserHashModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v2/users/{userId}/draftProjects": { + "get": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "page", + "in": "query", + "schema": { + "type": "integer", + "format": "int32", + "default": 0 + } + }, + { + "name": "size", + "in": "query", + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Pagination.PaginationResult`1[[JustServe.Contracts.Responses.ProjectCard, JustServe.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Pagination.PaginationResult`1[[JustServe.Contracts.Responses.ProjectCard, JustServe.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Pagination.PaginationResult`1[[JustServe.Contracts.Responses.ProjectCard, JustServe.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]" + } + } + } + } + } + } + }, + "/api/v2/users/{userId}/draftProjects/{page}/{size}": { + "get": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "page", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 0 + } + }, + { + "name": "size", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Pagination.PaginationResult`1[[JustServe.Contracts.Responses.ProjectCard, JustServe.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Pagination.PaginationResult`1[[JustServe.Contracts.Responses.ProjectCard, JustServe.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Pagination.PaginationResult`1[[JustServe.Contracts.Responses.ProjectCard, JustServe.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]" + } + } + } + } + } + } + }, + "/api/v2/users/{userId}/recommendedProjects": { + "get": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "page", + "in": "query", + "schema": { + "type": "integer", + "format": "int32", + "default": 0 + } + }, + { + "name": "size", + "in": "query", + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Pagination.PaginationResult`1[[JustServe.Contracts.Responses.ProjectCard, JustServe.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Pagination.PaginationResult`1[[JustServe.Contracts.Responses.ProjectCard, JustServe.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Pagination.PaginationResult`1[[JustServe.Contracts.Responses.ProjectCard, JustServe.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]" + } + } + } + } + } + } + }, + "/api/v1/users/{userId}/favoriteOrganizations": { + "get": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.OrganizationResult" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.OrganizationResult" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.OrganizationResult" + } + } + } + } + } + } + } + }, + "/api/v2/users/{userId}/favoriteProjects": { + "get": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "page", + "in": "query", + "schema": { + "type": "integer", + "format": "int32", + "default": 0 + } + }, + { + "name": "size", + "in": "query", + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Pagination.PaginationResult`1[[JustServe.Contracts.Responses.ProjectCard, JustServe.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Pagination.PaginationResult`1[[JustServe.Contracts.Responses.ProjectCard, JustServe.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Pagination.PaginationResult`1[[JustServe.Contracts.Responses.ProjectCard, JustServe.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]" + } + } + } + } + } + } + }, + "/api/v2/users/{userId}/favoriteProjects/{page}/{size}": { + "get": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "page", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 0 + } + }, + { + "name": "size", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Pagination.PaginationResult`1[[JustServe.Contracts.Responses.ProjectCard, JustServe.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Pagination.PaginationResult`1[[JustServe.Contracts.Responses.ProjectCard, JustServe.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Pagination.PaginationResult`1[[JustServe.Contracts.Responses.ProjectCard, JustServe.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]" + } + } + } + } + } + } + }, + "/api/v1/unsubscribe/contactpreferences/{token}": { + "get": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "token", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ActionResult`1[[JustServe.Entities.UserNotificationPreference, JustServe.Entities, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ActionResult`1[[JustServe.Entities.UserNotificationPreference, JustServe.Entities, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ActionResult`1[[JustServe.Entities.UserNotificationPreference, JustServe.Entities, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]" + } + } + } + } + } + } + }, + "/api/v2/users/{userId}/pastProjects": { + "get": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "page", + "in": "query", + "schema": { + "type": "integer", + "format": "int32", + "default": 0 + } + }, + { + "name": "size", + "in": "query", + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Pagination.PaginationResult`1[[JustServe.Contracts.Responses.ProjectCard, JustServe.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Pagination.PaginationResult`1[[JustServe.Contracts.Responses.ProjectCard, JustServe.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Pagination.PaginationResult`1[[JustServe.Contracts.Responses.ProjectCard, JustServe.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]" + } + } + } + } + } + } + }, + "/api/v2/users/{userId}/pastProjects/{page}/{size}": { + "get": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "page", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 0 + } + }, + { + "name": "size", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Pagination.PaginationResult`1[[JustServe.Contracts.Responses.ProjectCard, JustServe.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Pagination.PaginationResult`1[[JustServe.Contracts.Responses.ProjectCard, JustServe.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Pagination.PaginationResult`1[[JustServe.Contracts.Responses.ProjectCard, JustServe.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]" + } + } + } + } + } + } + }, + "/api/v1/users/{userId}/recordofservice/{year}": { + "get": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "year", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.RecordOfService" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.RecordOfService" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.RecordOfService" + } + } + } + } + } + } + } + }, + "/api/v1/users/{userId}/limited": { + "get": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserResultLimited" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserResultLimited" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserResultLimited" + } + } + } + } + } + } + }, + "/api/v1/users/{userId}/name": { + "get": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Name" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Name" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Name" + } + } + } + } + } + } + }, + "/api/v1/users/{userId}/volunteeredProjects": { + "get": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectPreview" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectPreview" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectPreview" + } + } + } + } + } + } + } + }, + "/api/v1/users/recovery": { + "post": { + "tags": [ + "User" + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.RecoverAccountViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.RecoverAccountViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.RecoverAccountViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.RecoverAccountViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/users": { + "post": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "FirstName", + "in": "query", + "required": true, + "schema": { + "maxLength": 50, + "minLength": 1, + "type": "string" + } + }, + { + "name": "LastName", + "in": "query", + "required": true, + "schema": { + "maxLength": 50, + "minLength": 1, + "type": "string" + } + }, + { + "name": "Email", + "in": "query", + "required": true, + "schema": { + "pattern": "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$", + "type": "string" + } + }, + { + "name": "Password", + "in": "query", + "required": true, + "schema": { + "maxLength": 100, + "minLength": 8, + "type": "string", + "format": "password" + } + }, + { + "name": "Postal", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "City", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Language", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ClientId", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ClientSecret", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Latitude", + "in": "query", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "Longitude", + "in": "query", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "Country", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "CountryCode", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "AppleToken", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "AppleAuthCode", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "GoogleToken", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "FacebookToken", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "UserName", + "in": "query", + "schema": { + "type": "string", + "deprecated": true + } + }, + { + "name": "CountryCodeAlpha3", + "in": "query", + "schema": { + "type": "string", + "deprecated": true + } + }, + { + "name": "State", + "in": "query", + "schema": { + "type": "string", + "deprecated": true + } + }, + { + "name": "Address", + "in": "query", + "schema": { + "type": "string", + "deprecated": true + } + }, + { + "name": "DistanceUnits", + "in": "query", + "schema": { + "type": "string", + "deprecated": true + } + }, + { + "name": "Clock", + "in": "query", + "schema": { + "type": "string", + "deprecated": true + } + }, + { + "name": "Skills", + "in": "query", + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "deprecated": true + } + }, + { + "name": "Interests", + "in": "query", + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "deprecated": true + } + }, + { + "name": "Tools", + "in": "query", + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "deprecated": true + } + }, + { + "name": "DaysAvailable", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/System.DayOfWeek" + }, + "deprecated": true + } + }, + { + "name": "TimesAvailable", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.TimeOfDay" + }, + "deprecated": true + } + }, + { + "name": "DisasterReliefRegistrationSeen", + "in": "query", + "schema": { + "type": "boolean", + "deprecated": true + } + }, + { + "name": "DonateToDisasterReliefChecked", + "in": "query", + "schema": { + "type": "boolean", + "deprecated": true + } + }, + { + "name": "VolunteerForDisasterReliefChecked", + "in": "query", + "schema": { + "type": "boolean", + "deprecated": true + } + }, + { + "name": "DisasterReliefAvailabilityDate", + "in": "query", + "schema": { + "type": "string", + "format": "date-time", + "deprecated": true + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "string" + } + }, + "application/json": { + "schema": { + "type": "string" + } + }, + "text/json": { + "schema": { + "type": "string" + } + } + } + } + } + } + }, + "/api/v1/users/activation/resend": { + "post": { + "tags": [ + "User" + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.ResendActivationEmail" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.ResendActivationEmail" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.ResendActivationEmail" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.ResendActivationEmail" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "string" + } + }, + "application/json": { + "schema": { + "type": "string" + } + }, + "text/json": { + "schema": { + "type": "string" + } + } + } + } + } + } + }, + "/api/v1/users/recovery/{token}": { + "post": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "token", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.ResetPasswordViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.ResetPasswordViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.ResetPasswordViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.ResetPasswordViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/users/search/admins/reps": { + "post": { + "tags": [ + "User" + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SearchUsersViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SearchUsersViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SearchUsersViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SearchUsersViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserSearchResults" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserSearchResults" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserSearchResults" + } + } + } + } + } + } + }, + "/api/v1/users/search/admins": { + "post": { + "tags": [ + "User" + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SearchUsersViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SearchUsersViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SearchUsersViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SearchUsersViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserSearchResults" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserSearchResults" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserSearchResults" + } + } + } + } + } + } + }, + "/api/v1/users/search": { + "post": { + "tags": [ + "User" + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SearchUsersViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SearchUsersViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SearchUsersViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SearchUsersViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserSearchResults" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserSearchResults" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserSearchResults" + } + } + } + } + } + } + }, + "/api/v1/users/search/limited": { + "post": { + "tags": [ + "User" + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SearchUsersViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SearchUsersViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SearchUsersViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SearchUsersViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserSearchResults" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserSearchResults" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserSearchResults" + } + } + } + } + } + } + }, + "/api/v1/users/slimSearch": { + "post": { + "tags": [ + "User" + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SearchUsersViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SearchUsersViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SearchUsersViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.SearchUsersViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserSlimSearchResults" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserSlimSearchResults" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserSlimSearchResults" + } + } + } + } + } + } + }, + "/api/v1/users/signout": { + "get": { + "tags": [ + "User" + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/users/{id}/unlock": { + "get": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "string" + } + }, + "application/json": { + "schema": { + "type": "string" + } + }, + "text/json": { + "schema": { + "type": "string" + } + } + } + } + } + } + }, + "/api/v1/unsubscribe/{token}": { + "get": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "token", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "generalMarketingOptIn", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "volunteerNewsletter", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "disasterRecovery", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/users/{userId}/keywords": { + "put": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "type": "string" + } + }, + "application/json": { + "schema": { + "type": "string" + } + }, + "text/json": { + "schema": { + "type": "string" + } + }, + "application/*+json": { + "schema": { + "type": "string" + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/users/{userId}/location": { + "put": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "City", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Postal", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "CountryCode", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/users/{id}/whatsnew": { + "put": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "string" + } + }, + "application/json": { + "schema": { + "type": "string" + } + }, + "text/json": { + "schema": { + "type": "string" + } + } + } + } + } + } + }, + "/api/v1/users/{userId}/boundaries/check": { + "get": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserLocationCheckResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserLocationCheckResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserLocationCheckResponse" + } + } + } + } + } + } + }, + "/api/v1/users/{userId}/assignments/check": { + "get": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserLocationCheckResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserLocationCheckResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserLocationCheckResponse" + } + } + } + } + } + } + }, + "/api/v1/users/{userId}/adminInfo": { + "get": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.AdminLiteInfo" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.AdminLiteInfo" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.AdminLiteInfo" + } + } + } + } + } + } + }, + "/api/v1/users/{userId}/adminPendingProjects": { + "post": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.AdminPendingProjectsSearchRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.AdminPendingProjectsSearchRequest" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.AdminPendingProjectsSearchRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.AdminPendingProjectsSearchRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Pagination.PaginationResult`1[[System.Collections.Generic.IEnumerable`1[[JustServe.Contracts.Responses.UserPendingProject, JustServe.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Pagination.PaginationResult`1[[System.Collections.Generic.IEnumerable`1[[JustServe.Contracts.Responses.UserPendingProject, JustServe.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Pagination.PaginationResult`1[[System.Collections.Generic.IEnumerable`1[[JustServe.Contracts.Responses.UserPendingProject, JustServe.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]" + } + } + } + } + } + } + }, + "/api/v1/users/{userId}/adminPendingProjectCounts": { + "get": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.AdminPendingProjectCounts" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.AdminPendingProjectCounts" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.AdminPendingProjectCounts" + } + } + } + } + } + } + }, + "/api/v1/users/quickSearch": { + "post": { + "tags": [ + "User" + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.QuickSearchCreateRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.QuickSearchCreateRequest" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.QuickSearchCreateRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.QuickSearchCreateRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/users/quickSearch/searchType/{searchType}": { + "get": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "searchType", + "in": "path", + "required": true, + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.QuickSearchType" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.QuickSearchTitle" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.QuickSearchTitle" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.QuickSearchTitle" + } + } + } + } + } + } + } + }, + "/api/v1/users/quickSearch/{quickSearchId}/searchParameter": { + "get": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "quickSearchId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "string" + } + }, + "application/json": { + "schema": { + "type": "string" + } + }, + "text/json": { + "schema": { + "type": "string" + } + } + } + } + } + } + }, + "/api/v1/users/quickSearch/{quickSearchId}": { + "delete": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "quickSearchId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "string" + } + }, + "application/json": { + "schema": { + "type": "string" + } + }, + "text/json": { + "schema": { + "type": "string" + } + } + } + } + } + } + }, + "/api/v1/users/securitycontext/bearer": { + "get": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "userId", + "in": "query", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Authentication.SecurityContext" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Authentication.SecurityContext" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Authentication.SecurityContext" + } + } + } + } + } + } + }, + "/api/v1/users/securitycontext/bearer/{userId}": { + "get": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Authentication.SecurityContext" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Authentication.SecurityContext" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Authentication.SecurityContext" + } + } + } + } + } + } + }, + "/api/v1/users/securitycontext/optional": { + "get": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "userId", + "in": "query", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Authentication.SecurityContext" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Authentication.SecurityContext" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Authentication.SecurityContext" + } + } + } + } + } + } + }, + "/api/v1/users/securitycontext/optional/{userId}": { + "get": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Authentication.SecurityContext" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Authentication.SecurityContext" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Authentication.SecurityContext" + } + } + } + } + } + } + }, + "/api/v1/users/{userId}/churchGeographyAdminLabelEnums/{churchGeographyAdminLabelEnumId}": { + "post": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "churchGeographyAdminLabelEnumId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + }, + "delete": { + "tags": [ + "User" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "churchGeographyAdminLabelEnumId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/widget/user/{id}": { + "get": { + "tags": [ + "Widget" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Widget" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Widget" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Widget" + } + } + } + } + } + } + } + }, + "/api/v1/widget/projects/search": { + "post": { + "tags": [ + "Widget" + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.WidgetProjectSearchModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.WidgetProjectSearchModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.WidgetProjectSearchModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.WidgetProjectSearchModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.WidgetProjectResults" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.WidgetProjectResults" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.WidgetProjectResults" + } + } + } + } + } + } + }, + "/api/v1/widget/projects/all": { + "post": { + "tags": [ + "Widget" + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.WidgetRequestModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.WidgetRequestModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.WidgetRequestModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.WidgetRequestModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Pagination.PaginationResult`1[[System.Collections.Generic.IEnumerable`1[[JustServe.Contracts.Responses.VolunteerMatchProject, JustServe.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Pagination.PaginationResult`1[[System.Collections.Generic.IEnumerable`1[[JustServe.Contracts.Responses.VolunteerMatchProject, JustServe.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Pagination.PaginationResult`1[[System.Collections.Generic.IEnumerable`1[[JustServe.Contracts.Responses.VolunteerMatchProject, JustServe.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]" + } + } + } + } + } + } + }, + "/api/v1/contact/projects/all": { + "post": { + "tags": [ + "Widget" + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.WidgetRequestModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.WidgetRequestModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.WidgetRequestModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.WidgetRequestModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.MSDynamicsProjectResults" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.MSDynamicsProjectResults" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.MSDynamicsProjectResults" + } + } + } + } + } + } + }, + "/api/v1/contact/users/all": { + "post": { + "tags": [ + "Widget" + ], + "parameters": [ + { + "name": "NewsletterOnly", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.WidgetRequestModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.WidgetRequestModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.WidgetRequestModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.WidgetRequestModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.MSDynamicsUserResults" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.MSDynamicsUserResults" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.MSDynamicsUserResults" + } + } + } + } + } + } + }, + "/api/v1/contact/users/all/newsletterOnly/{NewsletterOnly}": { + "post": { + "tags": [ + "Widget" + ], + "parameters": [ + { + "name": "NewsletterOnly", + "in": "path", + "required": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.WidgetRequestModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.WidgetRequestModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.WidgetRequestModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.WidgetRequestModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.MSDynamicsUserResults" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.MSDynamicsUserResults" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.MSDynamicsUserResults" + } + } + } + } + } + } + }, + "/api/v1/contact/dynamics": { + "post": { + "tags": [ + "Widget" + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.WidgetRequestModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.WidgetRequestModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.WidgetRequestModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.WidgetRequestModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Users.DynamicsNewsletterInfoAllUsers" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Users.DynamicsNewsletterInfoAllUsers" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Users.DynamicsNewsletterInfoAllUsers" + } + } + } + } + } + } + }, + "/api/v1/contact/dynamics/metadata": { + "post": { + "tags": [ + "Widget" + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.WidgetRequestModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.WidgetRequestModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.WidgetRequestModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.WidgetRequestModel" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Users.DynamicsNewsletterInfoMetadata" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Users.DynamicsNewsletterInfoMetadata" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JustServe.Contracts.Users.DynamicsNewsletterInfoMetadata" + } + } + } + } + } + } + }, + "/api/v1/contact/projectFilterTranslations": { + "get": { + "tags": [ + "Widget" + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectFiltersTranslation" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectFiltersTranslation" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectFiltersTranslation" + } + } + } + } + } + } + } + } + }, + "components": { + "schemas": { + "JustServe.API.Controllers.CorusController+CorusPage": { + "enum": [ + "HelpCenter", + "Training", + "Articles" + ], + "type": "integer", + "format": "int32" + }, + "JustServe.Contracts.Authentication.BoundaryAdminBounded": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "firstName": { + "type": "string", + "nullable": true + }, + "lastName": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.Role" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Authentication.BoundaryPermissionBounded": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "boundary": { + "type": "string", + "nullable": true + }, + "admins": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Authentication.BoundaryAdminBounded" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Authentication.ChurchCivicGeographyUserRole": { + "type": "object", + "properties": { + "churchGeographyId": { + "type": "string", + "format": "uuid" + }, + "unitId": { + "type": "string", + "nullable": true + }, + "role": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.Role" + }, + "civicGeographyId": { + "type": "string", + "format": "uuid" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Authentication.ChurchGeographyUserRole": { + "type": "object", + "properties": { + "churchGeographyId": { + "type": "string", + "format": "uuid" + }, + "unitId": { + "type": "string", + "nullable": true + }, + "role": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.Role" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Authentication.CivicGeoBounded": { + "type": "object", + "properties": { + "civicGeographyId": { + "type": "string", + "nullable": true + }, + "civicGeographyName": { + "type": "string", + "nullable": true + }, + "civicGeographyType": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.GeographyType" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Authentication.OrganizationCivicGeographyUserRole": { + "type": "object", + "properties": { + "organizationId": { + "type": "string", + "format": "uuid" + }, + "role": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.Role" + }, + "civicGeographyId": { + "type": "string", + "format": "uuid" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Authentication.OrganizationUserRole": { + "type": "object", + "properties": { + "organizationId": { + "type": "string", + "format": "uuid" + }, + "role": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.Role" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Authentication.SecurityContext": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "format": "uuid" + }, + "userRepresentativeForOrganizations": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "nullable": true + }, + "churchGeographies": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/JustServe.Contracts.Authentication.ChurchGeographyUserRole" + }, + "nullable": true + }, + "civicGeographies": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/JustServe.Contracts.Authentication.ChurchCivicGeographyUserRole" + }, + "nullable": true + }, + "organizationRoles": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/JustServe.Contracts.Authentication.OrganizationUserRole" + }, + "nullable": true + }, + "organizationCivicGeographyUserRoles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Authentication.OrganizationCivicGeographyUserRole" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Authentication.Token": { + "type": "object", + "properties": { + "accessToken": { + "type": "string", + "nullable": true + }, + "tokenType": { + "type": "string", + "nullable": true + }, + "refreshToken": { + "type": "string", + "nullable": true + }, + "clientId": { + "type": "string", + "nullable": true + }, + "expiresIn": { + "type": "integer", + "format": "int32" + }, + "issued": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Corus.Article": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "title": { + "type": "string", + "nullable": true + }, + "introduction": { + "type": "string", + "nullable": true + }, + "body": { + "type": "string", + "nullable": true + }, + "permalink": { + "type": "string", + "nullable": true + }, + "media": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Corus.Media" + }, + "nullable": true + }, + "createdDate": { + "type": "string", + "format": "date-time" + }, + "createdByUser": { + "type": "string", + "nullable": true + }, + "modifiedDate": { + "type": "string", + "format": "date-time" + }, + "modifiedByUser": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Corus.ArticleChapter": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "title": { + "type": "string", + "nullable": true + }, + "body": { + "type": "string", + "nullable": true + }, + "createdDate": { + "type": "string", + "format": "date-time" + }, + "createdByUser": { + "type": "string", + "nullable": true + }, + "modifiedDate": { + "type": "string", + "format": "date-time" + }, + "modifiedByUser": { + "type": "string", + "nullable": true + }, + "pages": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Corus.ArticlePage" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Corus.ArticlePage": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "pageType": { + "type": "string", + "nullable": true + }, + "title": { + "type": "string", + "nullable": true + }, + "body": { + "type": "string", + "nullable": true + }, + "permalink": { + "type": "string", + "nullable": true + }, + "media": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Corus.Media" + }, + "nullable": true + }, + "createdDate": { + "type": "string", + "format": "date-time" + }, + "createdByUser": { + "type": "string", + "nullable": true + }, + "modifiedDate": { + "type": "string", + "format": "date-time" + }, + "modifiedByUser": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Corus.ArticlesDataSet": { + "type": "object", + "properties": { + "article": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Corus.Article" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Corus.ChaptersDataSet": { + "type": "object", + "properties": { + "articleChapters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Corus.ArticleChapter" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Corus.Media": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "title": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "filename": { + "type": "string", + "nullable": true + }, + "type": { + "type": "string", + "nullable": true + }, + "placementType": { + "type": "string", + "nullable": true + }, + "size": { + "type": "string", + "nullable": true + }, + "options": { + "type": "string", + "nullable": true + }, + "altCaption": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Corus.PagesDataSet": { + "type": "object", + "properties": { + "pages": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Corus.ArticlePage" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Enums.AdminProjectSearchFilter": { + "enum": [ + "None", + "All", + "Location", + "Administrator", + "Keyword", + "Label", + "Email", + "Organization", + "Contact" + ], + "type": "integer", + "format": "int32" + }, + "JustServe.Contracts.Enums.AdminSearchOrderBy": { + "enum": [ + "None", + "Relativity", + "Recent", + "Title", + "OwnerName", + "CityState", + "Created" + ], + "type": "integer", + "format": "int32" + }, + "JustServe.Contracts.Enums.AdminSubordinateFilterModifier": { + "enum": [ + "AdminOnly", + "SubordinatesOnly", + "Both" + ], + "type": "integer", + "format": "int32" + }, + "JustServe.Contracts.Enums.AttachmentType": { + "enum": [ + "Other", + "Image", + "Thumbnail", + "MainImage", + "Banner", + "Document", + "Pdf", + "Spreadsheet", + "Presentation" + ], + "type": "integer", + "format": "int32" + }, + "JustServe.Contracts.Enums.BoundaryType": { + "enum": [ + "LdsGeography", + "Organization" + ], + "type": "integer", + "format": "int32" + }, + "JustServe.Contracts.Enums.DefaultSection": { + "enum": [ + "Organizations", + "Projects", + "Questions", + "AboutUs", + "Give" + ], + "type": "integer", + "format": "int32" + }, + "JustServe.Contracts.Enums.DistanceType": { + "enum": [ + "None", + "Miles", + "Kilometers" + ], + "type": "integer", + "format": "int32" + }, + "JustServe.Contracts.Enums.DynamicRouteType": { + "enum": [ + "Organization", + "DisasterRelief" + ], + "type": "integer", + "format": "int32" + }, + "JustServe.Contracts.Enums.EndorsementStatus": { + "enum": [ + "Approved", + "RequestedByOrg", + "RequestedByVolunteerCenter", + "Rejected", + "Deleted" + ], + "type": "integer", + "format": "int32" + }, + "JustServe.Contracts.Enums.GeographyType": { + "enum": [ + "All", + "Area", + "Mission", + "CC", + "Stake", + "Country", + "State", + "County", + "City", + "Zipcode", + "Neighborhood", + "National", + "None" + ], + "type": "integer", + "format": "int32" + }, + "JustServe.Contracts.Enums.Lang": { + "enum": [ + "None", + "EN", + "GB", + "ES", + "FR", + "PT", + "HU", + "DE" + ], + "type": "integer", + "format": "int32" + }, + "JustServe.Contracts.Enums.NotificationLevel": { + "enum": [ + "None", + "Action", + "Information" + ], + "type": "integer", + "format": "int32" + }, + "JustServe.Contracts.Enums.NotificationStatus": { + "enum": [ + "Unseen", + "Seen" + ], + "type": "integer", + "format": "int32" + }, + "JustServe.Contracts.Enums.NotificationType": { + "enum": [ + "ProjectApprovalNotification", + "ProjectExpirationNotification", + "ProjectEscalatedNotification", + "ProjectEscalatedToAnotherUserNotification", + "ChurchAdminChangedNotification", + "OrganizationAdminAddedNotification", + "Unused2", + "ProjectChangedNotification", + "ProjectFinishedSuccessStoryNotification", + "ProjectUpcomingNotification", + "Unused3", + "ProjectOccurredNotification", + "NewNearbyProjectNotification", + "Unused4", + "NewFavoritedProjectNotification", + "NewSuccessStoryNotification", + "Unused5", + "AccountUpdatedNotification", + "Unused6", + "ProfileCompletionNotification", + "AnnouncementCustomNotification", + "WhatsNewCustomNotification", + "DisasterRecoveryCustomNotificaiton", + "BannerCustomNotification", + "Unknown" + ], + "type": "integer", + "format": "int32" + }, + "JustServe.Contracts.Enums.OrganizationStatus": { + "enum": [ + "None", + "Active", + "Pending", + "Inactive" + ], + "type": "integer", + "format": "int32" + }, + "JustServe.Contracts.Enums.OrganizationType": { + "enum": [ + "None", + "Organization", + "VolunteerCenter", + "DisasterRelief", + "NonProfit", + "GovCity", + "GovCounty", + "GovState", + "GovNational", + "Corporation", + "ClubAffiliated", + "ClubJustServe", + "Religious", + "Service", + "Disaster", + "CampaignNational", + "CampaignGlobal" + ], + "type": "integer", + "format": "int32" + }, + "JustServe.Contracts.Enums.OwnerType": { + "enum": [ + "User", + "Organization" + ], + "type": "integer", + "format": "int32" + }, + "JustServe.Contracts.Enums.PrivacyTermsType": { + "enum": [ + "None", + "PrivacyPolicy", + "TermsOfUse" + ], + "type": "integer", + "format": "int32" + }, + "JustServe.Contracts.Enums.ProjectEventStatus": { + "enum": [ + "Active", + "OnHold", + "Cancelled" + ], + "type": "integer", + "format": "int32" + }, + "JustServe.Contracts.Enums.ProjectLocationType": { + "enum": [ + "None", + "SingleLocation", + "Regional", + "Remote" + ], + "type": "integer", + "format": "int32" + }, + "JustServe.Contracts.Enums.ProjectSearchOrderBy": { + "enum": [ + "None", + "Relativity", + "Recent", + "Title", + "TitleReverse", + "Created", + "NextOpportunity", + "Distance" + ], + "type": "integer", + "format": "int32" + }, + "JustServe.Contracts.Enums.ProjectSignupType": { + "enum": [ + "JustServeSignUp", + "Redirect" + ], + "type": "integer", + "format": "int32" + }, + "JustServe.Contracts.Enums.ProjectStatus": { + "enum": [ + "None", + "Published", + "Submitted", + "Draft", + "Template", + "OnHold", + "Cancelled", + "Declined" + ], + "type": "integer", + "format": "int32" + }, + "JustServe.Contracts.Enums.ProjectTimeType": { + "enum": [ + "SingleDay", + "MultipleDays", + "Recurring", + "Ongoing" + ], + "type": "integer", + "format": "int32" + }, + "JustServe.Contracts.Enums.ProjectType": { + "enum": [ + "None", + "DTL", + "Ongoing", + "Recurring", + "MultipleDTL" + ], + "type": "integer", + "format": "int32" + }, + "JustServe.Contracts.Enums.QuickSearchType": { + "enum": [ + "AdminProject", + "AdminUser" + ], + "type": "integer", + "format": "int32" + }, + "JustServe.Contracts.Enums.RecurringType": { + "enum": [ + "None", + "Weekly", + "Monthly", + "DayOfMonth" + ], + "type": "integer", + "format": "int32" + }, + "JustServe.Contracts.Enums.Role": { + "enum": [ + "none", + "city", + "county", + "state", + "country", + "orgAdmin", + "orgLeadAdmin", + "stakeAdmin", + "stakeLeadAdmin", + "ccAdmin", + "ccLeadAdmin", + "missionAdmin", + "missionLeadAdmin", + "nationalAdmin", + "nationalLeadAdmin", + "areaAdmin", + "areaLeadAdmin", + "globalAdmin", + "globalLeadAdmin", + "developer" + ], + "type": "integer", + "format": "int32" + }, + "JustServe.Contracts.Enums.SearchFilter": { + "enum": [ + "None", + "All", + "Location", + "Administrator", + "Keyword", + "Label", + "Email" + ], + "type": "integer", + "format": "int32" + }, + "JustServe.Contracts.Enums.SearchLocationType": { + "enum": [ + "Radius", + "State", + "Regional", + "None" + ], + "type": "integer", + "format": "int32" + }, + "JustServe.Contracts.Enums.SortByFilterModifier": { + "enum": [ + "Ascending", + "Descending" + ], + "type": "integer", + "format": "int32" + }, + "JustServe.Contracts.Enums.TimeOfDay": { + "enum": [ + "None", + "Morning", + "Afternoon", + "Evening" + ], + "type": "integer", + "format": "int32" + }, + "JustServe.Contracts.Geographies.ChurchGeoTranslation": { + "type": "object", + "properties": { + "churchGeoName": { + "type": "string", + "nullable": true + }, + "language": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Geographies.ChurchGeographyAdminLabelEnum": { + "type": "object", + "properties": { + "adminLabelId": { + "type": "string", + "format": "uuid" + }, + "adminLabelName": { + "type": "string", + "nullable": true + }, + "adminLabelDescription": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Geographies.CountryInfo": { + "type": "object", + "properties": { + "twoCharCode": { + "type": "string", + "nullable": true + }, + "threeCharCode": { + "type": "string", + "nullable": true + }, + "countryPhone": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Geographies.CountryNameInfo": { + "type": "object", + "properties": { + "usePostal": { + "type": "boolean" + }, + "countryName": { + "type": "string", + "nullable": true + }, + "twoCharCode": { + "type": "string", + "nullable": true + }, + "threeCharCode": { + "type": "string", + "nullable": true + }, + "countryPhone": { + "type": "string", + "nullable": true + }, + "countryId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Geographies.GeographyBounded": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.GeographyType" + }, + "civicCountryId": { + "type": "string", + "nullable": true + }, + "civicStateId": { + "type": "string", + "nullable": true + }, + "civicCountyId": { + "type": "string", + "nullable": true + }, + "civicCityId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Geographies.LDSGeography": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.GeographyType" + }, + "boundaryUpdated": { + "type": "string", + "format": "date-time" + }, + "unitId": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "churchGeoTranslations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Geographies.ChurchGeoTranslation" + }, + "nullable": true + }, + "areaId": { + "type": "string", + "nullable": true + }, + "missionId": { + "type": "string", + "nullable": true + }, + "ccId": { + "type": "string", + "nullable": true + }, + "stakeId": { + "type": "string", + "nullable": true + }, + "active": { + "type": "boolean" + }, + "country": { + "type": "string", + "nullable": true + }, + "latitude": { + "type": "number", + "format": "double" + }, + "longitude": { + "type": "number", + "format": "double" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.ImagePairDetails": { + "type": "object", + "properties": { + "full": { + "type": "string", + "nullable": true + }, + "thumb": { + "type": "string", + "nullable": true + }, + "title": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.LocaleNames": { + "type": "object", + "properties": { + "bcp47": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Locations.Location": { + "type": "object", + "properties": { + "mapId": { + "type": "string", + "nullable": true + }, + "fullDisplayAddress": { + "type": "string", + "nullable": true + }, + "address": { + "type": "string", + "nullable": true + }, + "suite": { + "type": "string", + "nullable": true + }, + "city": { + "type": "string", + "nullable": true + }, + "civicCityId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "neighborhood": { + "type": "string", + "nullable": true + }, + "county": { + "type": "string", + "nullable": true + }, + "state": { + "type": "string", + "nullable": true + }, + "postal": { + "type": "string", + "nullable": true + }, + "country": { + "type": "string", + "nullable": true + }, + "countryCode": { + "type": "string", + "nullable": true + }, + "missionId": { + "type": "string", + "nullable": true + }, + "ccId": { + "type": "string", + "nullable": true + }, + "stakeId": { + "type": "string", + "nullable": true + }, + "areaId": { + "type": "string", + "nullable": true + }, + "latitude": { + "type": "number", + "format": "double" + }, + "longitude": { + "type": "number", + "format": "double" + }, + "maxLatitude": { + "type": "number", + "format": "double" + }, + "minLatitude": { + "type": "number", + "format": "double" + }, + "maxLongitude": { + "type": "number", + "format": "double" + }, + "minLongitude": { + "type": "number", + "format": "double" + }, + "geoCodeOverride": { + "type": "boolean" + }, + "timezone": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Locations.LocationRad": { + "type": "object", + "properties": { + "mapId": { + "type": "string", + "nullable": true + }, + "fullDisplayAddress": { + "type": "string", + "nullable": true + }, + "address": { + "type": "string", + "nullable": true + }, + "suite": { + "type": "string", + "nullable": true + }, + "city": { + "type": "string", + "nullable": true + }, + "civicCityId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "neighborhood": { + "type": "string", + "nullable": true + }, + "county": { + "type": "string", + "nullable": true + }, + "state": { + "type": "string", + "nullable": true + }, + "postal": { + "type": "string", + "nullable": true + }, + "country": { + "type": "string", + "nullable": true + }, + "countryCode": { + "type": "string", + "nullable": true + }, + "missionId": { + "type": "string", + "nullable": true + }, + "ccId": { + "type": "string", + "nullable": true + }, + "stakeId": { + "type": "string", + "nullable": true + }, + "areaId": { + "type": "string", + "nullable": true + }, + "latitude": { + "type": "number", + "format": "double" + }, + "longitude": { + "type": "number", + "format": "double" + }, + "maxLatitude": { + "type": "number", + "format": "double" + }, + "minLatitude": { + "type": "number", + "format": "double" + }, + "maxLongitude": { + "type": "number", + "format": "double" + }, + "minLongitude": { + "type": "number", + "format": "double" + }, + "geoCodeOverride": { + "type": "boolean" + }, + "timezone": { + "type": "string", + "nullable": true + }, + "radiusType": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.DistanceType" + }, + "countryCode2Char": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Logging.ProjectOwnerLog": { + "type": "object", + "properties": { + "projectId": { + "type": "string", + "format": "uuid" + }, + "ownerUserId": { + "type": "string", + "format": "uuid" + }, + "ownerUserFirstName": { + "type": "string", + "nullable": true + }, + "ownerUserLastName": { + "type": "string", + "nullable": true + }, + "updated": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "updatedBy": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Logging.SearchLog": { + "type": "object", + "properties": { + "searchedOn": { + "type": "string", + "format": "date-time" + }, + "keywords": { + "type": "string", + "nullable": true + }, + "location": { + "type": "string", + "nullable": true + }, + "radius": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Logging.SignInLog": { + "type": "object", + "properties": { + "signedInOn": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Logging.UserHistory": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "userLocation": { + "$ref": "#/components/schemas/JustServe.Contracts.Locations.Location" + }, + "signInLogs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Logging.SignInLog" + }, + "nullable": true + }, + "searchLogs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Logging.SearchLog" + }, + "nullable": true + }, + "volunteerLogs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Logging.VolunteerLog" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Logging.VolunteerLog": { + "type": "object", + "properties": { + "volunteeredOn": { + "type": "string", + "format": "date-time" + }, + "projectId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Notifications.CustomNotification": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "locationId": { + "type": "string", + "nullable": true + }, + "locationName": { + "type": "string", + "nullable": true + }, + "geography": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.GeographyLimited" + }, + "geographyType": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.GeographyType" + }, + "type": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.NotificationType" + }, + "level": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.NotificationLevel" + }, + "title": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "lang": { + "type": "string", + "nullable": true + }, + "redirectLink": { + "type": "string", + "nullable": true + }, + "startDate": { + "type": "string", + "format": "date-time" + }, + "endDate": { + "type": "string", + "format": "date-time" + }, + "isAdminOnly": { + "type": "boolean" + }, + "created": { + "type": "string", + "format": "date-time" + }, + "updated": { + "type": "string", + "format": "date-time" + }, + "createdBy": { + "type": "string", + "nullable": true + }, + "updatedBy": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Notifications.CustomNotificationResult": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "locationId": { + "type": "string", + "nullable": true + }, + "locationName": { + "type": "string", + "nullable": true + }, + "geography": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.GeographyLimited" + }, + "geographyType": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.GeographyType" + }, + "type": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.NotificationType" + }, + "level": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.NotificationLevel" + }, + "title": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "lang": { + "type": "string", + "nullable": true + }, + "redirectLink": { + "type": "string", + "nullable": true + }, + "startDate": { + "type": "string", + "format": "date-time" + }, + "endDate": { + "type": "string", + "format": "date-time" + }, + "isAdminOnly": { + "type": "boolean" + }, + "created": { + "type": "string", + "format": "date-time" + }, + "updated": { + "type": "string", + "format": "date-time" + }, + "createdBy": { + "type": "string", + "nullable": true + }, + "updatedBy": { + "type": "string", + "nullable": true + }, + "userNotificationId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Notifications.Notification": { + "type": "object", + "properties": { + "notificationId": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.NotificationType" + }, + "level": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.NotificationLevel" + }, + "status": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.NotificationStatus" + }, + "createdDate": { + "type": "string", + "format": "date-time" + }, + "showDate": { + "type": "string", + "format": "date-time" + }, + "showEndDate": { + "type": "string", + "format": "date-time" + }, + "title": { + "type": "string", + "nullable": true + }, + "boundaryId": { + "type": "string", + "nullable": true + }, + "adminId": { + "type": "string", + "nullable": true + }, + "projectId": { + "type": "string", + "nullable": true + }, + "projectEventId": { + "type": "string", + "nullable": true + }, + "dtlId": { + "type": "string", + "nullable": true + }, + "timeSlotId": { + "type": "string", + "nullable": true + }, + "volunteeredRecurrenceId": { + "type": "string", + "nullable": true + }, + "successStoryId": { + "type": "string", + "nullable": true + }, + "organizationId": { + "type": "string", + "nullable": true + }, + "boundaryAdminUserId": { + "type": "string", + "nullable": true + }, + "customTitle": { + "type": "string", + "nullable": true + }, + "customDesc": { + "type": "string", + "nullable": true + }, + "customNotificationId": { + "type": "string", + "nullable": true + }, + "redirectLink": { + "type": "string", + "nullable": true + }, + "userId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Notifications.UserNotification": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "userId": { + "type": "string", + "nullable": true + }, + "notifications": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Notifications.Notification" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Organizations.Cause": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "imageName": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "projects": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Organizations.Endorsement": { + "type": "object", + "properties": { + "organizationId": { + "type": "string", + "nullable": true + }, + "updated": { + "type": "string", + "format": "date-time" + }, + "endorsementStatus": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.EndorsementStatus" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Organizations.OrgRepresentative": { + "type": "object", + "properties": { + "representativeUserId": { + "type": "string", + "format": "uuid" + }, + "created": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "createdBy": { + "type": "string", + "format": "uuid" + }, + "updated": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "updatedBy": { + "type": "string", + "format": "uuid", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Organizations.Organization": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "language": { + "type": "string", + "nullable": true + }, + "organizationType": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.OrganizationType" + }, + "endorsements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Organizations.Endorsement" + }, + "nullable": true + }, + "owners": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "representatives": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Organizations.OrgRepresentative" + }, + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "status": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.OrganizationStatus" + }, + "activationDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "firstStartTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "finalEndTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "website": { + "type": "string", + "nullable": true + }, + "autoRedirect": { + "type": "boolean" + }, + "url": { + "type": "string", + "nullable": true + }, + "internalURL": { + "type": "string", + "nullable": true + }, + "location": { + "$ref": "#/components/schemas/JustServe.Contracts.Locations.Location" + }, + "logo": { + "type": "string", + "nullable": true + }, + "banner": { + "type": "string", + "nullable": true + }, + "facebookPath": { + "type": "string", + "nullable": true + }, + "googlePath": { + "type": "string", + "nullable": true + }, + "twitterPath": { + "type": "string", + "nullable": true + }, + "youTubePath": { + "type": "string", + "nullable": true + }, + "instagramPath": { + "type": "string", + "nullable": true + }, + "linkedInPath": { + "type": "string", + "nullable": true + }, + "contactName": { + "type": "string", + "nullable": true + }, + "contactPhone": { + "type": "string", + "nullable": true + }, + "contactEmail": { + "type": "string", + "nullable": true + }, + "linkedProjects": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "created": { + "type": "string", + "format": "date-time" + }, + "updated": { + "type": "string", + "format": "date-time" + }, + "createdBy": { + "type": "string", + "nullable": true + }, + "updatedBy": { + "type": "string", + "nullable": true + }, + "deleted": { + "type": "boolean" + }, + "deletedOn": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "deletedBy": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "aboutUs": { + "type": "string", + "nullable": true + }, + "volunteerCenterInfo": { + "$ref": "#/components/schemas/JustServe.Contracts.Organizations.VolunteerCenterInfo" + }, + "projectsData": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectSlim" + }, + "nullable": true + }, + "totalProjectCount": { + "type": "integer", + "format": "int32" + }, + "userCanEndorse": { + "type": "boolean" + }, + "relativityScore": { + "type": "number", + "format": "double" + }, + "volunteerCenterParents": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.OrganizationSlim" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Organizations.OrganizationBounded": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "endorsements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Organizations.Endorsement" + }, + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "url": { + "type": "string", + "nullable": true + }, + "location": { + "$ref": "#/components/schemas/JustServe.Contracts.Locations.Location" + }, + "status": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.OrganizationStatus" + }, + "isLead": { + "type": "boolean" + }, + "type": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.OrganizationType" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Organizations.VolunteerCenterInfo": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "associatedProjects": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "defaultSection": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.DefaultSection" + }, + "organizationsEnabled": { + "type": "boolean" + }, + "projectsEnabled": { + "type": "boolean" + }, + "questionsEnabled": { + "type": "boolean" + }, + "aboutUsEnabled": { + "type": "boolean" + }, + "giveEnabled": { + "type": "boolean" + }, + "about": { + "type": "string", + "nullable": true + }, + "endorsedOrganizationsData": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.OrganizationResult" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Pagination.PaginationProjectSearchResult`1[[System.Collections.Generic.IEnumerable`1[[JustServe.Contracts.Responses.ProjectCard, JustServe.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]": { + "type": "object", + "properties": { + "pageNumber": { + "type": "integer", + "format": "int32" + }, + "pageSize": { + "type": "integer", + "format": "int32" + }, + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectCard" + }, + "nullable": true + }, + "pageCount": { + "type": "integer", + "format": "int32", + "nullable": true, + "readOnly": true + }, + "itemCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "searchLatitude": { + "type": "number", + "format": "double" + }, + "searchLongitude": { + "type": "number", + "format": "double" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Pagination.PaginationResult`1[[JustServe.Contracts.Responses.ProjectCard, JustServe.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]": { + "type": "object", + "properties": { + "pageNumber": { + "type": "integer", + "format": "int32" + }, + "pageSize": { + "type": "integer", + "format": "int32" + }, + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectCard" + }, + "pageCount": { + "type": "integer", + "format": "int32", + "nullable": true, + "readOnly": true + }, + "itemCount": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Pagination.PaginationResult`1[[System.Collections.Generic.IEnumerable`1[[JustServe.Contracts.Geographies.ChurchGeographyAdminLabelEnum, JustServe.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]": { + "type": "object", + "properties": { + "pageNumber": { + "type": "integer", + "format": "int32" + }, + "pageSize": { + "type": "integer", + "format": "int32" + }, + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Geographies.ChurchGeographyAdminLabelEnum" + }, + "nullable": true + }, + "pageCount": { + "type": "integer", + "format": "int32", + "nullable": true, + "readOnly": true + }, + "itemCount": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Pagination.PaginationResult`1[[System.Collections.Generic.IEnumerable`1[[JustServe.Contracts.Responses.ProjectAdmin, JustServe.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]": { + "type": "object", + "properties": { + "pageNumber": { + "type": "integer", + "format": "int32" + }, + "pageSize": { + "type": "integer", + "format": "int32" + }, + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectAdmin" + }, + "nullable": true + }, + "pageCount": { + "type": "integer", + "format": "int32", + "nullable": true, + "readOnly": true + }, + "itemCount": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Pagination.PaginationResult`1[[System.Collections.Generic.IEnumerable`1[[JustServe.Contracts.Responses.ProjectEventCustom, JustServe.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]": { + "type": "object", + "properties": { + "pageNumber": { + "type": "integer", + "format": "int32" + }, + "pageSize": { + "type": "integer", + "format": "int32" + }, + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectEventCustom" + }, + "nullable": true + }, + "pageCount": { + "type": "integer", + "format": "int32", + "nullable": true, + "readOnly": true + }, + "itemCount": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Pagination.PaginationResult`1[[System.Collections.Generic.IEnumerable`1[[JustServe.Contracts.Responses.UserPendingProject, JustServe.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]": { + "type": "object", + "properties": { + "pageNumber": { + "type": "integer", + "format": "int32" + }, + "pageSize": { + "type": "integer", + "format": "int32" + }, + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserPendingProject" + }, + "nullable": true + }, + "pageCount": { + "type": "integer", + "format": "int32", + "nullable": true, + "readOnly": true + }, + "itemCount": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Pagination.PaginationResult`1[[System.Collections.Generic.IEnumerable`1[[JustServe.Contracts.Responses.VolunteerLiteDetails, JustServe.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]": { + "type": "object", + "properties": { + "pageNumber": { + "type": "integer", + "format": "int32" + }, + "pageSize": { + "type": "integer", + "format": "int32" + }, + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.VolunteerLiteDetails" + }, + "nullable": true + }, + "pageCount": { + "type": "integer", + "format": "int32", + "nullable": true, + "readOnly": true + }, + "itemCount": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Pagination.PaginationResult`1[[System.Collections.Generic.IEnumerable`1[[JustServe.Contracts.Responses.VolunteerMatchProject, JustServe.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]": { + "type": "object", + "properties": { + "pageNumber": { + "type": "integer", + "format": "int32" + }, + "pageSize": { + "type": "integer", + "format": "int32" + }, + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.VolunteerMatchProject" + }, + "nullable": true + }, + "pageCount": { + "type": "integer", + "format": "int32", + "nullable": true, + "readOnly": true + }, + "itemCount": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.PrivacyTerms": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.PrivacyTermsType" + }, + "language": { + "type": "string", + "nullable": true + }, + "country": { + "type": "string", + "nullable": true + }, + "title": { + "type": "string", + "nullable": true + }, + "html": { + "type": "string", + "nullable": true + }, + "updated": { + "type": "string", + "format": "date-time" + }, + "publishedDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Projects.AdminInfo": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "nullable": true + }, + "firstName": { + "type": "string", + "nullable": true + }, + "lastName": { + "type": "string", + "nullable": true + }, + "email": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Projects.Applicant": { + "type": "object", + "properties": { + "submitterUserId": { + "type": "string", + "nullable": true + }, + "firstName": { + "type": "string", + "nullable": true + }, + "lastName": { + "type": "string", + "nullable": true + }, + "email": { + "type": "string", + "nullable": true + }, + "phone": { + "type": "string", + "nullable": true + }, + "postal": { + "type": "string", + "nullable": true + }, + "applicantPostal": { + "type": "string", + "nullable": true + }, + "applicantCity": { + "type": "string", + "nullable": true + }, + "applicantCountry": { + "type": "string", + "nullable": true + }, + "applicantCountryCode": { + "type": "string", + "nullable": true + }, + "assignmentLevel": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.GeographyType" + }, + "assignedOn": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Projects.Contact": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "phone": { + "type": "string", + "nullable": true + }, + "email": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Projects.DTL": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "timeSlots": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.TimeSlot" + }, + "nullable": true + }, + "locationName": { + "type": "string", + "nullable": true + }, + "locationLink": { + "type": "string", + "nullable": true + }, + "location": { + "$ref": "#/components/schemas/JustServe.Contracts.Locations.Location" + }, + "specialDirections": { + "type": "string", + "nullable": true + }, + "specialDirectionsLanguage": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "boundaries": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.RegionCivicGeography" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Projects.OnGoing": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "start": { + "type": "string", + "format": "date-time" + }, + "renewDate": { + "type": "string", + "format": "date-time" + }, + "end": { + "type": "string", + "format": "date-time" + }, + "schedule": { + "type": "string", + "nullable": true + }, + "scheduleLanguage": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "specialDirections": { + "type": "string", + "nullable": true + }, + "specialDirectionsLanguage": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "locationName": { + "type": "string", + "nullable": true + }, + "locationLink": { + "type": "string", + "nullable": true + }, + "location": { + "$ref": "#/components/schemas/JustServe.Contracts.Locations.Location" + }, + "interested": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.OngoingInterestRO" + }, + "nullable": true + }, + "contacts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Contact" + }, + "nullable": true + }, + "boundaries": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.RegionCivicGeography" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Projects.OngoingHoursServed": { + "type": "object", + "properties": { + "servedOn": { + "type": "string", + "format": "date-time" + }, + "hoursServed": { + "type": "number", + "format": "double" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Projects.OngoingInterestRO": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "nullable": true + }, + "interestedId": { + "type": "string", + "nullable": true + }, + "volunteerId": { + "type": "string", + "nullable": true + }, + "interestedLanguage": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "email": { + "type": "string", + "nullable": true + }, + "phone": { + "type": "string", + "nullable": true + }, + "schedule": { + "type": "string", + "nullable": true + }, + "date": { + "type": "string", + "format": "date-time" + }, + "groupSize": { + "type": "integer", + "format": "int32" + }, + "hoursServed": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.OngoingHoursServed" + }, + "nullable": true + }, + "adminReportedHours": { + "type": "number", + "format": "double" + }, + "interestedOn": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Projects.Org": { + "type": "object", + "properties": { + "authorization": { + "type": "boolean" + }, + "organizationAuthorization": { + "type": "boolean", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "url": { + "type": "string", + "nullable": true + }, + "internalUrl": { + "type": "string", + "nullable": true + }, + "organizationId": { + "type": "string", + "nullable": true + }, + "reviewedBy": { + "type": "string", + "nullable": true + }, + "reviewedOn": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "linked": { + "type": "boolean" + }, + "logo": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Projects.Project": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "projectOwners": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.ProjectOwner" + }, + "nullable": true + }, + "projectOwnerLocation": { + "$ref": "#/components/schemas/JustServe.Contracts.Locations.Location" + }, + "ownerLog": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Logging.ProjectOwnerLog" + }, + "nullable": true + }, + "projectType": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.ProjectType" + }, + "status": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.ProjectStatus" + }, + "publishDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "language": { + "type": "string", + "nullable": true + }, + "country": { + "type": "string", + "nullable": true + }, + "title": { + "type": "string", + "nullable": true + }, + "shortDescription": { + "type": "string", + "nullable": true + }, + "longDescription": { + "type": "string", + "nullable": true + }, + "logo": { + "type": "string", + "nullable": true + }, + "attachments": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "attachmentInfo": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.AttachmentInfo" + }, + "nullable": true + }, + "applicant": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Applicant" + }, + "contact": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Contact" + }, + "sponsor": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Sponsor" + }, + "representative": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Representative" + }, + "organization": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Org" + }, + "suitableAllAges": { + "type": "boolean" + }, + "groupProject": { + "type": "boolean" + }, + "volunteerRemotely": { + "type": "boolean" + }, + "itemDonations": { + "type": "boolean" + }, + "wheelchairAccessible": { + "type": "boolean" + }, + "indoors": { + "type": "boolean" + }, + "forYouthGroups": { + "type": "boolean" + }, + "volunteerFromAnywhere": { + "type": "boolean" + }, + "regionSelected": { + "type": "boolean" + }, + "temporaryFakeDistanceScore": { + "type": "number", + "format": "double" + }, + "fakeDistanceScoreUpdate": { + "type": "string", + "format": "date-time" + }, + "skills": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "interests": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "tools": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "projectSkills": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "projectInterests": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "projectTools": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "externalVolunteerURL": { + "type": "string", + "nullable": true + }, + "isExternalProject": { + "type": "boolean" + }, + "isUnlistedProject": { + "type": "boolean" + }, + "archivedProject": { + "type": "boolean" + }, + "isActive": { + "type": "boolean" + }, + "externalVolunteerCount": { + "type": "integer", + "format": "int32" + }, + "externalVolunteers": { + "type": "array", + "items": { + "type": "string", + "format": "date-time" + }, + "nullable": true + }, + "allEventsFilled": { + "type": "boolean" + }, + "daysOfWeek": { + "type": "array", + "items": { + "$ref": "#/components/schemas/System.DayOfWeek" + }, + "nullable": true + }, + "timesOfDay": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.TimeOfDay" + }, + "nullable": true + }, + "waiverURL": { + "type": "string", + "nullable": true + }, + "dtl": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.DTL" + }, + "nullable": true + }, + "onGoing": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.OnGoing" + }, + "nullable": true + }, + "recurring": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Recurring" + }, + "lastChangeReason": { + "type": "string", + "nullable": true + }, + "escalated": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "created": { + "type": "string", + "format": "date-time" + }, + "updated": { + "type": "string", + "format": "date-time" + }, + "createdBy": { + "type": "string", + "nullable": true + }, + "deleted": { + "type": "boolean" + }, + "deletedOn": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "deletedBy": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "firstStartDateTimeOffset": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastEndDateTimeOffset": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "cbfName": { + "type": "string", + "nullable": true + }, + "cblName": { + "type": "string", + "nullable": true + }, + "updatedBy": { + "type": "string", + "nullable": true + }, + "ubfName": { + "type": "string", + "nullable": true + }, + "ublName": { + "type": "string", + "nullable": true + }, + "volunteerCentersData": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.OrganizationSlim" + }, + "nullable": true + }, + "relativityScore": { + "type": "number", + "format": "double" + }, + "projectOwnerName": { + "type": "string", + "nullable": true + }, + "projectOwnerLastName": { + "type": "string", + "nullable": true + }, + "projectOwnerUserId": { + "type": "string", + "nullable": true + }, + "projectLocationType": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.ProjectLocationType" + }, + "underReview": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Projects.ProjectBounded": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "projectOwners": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.ProjectOwner" + }, + "nullable": true + }, + "locations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Locations.Location" + }, + "nullable": true + }, + "status": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.ProjectStatus" + }, + "organization": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Org" + }, + "createdBy": { + "type": "string", + "nullable": true + }, + "cbfName": { + "type": "string", + "nullable": true + }, + "cblName": { + "type": "string", + "nullable": true + }, + "startDate": { + "type": "string", + "format": "date-time" + }, + "endDate": { + "type": "string", + "format": "date-time" + }, + "isActive": { + "type": "boolean" + }, + "isUnlistedProject": { + "type": "boolean" + }, + "ongoing": { + "type": "boolean" + }, + "isDirectlyOwnedOrSponsored": { + "type": "boolean" + }, + "isOwnedOrRepresentedViaOrganization": { + "type": "boolean" + }, + "volunteersNeeded": { + "type": "integer", + "format": "int32" + }, + "volunteersAcquired": { + "type": "integer", + "format": "int32" + }, + "projectOwnerName": { + "type": "string", + "nullable": true + }, + "projectOwnerUserId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Projects.ProjectOwner": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "ownerType": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.OwnerType" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Projects.ReassignDelete": { + "type": "object", + "properties": { + "assignId": { + "type": "string", + "nullable": true + }, + "deleteId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Projects.RecordOfService": { + "required": [ + "userId" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "userId": { + "minLength": 1, + "type": "string" + }, + "projectId": { + "type": "string", + "nullable": true + }, + "projectName": { + "type": "string", + "nullable": true + }, + "organizationName": { + "type": "string", + "nullable": true + }, + "volunteeredOn": { + "type": "string", + "format": "date-time" + }, + "hoursServed": { + "type": "number", + "format": "double" + }, + "deleted": { + "type": "boolean" + }, + "deletedOn": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "deletedBy": { + "type": "string", + "format": "uuid", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Projects.Recurring": { + "type": "object", + "properties": { + "recurrenceId": { + "type": "string", + "nullable": true + }, + "start": { + "type": "string", + "format": "date-time" + }, + "end": { + "type": "string", + "format": "date-time" + }, + "location": { + "$ref": "#/components/schemas/JustServe.Contracts.Locations.Location" + }, + "locationName": { + "type": "string", + "nullable": true + }, + "specialDirections": { + "type": "string", + "nullable": true + }, + "recurringTimes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.RecurringTime" + }, + "nullable": true + }, + "boundaries": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.RegionCivicGeography" + }, + "nullable": true + }, + "volunteeredRecurrences": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.VolunteeredRecurrence" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Projects.RecurringTime": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "startTime": { + "type": "string", + "format": "date-time" + }, + "endTime": { + "type": "string", + "format": "date-time" + }, + "recurringType": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.RecurringType" + }, + "volunteersCapped": { + "type": "boolean" + }, + "groupsCapped": { + "type": "boolean" + }, + "groupLimit": { + "type": "integer", + "format": "int32" + }, + "totalVolunteersNeeded": { + "type": "integer", + "format": "int32" + }, + "contacts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Contact" + }, + "nullable": true + }, + "sunday": { + "type": "boolean" + }, + "monday": { + "type": "boolean" + }, + "tuesday": { + "type": "boolean" + }, + "wednesday": { + "type": "boolean" + }, + "thursday": { + "type": "boolean" + }, + "friday": { + "type": "boolean" + }, + "saturday": { + "type": "boolean" + }, + "firstWeek": { + "type": "boolean" + }, + "secondWeek": { + "type": "boolean" + }, + "thirdWeek": { + "type": "boolean" + }, + "fourthWeek": { + "type": "boolean" + }, + "fifthWeek": { + "type": "boolean" + }, + "lastWeek": { + "type": "boolean" + }, + "daysOfMonth": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Projects.RegionCivicGeography": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.GeographyType" + }, + "name": { + "type": "string", + "nullable": true + }, + "id": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Projects.Representative": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "email": { + "type": "string", + "nullable": true + }, + "userId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Projects.Sponsor": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "email": { + "type": "string", + "nullable": true + }, + "phone": { + "type": "string", + "nullable": true + }, + "userId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Projects.TimeSlot": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "start": { + "type": "string", + "format": "date-time" + }, + "end": { + "type": "string", + "format": "date-time" + }, + "startFormatted": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "endFormatted": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "timezone": { + "type": "string", + "nullable": true + }, + "shiftTitle": { + "type": "string", + "nullable": true + }, + "volunteersCapped": { + "type": "boolean" + }, + "groupsCapped": { + "type": "boolean" + }, + "groupLimit": { + "type": "integer", + "format": "int32" + }, + "existingVolunteers": { + "type": "integer", + "format": "int32" + }, + "totalVolunteersNeeded": { + "type": "integer", + "format": "int32" + }, + "eventCapReached": { + "type": "boolean" + }, + "contacts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.Contact" + }, + "nullable": true + }, + "volunteers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.VolunteerRO" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Projects.VolunteerRO": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "nullable": true + }, + "volunteerId": { + "type": "string", + "nullable": true + }, + "volunteerLanguage": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "email": { + "type": "string", + "nullable": true + }, + "phone": { + "type": "string", + "nullable": true + }, + "groupSize": { + "type": "integer", + "format": "int32" + }, + "hoursServed": { + "type": "number", + "format": "double" + }, + "adminReportedHours": { + "type": "number", + "format": "double" + }, + "hoursUpdated": { + "type": "boolean" + }, + "skills": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "volunteeredOn": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Projects.VolunteeredRecurrence": { + "type": "object", + "properties": { + "volunteeredRecurrenceId": { + "type": "string", + "nullable": true + }, + "recurringTimeId": { + "type": "string", + "nullable": true + }, + "start": { + "type": "string", + "format": "date-time" + }, + "end": { + "type": "string", + "format": "date-time" + }, + "eventCapReached": { + "type": "boolean" + }, + "volunteers": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.AdminPendingProjectsSearchRequest": { + "required": [ + "adminSubordinateFilterModifier", + "page", + "size" + ], + "type": "object", + "properties": { + "page": { + "type": "integer", + "format": "int32" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "adminSubordinateFilterModifier": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.AdminSubordinateFilterModifier" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.AdminSearchOrganizationsViewModel": { + "type": "object", + "properties": { + "activeOnly": { + "type": "boolean" + }, + "filter": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.SearchFilter" + }, + "filterValue": { + "type": "string", + "nullable": true + }, + "getLinkedProjects": { + "type": "boolean" + }, + "includeAll": { + "type": "boolean" + }, + "includeManaged": { + "type": "boolean" + }, + "includeOrgOwnerInfo": { + "type": "boolean" + }, + "orderBy": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.AdminSearchOrderBy" + }, + "page": { + "type": "integer", + "format": "int32" + }, + "reverse": { + "type": "boolean" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "type": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.OrganizationType" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.AdminUserSearchRequest": { + "required": [ + "page", + "size" + ], + "type": "object", + "properties": { + "page": { + "type": "integer", + "format": "int32" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "ldsGeographyId": { + "type": "string", + "format": "uuid" + }, + "boundaryName": { + "type": "string", + "nullable": true + }, + "showChildren": { + "type": "boolean" + }, + "name": { + "type": "string", + "nullable": true + }, + "email": { + "type": "string", + "nullable": true + }, + "civicBoundaryId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "civicBoundaryName": { + "type": "string", + "nullable": true + }, + "civicBoundaryChildren": { + "type": "boolean" + }, + "city": { + "type": "string", + "nullable": true + }, + "state": { + "type": "string", + "nullable": true + }, + "zip": { + "type": "string", + "nullable": true + }, + "org": { + "type": "string", + "nullable": true + }, + "isSpecialist": { + "type": "boolean" + }, + "isCommunity": { + "type": "boolean" + }, + "isNonAdmin": { + "type": "boolean" + }, + "isLeadOnly": { + "type": "boolean" + }, + "isOrg": { + "type": "boolean" + }, + "specialist": { + "type": "string", + "nullable": true + }, + "community": { + "type": "string", + "nullable": true + }, + "nonAdmin": { + "type": "string", + "nullable": true + }, + "leadOnly": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.AttachmentUploadModel": { + "type": "object", + "properties": { + "base64": { + "type": "string", + "nullable": true + }, + "fileName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.BoundaryUpdateDeleteViewModel": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "boundaryType": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.BoundaryType" + }, + "updateInfo": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.BoundaryUserInfoModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.BoundaryUserInfoModel": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "nullable": true + }, + "role": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.Role" + }, + "addCivicGeographyIds": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "removeCivicGeographyIds": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "deleteUser": { + "type": "boolean" + }, + "setRep": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.ChangePasswordViewModel": { + "required": [ + "newPassword" + ], + "type": "object", + "properties": { + "existingPassword": { + "type": "string", + "nullable": true + }, + "newPassword": { + "maxLength": 100, + "minLength": 8, + "type": "string", + "format": "password" + }, + "confirmPassword": { + "type": "string", + "format": "password", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.ChurchGeographyAdminLabelEnumRequest": { + "type": "object", + "properties": { + "churchGeographyId": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "createdBy": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "languageId": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.ChurchGeographyAdminLabelEnumUpdateRequest": { + "type": "object", + "properties": { + "churchGeographyAdminLabelEnumId": { + "type": "string", + "format": "uuid" + }, + "churchGeographyId": { + "type": "string", + "format": "uuid" + }, + "updatedBy": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.CloneProjectRequest": { + "type": "object", + "properties": { + "projectIdToClone": { + "type": "string", + "format": "uuid" + }, + "userIdToAssign": { + "type": "string", + "format": "uuid" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.ContactUsReciepientViewModel": { + "type": "object", + "properties": { + "country": { + "type": "string", + "nullable": true + }, + "postal": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.ContactUsViewModel": { + "required": [ + "body", + "country", + "email", + "name" + ], + "type": "object", + "properties": { + "name": { + "maxLength": 150, + "minLength": 1, + "type": "string" + }, + "email": { + "maxLength": 150, + "minLength": 1, + "type": "string" + }, + "body": { + "maxLength": 300, + "minLength": 1, + "type": "string" + }, + "country": { + "minLength": 1, + "type": "string" + }, + "postal": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.CreateUpdateAnnouncementViewModel": { + "type": "object", + "properties": { + "title": { + "type": "string", + "nullable": true + }, + "content": { + "type": "string", + "nullable": true + }, + "url": { + "type": "string", + "nullable": true + }, + "pictures": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "videos": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.CropViewModel": { + "type": "object", + "properties": { + "base64": { + "type": "string", + "nullable": true + }, + "x": { + "type": "integer", + "format": "int32" + }, + "y": { + "type": "integer", + "format": "int32" + }, + "height": { + "type": "integer", + "format": "int32" + }, + "width": { + "type": "integer", + "format": "int32" + }, + "maxWidth": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "maxHeight": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "squareWrapper": { + "type": "boolean", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.CustomNotificationModel": { + "type": "object", + "properties": { + "locationId": { + "type": "string", + "nullable": true + }, + "geographyType": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.GeographyType" + }, + "type": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.NotificationType" + }, + "level": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.NotificationLevel" + }, + "title": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "lang": { + "type": "string", + "nullable": true + }, + "redirectLink": { + "type": "string", + "nullable": true + }, + "startDate": { + "type": "string", + "format": "date-time" + }, + "endDate": { + "type": "string", + "format": "date-time" + }, + "isAdminOnly": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.DTLVolunteer": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "timeSlots": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.TimeSlotVolunteer" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.DailyUserHashModel": { + "type": "object", + "properties": { + "email": { + "type": "string", + "nullable": true + }, + "userId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.HomepageProjectRequest": { + "type": "object", + "properties": { + "locationSearchText": { + "type": "string", + "nullable": true + }, + "longitude": { + "type": "number", + "format": "double" + }, + "latitude": { + "type": "number", + "format": "double" + }, + "browserLocale": { + "type": "string", + "nullable": true + }, + "countryCode": { + "type": "string", + "nullable": true + }, + "refreshCache": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.HoursServedBulkModel": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "hours": { + "type": "number", + "format": "double" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.HoursServedItemViewModel": { + "required": [ + "hours" + ], + "type": "object", + "properties": { + "hours": { + "type": "number", + "format": "double" + }, + "when": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.HoursServedViewModel": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.HoursServedItemViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.ImageUploadRequest": { + "type": "object", + "properties": { + "base64": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.LatLongPostal": { + "type": "object", + "properties": { + "longitude": { + "type": "number", + "format": "double" + }, + "latitude": { + "type": "number", + "format": "double" + }, + "postalCode": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.LocationMapsObject": { + "type": "object", + "properties": { + "address": { + "type": "string", + "nullable": true + }, + "city": { + "type": "string", + "nullable": true + }, + "county": { + "type": "string", + "nullable": true + }, + "state": { + "type": "string", + "nullable": true + }, + "postal": { + "type": "string", + "nullable": true + }, + "country": { + "type": "string", + "nullable": true + }, + "countryCode": { + "type": "string", + "nullable": true + }, + "longitude": { + "type": "number", + "format": "double" + }, + "latitude": { + "type": "number", + "format": "double" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.LocationString": { + "required": [ + "location" + ], + "type": "object", + "properties": { + "location": { + "minLength": 1, + "type": "string" + }, + "lang": { + "type": "string", + "nullable": true + }, + "countryCode": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.Mobile.LogInModel": { + "type": "object", + "properties": { + "grantType": { + "type": "string", + "nullable": true + }, + "username": { + "type": "string", + "nullable": true + }, + "password": { + "type": "string", + "nullable": true + }, + "clientId": { + "type": "string", + "nullable": true + }, + "clientSecret": { + "type": "string", + "nullable": true + }, + "refreshToken": { + "type": "string", + "nullable": true + }, + "facebookToken": { + "type": "string", + "nullable": true + }, + "googleToken": { + "type": "string", + "nullable": true + }, + "appleToken": { + "type": "string", + "nullable": true + }, + "appleAuthCode": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.Mobile.MobileOrgSearchModel": { + "type": "object", + "properties": { + "latitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "longitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "location": { + "type": "string", + "nullable": true + }, + "keywords": { + "type": "string", + "nullable": true + }, + "organizationType": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.OrganizationType" + }, + "searchRadius": { + "type": "integer", + "format": "int32" + }, + "distanceUnits": { + "type": "string", + "nullable": true + }, + "sortBy": { + "type": "string", + "nullable": true + }, + "language": { + "type": "string", + "nullable": true + }, + "page": { + "type": "integer", + "format": "int32" + }, + "size": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.Mobile.MobileProjectFAYT": { + "type": "object", + "properties": { + "keywords": { + "type": "string", + "nullable": true + }, + "location": { + "type": "string", + "nullable": true + }, + "latitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "longitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "radius": { + "type": "number", + "format": "double", + "nullable": true + }, + "distanceType": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.DistanceType" + }, + "language": { + "type": "string", + "nullable": true + }, + "volunteerFromAnywhere": { + "type": "boolean", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.Mobile.MobileProjectSearchRequestModel": { + "type": "object", + "properties": { + "latitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "longitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "location": { + "type": "string", + "nullable": true + }, + "keywords": { + "type": "string", + "nullable": true + }, + "searchRadius": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "distanceUnits": { + "type": "string", + "nullable": true + }, + "startDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "endDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "projectOptions": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.ProjectOptions" + }, + "projectType": { + "type": "string", + "nullable": true + }, + "skillIds": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "interestIds": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "language": { + "type": "string", + "nullable": true + }, + "country": { + "type": "string", + "nullable": true + }, + "sortBy": { + "type": "string", + "nullable": true + }, + "page": { + "type": "integer", + "format": "int32" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "days": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "times": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "getProjectSearchOrderBy": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.ProjectSearchOrderBy" + }, + "getProjectType": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.ProjectType" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.Mobile.MobileProjectVolunteerModel": { + "type": "object", + "properties": { + "email": { + "type": "string", + "nullable": true + }, + "phone": { + "type": "string", + "nullable": true + }, + "schedule": { + "type": "string", + "nullable": true + }, + "date": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "groupSize": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "skills": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "details": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.Mobile.MobileStringList": { + "required": [ + "ids" + ], + "type": "object", + "properties": { + "ids": { + "minItems": 1, + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.Mobile.MobileUpdateUserModel": { + "type": "object", + "properties": { + "personal": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Personalsettings" + }, + "location": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileLocationSlim" + }, + "projectOptions": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.Projectsearchpreferences" + }, + "contactOptions": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.Notificationsettings" + }, + "interests": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.Interests" + }, + "skills": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.Skills" + }, + "tools": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.Tools" + }, + "daysOfTheWeek": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.DaysOfTheWeek" + }, + "timesOfDay": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.TimesOfDay" + }, + "favoriteOrganizations": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.Favoriteorganizations" + }, + "favoriteProjects": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.Favoriteprojects" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.Mobile.ProjectOptions": { + "type": "object", + "properties": { + "suitableForAllAges": { + "type": "boolean", + "nullable": true + }, + "groupProject": { + "type": "boolean", + "nullable": true + }, + "volunteerFromHome": { + "type": "boolean", + "nullable": true + }, + "itemDonations": { + "type": "boolean", + "nullable": true + }, + "wheelchairAccessible": { + "type": "boolean", + "nullable": true + }, + "indoors": { + "type": "boolean", + "nullable": true + }, + "forYouthGroups": { + "type": "boolean", + "nullable": true + }, + "volunteerFromAnywhere": { + "type": "boolean", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.Mobile.RefreshTokenModel": { + "type": "object", + "properties": { + "clientId": { + "type": "string", + "nullable": true + }, + "clientSecret": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.OngoingInterestViewModel": { + "required": [ + "date", + "schedule" + ], + "type": "object", + "properties": { + "schedule": { + "minLength": 1, + "type": "string" + }, + "date": { + "type": "string", + "format": "date-time" + }, + "email": { + "type": "string", + "nullable": true + }, + "phone": { + "type": "string", + "nullable": true + }, + "country": { + "type": "string", + "nullable": true, + "deprecated": true + }, + "postal": { + "type": "string", + "nullable": true, + "deprecated": true + }, + "city": { + "type": "string", + "nullable": true, + "deprecated": true + }, + "skills": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "comments": { + "type": "string", + "nullable": true + }, + "groupSize": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.OrganizationCreateRequest": { + "type": "object", + "properties": { + "autoRedirect": { + "type": "boolean" + }, + "banner": { + "type": "string", + "nullable": true + }, + "contactEmail": { + "type": "string", + "nullable": true + }, + "contactName": { + "type": "string", + "nullable": true + }, + "contactPhone": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "facebookPath": { + "type": "string", + "nullable": true + }, + "instagramPath": { + "type": "string", + "nullable": true + }, + "linkedInPath": { + "type": "string", + "nullable": true + }, + "locationString": { + "type": "string", + "nullable": true + }, + "logo": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "twitterPath": { + "type": "string", + "nullable": true + }, + "url": { + "type": "string", + "nullable": true + }, + "website": { + "type": "string", + "nullable": true + }, + "youTubePath": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.OrganizationProjectSearchRequest": { + "type": "object", + "properties": { + "includeAdminInfo": { + "type": "boolean" + }, + "isDisasterRecovery": { + "type": "boolean" + }, + "page": { + "type": "integer", + "format": "int32" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "projectType": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.ProjectType" + }, + "keywords": { + "type": "string", + "nullable": true + }, + "language": { + "type": "string", + "nullable": true + }, + "volunteerCauseId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.OrganizationTypeModel": { + "type": "object", + "properties": { + "organizationType": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.OrganizationType" + }, + "organizationId": { + "type": "string", + "format": "uuid" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.OrganizationUpdateRequest": { + "type": "object", + "properties": { + "autoRedirect": { + "type": "boolean" + }, + "banner": { + "type": "string", + "nullable": true + }, + "contactEmail": { + "type": "string", + "nullable": true + }, + "contactName": { + "type": "string", + "nullable": true + }, + "contactPhone": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "facebookPath": { + "type": "string", + "nullable": true + }, + "instagramPath": { + "type": "string", + "nullable": true + }, + "linkedInPath": { + "type": "string", + "nullable": true + }, + "locationString": { + "type": "string", + "nullable": true + }, + "logo": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "twitterPath": { + "type": "string", + "nullable": true + }, + "website": { + "type": "string", + "nullable": true + }, + "youTubePath": { + "type": "string", + "nullable": true + }, + "organizationType": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.OrganizationType" + }, + "volunteerCenterInfo": { + "$ref": "#/components/schemas/JustServe.Contracts.Organizations.VolunteerCenterInfo" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.ProjectAnnouncementViewModel": { + "required": [ + "message", + "objectId", + "projectId", + "senderId", + "userIds" + ], + "type": "object", + "properties": { + "senderId": { + "minLength": 1, + "type": "string" + }, + "projectId": { + "minLength": 1, + "type": "string" + }, + "objectId": { + "minLength": 1, + "type": "string" + }, + "message": { + "minLength": 1, + "type": "string" + }, + "subject": { + "type": "string", + "nullable": true + }, + "userIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "volunteerIds": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "isDisaster": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.ProjectLocationFilterValues": { + "required": [ + "filterValue" + ], + "type": "object", + "properties": { + "filterValue": { + "minLength": 1, + "type": "string" + }, + "address": { + "type": "string", + "nullable": true + }, + "postalCode": { + "type": "string", + "nullable": true + }, + "city": { + "type": "string", + "nullable": true + }, + "neighborhood": { + "type": "string", + "nullable": true + }, + "state": { + "type": "string", + "nullable": true + }, + "projectLocationType": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.ProjectLocationType" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.ProjectSearchRequestV2": { + "required": [ + "page", + "size" + ], + "type": "object", + "properties": { + "page": { + "type": "integer", + "format": "int32" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "projectTitleFilterValue": { + "type": "string", + "nullable": true + }, + "projectLocationFilterValues": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.ProjectLocationFilterValues" + }, + "organizationNameFilterValue": { + "type": "string", + "nullable": true + }, + "projectUserNameFilterValues": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.ProjectUserNameEmailFilterValues" + }, + "projectUserEmailFilterValues": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.ProjectUserNameEmailFilterValues" + }, + "projectLongDescriptionFilterValue": { + "type": "string", + "nullable": true + }, + "startDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "startDateFilterModifier": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "endDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "endDateFilterModifier": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "projectStatusFilterValues": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "isUnlistedProject": { + "type": "boolean", + "nullable": true + }, + "isExpiredProject": { + "type": "boolean", + "nullable": true + }, + "sortBy": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.SortByFilterModifier" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.ProjectUserNameEmailFilterValues": { + "required": [ + "filterValue", + "userNameEmailFilterModifiers" + ], + "type": "object", + "properties": { + "filterValue": { + "minLength": 1, + "type": "string" + }, + "userNameEmailFilterModifiers": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.QuickSearchCreateRequest": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "title": { + "type": "string", + "nullable": true + }, + "searchType": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.QuickSearchType" + }, + "adminProjectSearchParameters": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.ProjectSearchRequestV2" + }, + "adminUserSearchParameters": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.AdminUserSearchRequest" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.RecoverAccountViewModel": { + "required": [ + "email" + ], + "type": "object", + "properties": { + "email": { + "minLength": 1, + "type": "string", + "format": "email" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.ResendActivationEmail": { + "required": [ + "email" + ], + "type": "object", + "properties": { + "email": { + "minLength": 1, + "type": "string" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.ResetPasswordViewModel": { + "required": [ + "newPassword" + ], + "type": "object", + "properties": { + "newPassword": { + "maxLength": 100, + "minLength": 8, + "type": "string", + "format": "password" + }, + "confirmPassword": { + "type": "string", + "format": "password", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.SearchAdminProjectsViewModel": { + "type": "object", + "properties": { + "title": { + "type": "string", + "nullable": true + }, + "keyword": { + "type": "string", + "nullable": true + }, + "organization": { + "type": "string", + "nullable": true + }, + "adminName": { + "type": "string", + "nullable": true + }, + "submitter": { + "type": "string", + "nullable": true + }, + "location": { + "type": "string", + "nullable": true + }, + "page": { + "type": "integer", + "format": "int32" + }, + "size": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.SearchAdminProjectsViewModelv2": { + "type": "object", + "properties": { + "filter": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.AdminProjectSearchFilter" + }, + "userId": { + "type": "string", + "nullable": true + }, + "filterValue": { + "type": "string", + "nullable": true + }, + "includeManaged": { + "type": "boolean" + }, + "includeOrgs": { + "type": "boolean" + }, + "page": { + "type": "integer", + "format": "int32" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "orderBy": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.AdminSearchOrderBy" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.SearchAdminStoriesViewModel": { + "type": "object", + "properties": { + "filterValue": { + "type": "string", + "nullable": true + }, + "filter": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.SearchFilter" + }, + "includeManaged": { + "type": "boolean" + }, + "page": { + "type": "integer", + "format": "int32" + }, + "size": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.SearchOrganizationsViewModel": { + "type": "object", + "properties": { + "latitude": { + "type": "number", + "format": "double" + }, + "longitude": { + "type": "number", + "format": "double" + }, + "keywords": { + "type": "string", + "nullable": true + }, + "location": { + "type": "string", + "nullable": true + }, + "radius": { + "type": "integer", + "format": "int32" + }, + "radiusType": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.DistanceType" + }, + "sortBy": { + "type": "string", + "nullable": true + }, + "page": { + "type": "integer", + "format": "int32" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "organizationType": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.OrganizationType" + }, + "lang": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.SearchProjectsGlobalViewModel": { + "type": "object", + "properties": { + "keywords": { + "type": "string", + "nullable": true + }, + "page": { + "type": "integer", + "format": "int32" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "language": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.SearchProjectsNewsletterModel": { + "type": "object", + "properties": { + "latitude": { + "type": "number", + "format": "double" + }, + "longitude": { + "type": "number", + "format": "double" + }, + "searchType": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.SearchLocationType" + }, + "radius": { + "type": "integer", + "format": "int32" + }, + "radiusType": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.DistanceType" + }, + "start": { + "type": "string", + "format": "date-time" + }, + "page": { + "type": "integer", + "format": "int32" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "sortBy": { + "type": "string", + "nullable": true + }, + "language": { + "type": "string", + "nullable": true + }, + "browserLocale": { + "type": "string", + "nullable": true + }, + "getProjectSearchOrderBy": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.ProjectSearchOrderBy" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.SearchProjectsViewModel": { + "type": "object", + "properties": { + "latitude": { + "type": "number", + "format": "double" + }, + "longitude": { + "type": "number", + "format": "double" + }, + "searchType": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.SearchLocationType" + }, + "radius": { + "type": "integer", + "format": "int32" + }, + "radiusType": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.DistanceType" + }, + "start": { + "type": "string", + "format": "date-time" + }, + "page": { + "type": "integer", + "format": "int32" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "sortBy": { + "type": "string", + "nullable": true + }, + "language": { + "type": "string", + "nullable": true + }, + "browserLocale": { + "type": "string", + "nullable": true + }, + "getProjectSearchOrderBy": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.ProjectSearchOrderBy" + }, + "keywords": { + "type": "string", + "nullable": true + }, + "location": { + "type": "string", + "nullable": true + }, + "end": { + "type": "string", + "format": "date-time" + }, + "suitableAllAges": { + "type": "boolean" + }, + "groupProject": { + "type": "boolean" + }, + "volunteerRemotely": { + "type": "boolean" + }, + "volunteerFromAnywhere": { + "type": "boolean" + }, + "itemDonations": { + "type": "boolean" + }, + "wheelchairAccessible": { + "type": "boolean" + }, + "indoors": { + "type": "boolean" + }, + "onGoing": { + "type": "boolean" + }, + "dtl": { + "type": "boolean" + }, + "skills": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "interests": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "userInitiatedSearch": { + "type": "boolean" + }, + "includeOrgInfo": { + "type": "boolean" + }, + "includeFilledProjects": { + "type": "boolean" + }, + "disasterRecoveryProjectsOnly": { + "type": "boolean" + }, + "daysOfWeek": { + "type": "array", + "items": { + "$ref": "#/components/schemas/System.DayOfWeek" + }, + "nullable": true + }, + "timesOfDay": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.TimeOfDay" + }, + "nullable": true + }, + "publishedOnly": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.SearchUsersViewModel": { + "required": [ + "value" + ], + "type": "object", + "properties": { + "value": { + "minLength": 1, + "type": "string" + }, + "page": { + "type": "integer", + "format": "int32" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "orderBy": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.StatusChangeViewModel": { + "type": "object", + "properties": { + "reason": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.StoriesSearchViewModel": { + "type": "object", + "properties": { + "search": { + "type": "string", + "nullable": true + }, + "locationSearch": { + "type": "string", + "nullable": true + }, + "countryCode": { + "type": "string", + "nullable": true + }, + "page": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "size": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "radiusType": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.DistanceType" + }, + "lang": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.SuccessStoryViewModel": { + "type": "object", + "properties": { + "projectId": { + "type": "string", + "nullable": true + }, + "language": { + "type": "string", + "nullable": true + }, + "title": { + "type": "string", + "nullable": true + }, + "body": { + "type": "string", + "nullable": true + }, + "images": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.ImagePairDetails" + }, + "nullable": true + }, + "mainImage": { + "$ref": "#/components/schemas/JustServe.Contracts.ImagePairDetails" + }, + "videos": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "videoURL": { + "type": "string", + "nullable": true + }, + "location": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.TimeSlotVolunteer": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "groupSize": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.UpdateUserModel": { + "type": "object", + "properties": { + "firstName": { + "maxLength": 50, + "minLength": 1, + "type": "string", + "nullable": true + }, + "lastName": { + "maxLength": 50, + "minLength": 1, + "type": "string", + "nullable": true + }, + "address": { + "type": "string", + "nullable": true + }, + "city": { + "type": "string", + "nullable": true + }, + "neighborhood": { + "type": "string", + "nullable": true + }, + "state": { + "type": "string", + "nullable": true + }, + "postal": { + "type": "string", + "nullable": true + }, + "country": { + "type": "string", + "nullable": true + }, + "countryCode": { + "type": "string", + "nullable": true + }, + "userName": { + "maxLength": 200, + "minLength": 5, + "type": "string", + "nullable": true + }, + "email": { + "type": "string", + "nullable": true + }, + "phone": { + "type": "string", + "nullable": true + }, + "language": { + "type": "string", + "nullable": true + }, + "generalEmailOptIn": { + "type": "boolean", + "nullable": true + }, + "generalMarketingOptIn": { + "type": "boolean", + "nullable": true + }, + "volunteerNewsletter": { + "type": "boolean", + "nullable": true + }, + "includeSponsorAdminInfo": { + "type": "boolean", + "nullable": true + }, + "volunteerNewsletterRadius": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "adminNewsletter": { + "type": "boolean", + "nullable": true + }, + "skills": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "interests": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "tools": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "userSkills": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "userInterests": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "userTools": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "otherSkills": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "otherInterests": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "otherTools": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "suitableAllAges": { + "type": "boolean", + "nullable": true + }, + "groupProject": { + "type": "boolean", + "nullable": true + }, + "projectFiltersOpen": { + "type": "boolean", + "nullable": true + }, + "volunteerRemotely": { + "type": "boolean", + "nullable": true + }, + "itemDonations": { + "type": "boolean", + "nullable": true + }, + "wheelchairAccessible": { + "type": "boolean", + "nullable": true + }, + "indoors": { + "type": "boolean", + "nullable": true + }, + "disasterReliefRegistrationSeen": { + "type": "boolean", + "nullable": true + }, + "donateToDisasterReliefChecked": { + "type": "boolean", + "nullable": true + }, + "volunteerForDisasterReliefChecked": { + "type": "boolean", + "nullable": true + }, + "disasterReliefAvailabilityDate": { + "type": "string", + "format": "date-time" + }, + "keywords": { + "type": "string", + "nullable": true + }, + "timePref": { + "type": "integer", + "format": "int32" + }, + "radiusType": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.DistanceType" + }, + "daysAvailable": { + "type": "array", + "items": { + "$ref": "#/components/schemas/System.DayOfWeek" + }, + "nullable": true + }, + "timesAvailable": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.TimeOfDay" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.UpsertProjectVolunteerHoursRequest": { + "type": "object", + "properties": { + "adminReportedHours": { + "type": "number", + "format": "double", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.VanityURLValidationModel": { + "required": [ + "value" + ], + "type": "object", + "properties": { + "value": { + "minLength": 1, + "type": "string" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.VolunteerManualModel": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "volunteerLanguage": { + "type": "string", + "nullable": true + }, + "groupSize": { + "type": "integer", + "format": "int32" + }, + "email": { + "type": "string", + "nullable": true + }, + "adminReportedHours": { + "type": "number", + "format": "double" + }, + "phone": { + "type": "string", + "nullable": true + }, + "volunteerComments": { + "type": "string", + "nullable": true + }, + "skills": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "volunteerRecurringDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.VolunteerRecurringViewModel": { + "type": "object", + "properties": { + "skills": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "startTime": { + "type": "string", + "format": "date-time" + }, + "endTime": { + "type": "string", + "format": "date-time" + }, + "email": { + "type": "string", + "nullable": true + }, + "phone": { + "type": "string", + "nullable": true + }, + "groupSize": { + "type": "integer", + "format": "int32" + }, + "volunteerComments": { + "type": "string", + "nullable": true + }, + "schedule": { + "type": "string", + "nullable": true + }, + "dateInterested": { + "type": "string", + "format": "date-time", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.VolunteerViewModel": { + "type": "object", + "properties": { + "skills": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "dtl": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.DTLVolunteer" + }, + "nullable": true + }, + "email": { + "type": "string", + "nullable": true + }, + "phone": { + "type": "string", + "nullable": true + }, + "country": { + "type": "string", + "nullable": true + }, + "postal": { + "type": "string", + "nullable": true + }, + "city": { + "type": "string", + "nullable": true + }, + "removeExcludedShifts": { + "type": "boolean" + }, + "volunteerComments": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.WidgetProjectSearchModel": { + "type": "object", + "properties": { + "key": { + "type": "string", + "nullable": true + }, + "keywordSearch": { + "type": "string", + "nullable": true + }, + "locationSearch": { + "type": "string", + "nullable": true + }, + "latitude": { + "type": "number", + "format": "double" + }, + "longitude": { + "type": "number", + "format": "double" + }, + "locationSearchRadius": { + "type": "integer", + "format": "int32" + }, + "organizationId": { + "type": "string", + "nullable": true + }, + "stakeUnitId": { + "type": "string", + "nullable": true + }, + "includeOrgData": { + "type": "boolean" + }, + "page": { + "type": "integer", + "format": "int32" + }, + "size": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Requests.WidgetRequestModel": { + "type": "object", + "properties": { + "key": { + "type": "string", + "nullable": true + }, + "lastUpdatedDate": { + "type": "string", + "format": "date-time" + }, + "page": { + "type": "integer", + "format": "int32" + }, + "size": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.AdminLiteInfo": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "format": "uuid" + }, + "firstName": { + "type": "string", + "nullable": true + }, + "lastName": { + "type": "string", + "nullable": true + }, + "email": { + "type": "string", + "nullable": true + }, + "phone": { + "type": "string", + "nullable": true + }, + "displayCity": { + "type": "string", + "nullable": true + }, + "displayState": { + "type": "string", + "nullable": true + }, + "displayPostalCode": { + "type": "string", + "nullable": true + }, + "displayCountry": { + "type": "string", + "nullable": true + }, + "adminRoleId": { + "type": "integer", + "format": "int32" + }, + "adminLead": { + "type": "boolean" + }, + "adminBoundaryName": { + "type": "string", + "nullable": true + }, + "boundaryUnitId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "orgId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "orgName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.AdminPendingProjectCounts": { + "type": "object", + "properties": { + "pendingProjectCounts": { + "type": "integer", + "format": "int32" + }, + "organizationPendingProjectCounts": { + "type": "integer", + "format": "int32" + }, + "totalPendingProjectCounts": { + "type": "integer", + "format": "int32" + }, + "subordinatesPendingProjectCounts": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserPendingProjectCounts" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.AttachmentInfo": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "mimeType": { + "type": "string", + "nullable": true + }, + "fileName": { + "type": "string", + "nullable": true + }, + "hostedFileLocation": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.AttachmentResult": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "fileName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.AttachmentSlim": { + "type": "object", + "properties": { + "mimeType": { + "type": "string", + "nullable": true + }, + "fileName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.BoolResult": { + "type": "object", + "properties": { + "result": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.BoundaryDataResponse": { + "type": "object", + "properties": { + "boundaryPermissionId": { + "type": "string", + "nullable": true + }, + "adminId": { + "type": "string", + "nullable": true + }, + "adminFirstName": { + "type": "string", + "nullable": true + }, + "adminLastName": { + "type": "string", + "nullable": true + }, + "boundaryName": { + "type": "string", + "nullable": true + }, + "justServeRepUserId": { + "type": "string", + "nullable": true + }, + "boundaryType": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.BoundaryType" + }, + "organizationType": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.OrganizationType" + }, + "roleId": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.Role" + }, + "isLead": { + "type": "boolean" + }, + "isVacant": { + "type": "boolean" + }, + "isParent": { + "type": "boolean" + }, + "displayChildren": { + "type": "boolean" + }, + "ldsGeographyId": { + "type": "string", + "nullable": true + }, + "geographyType": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.GeographyType" + }, + "organizationId": { + "type": "string", + "nullable": true + }, + "civicGeographies": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Authentication.CivicGeoBounded" + }, + "nullable": true + }, + "boundaryChildren": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.BoundaryDataResponse" + }, + "nullable": true + }, + "boundaryChildrenCount": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.CalendarProjectResponse": { + "type": "object", + "properties": { + "projectId": { + "type": "string", + "nullable": true + }, + "projectName": { + "type": "string", + "nullable": true + }, + "locationAndDates": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectLocationDates" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.CityCountsResponse": { + "type": "object", + "properties": { + "cityName": { + "type": "string", + "nullable": true + }, + "civicCityId": { + "type": "string", + "nullable": true + }, + "cityCount": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.CivicChildResult": { + "type": "object", + "properties": { + "parentCivicId": { + "type": "string", + "format": "uuid" + }, + "civicId": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.CivicGeographyLimited": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.GeographyType" + }, + "manageable": { + "type": "boolean", + "nullable": true + }, + "id": { + "type": "string", + "nullable": true + }, + "country": { + "type": "string", + "nullable": true + }, + "countryCode": { + "type": "string", + "nullable": true + }, + "civicCountryId": { + "type": "string", + "nullable": true + }, + "state": { + "type": "string", + "nullable": true + }, + "civicStateId": { + "type": "string", + "nullable": true + }, + "county": { + "type": "string", + "nullable": true + }, + "civicCountyId": { + "type": "string", + "nullable": true + }, + "city": { + "type": "string", + "nullable": true + }, + "civicCityId": { + "type": "string", + "nullable": true + }, + "neighborhood": { + "type": "string", + "nullable": true + }, + "civicNeighborhoodId": { + "type": "string", + "nullable": true + }, + "zipcode": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.CountryCountsResponse": { + "type": "object", + "properties": { + "countryTranslatedName": { + "type": "string", + "nullable": true + }, + "civicCountryId": { + "type": "string", + "nullable": true + }, + "language": { + "type": "string", + "nullable": true + }, + "stateCounts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.StateCountsResponse" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.CountryStatePair": { + "type": "object", + "properties": { + "countryInfo": { + "$ref": "#/components/schemas/JustServe.Contracts.Geographies.CountryInfo" + }, + "country": { + "type": "string", + "nullable": true + }, + "state": { + "type": "string", + "nullable": true + }, + "county": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.CropedImageResponse": { + "type": "object", + "properties": { + "attachmentId": { + "type": "string", + "format": "uuid" + }, + "full": { + "type": "string", + "nullable": true + }, + "displayFilename": { + "type": "string", + "nullable": true + }, + "thumb": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.DynamicRoutingDataResponse": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "dynamicRouteType": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.DynamicRouteType" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.EndorsementOrgInfoSlim": { + "type": "object", + "properties": { + "organizationId": { + "type": "string", + "nullable": true + }, + "endorsementStatus": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.EndorsementStatus" + }, + "updated": { + "type": "string", + "format": "date-time" + }, + "orgName": { + "type": "string", + "nullable": true + }, + "orgURL": { + "type": "string", + "nullable": true + }, + "orgInternalURL": { + "type": "string", + "nullable": true + }, + "orgLocation": { + "$ref": "#/components/schemas/JustServe.Contracts.Locations.Location" + }, + "logo": { + "type": "string", + "nullable": true + }, + "organizationType": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.OrganizationType" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.GeographyLimited": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.GeographyType" + }, + "manageable": { + "type": "boolean", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.HealthCheckResponse": { + "type": "object", + "properties": { + "assemblyVersion": { + "type": "string", + "nullable": true + }, + "environment": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.HomepageProjectInfo": { + "type": "object", + "additionalProperties": false + }, + "JustServe.Contracts.Responses.ImageUploadResponse": { + "type": "object", + "properties": { + "attachmentId": { + "type": "string", + "format": "uuid" + }, + "full": { + "type": "string", + "nullable": true + }, + "displayFilename": { + "type": "string", + "nullable": true + }, + "thumb": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.LDSGeographyLimited": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.GeographyType" + }, + "manageable": { + "type": "boolean", + "nullable": true + }, + "id": { + "type": "string", + "nullable": true + }, + "ldsGeographyId": { + "type": "string", + "nullable": true + }, + "unitId": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "areaId": { + "type": "string", + "nullable": true + }, + "missionId": { + "type": "string", + "nullable": true + }, + "ccId": { + "type": "string", + "nullable": true + }, + "stakeId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.MSDynamicsFormattedUserV2": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "nullable": true + }, + "email": { + "type": "string", + "nullable": true + }, + "firstName": { + "type": "string", + "nullable": true + }, + "lastName": { + "type": "string", + "nullable": true + }, + "emailWeeklyNewsletter": { + "type": "boolean", + "nullable": true + }, + "emailProjectSponsorUpdates": { + "type": "boolean", + "nullable": true + }, + "emailProjectVolunteerUpdates": { + "type": "boolean", + "nullable": true + }, + "emailDREffort": { + "type": "boolean", + "nullable": true + }, + "emailDRCauses": { + "type": "boolean", + "nullable": true + }, + "lastUpdated": { + "type": "string", + "nullable": true + }, + "state": { + "type": "string", + "nullable": true + }, + "postalCode": { + "type": "string", + "nullable": true + }, + "city": { + "type": "string", + "nullable": true + }, + "address": { + "type": "string", + "nullable": true + }, + "language": { + "type": "string", + "nullable": true + }, + "suitableAllAges": { + "type": "boolean", + "nullable": true + }, + "groupProject": { + "type": "boolean", + "nullable": true + }, + "volunteerRemotely": { + "type": "boolean", + "nullable": true + }, + "itemDonations": { + "type": "boolean", + "nullable": true + }, + "wheelchairAccessible": { + "type": "boolean", + "nullable": true + }, + "indoors": { + "type": "boolean", + "nullable": true + }, + "skills": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "interests": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "tools": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "unsubscribeKey": { + "type": "string", + "nullable": true + }, + "deleted": { + "type": "boolean" + }, + "lastSignIn": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "generalMarketingOptin": { + "type": "boolean", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.MSDynamicsProjectResults": { + "type": "object", + "properties": { + "totalResults": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.MSDynamicsUserResults": { + "type": "object", + "properties": { + "totalResults": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.Mobile.DaysOfTheWeek": { + "type": "object", + "properties": { + "modified": { + "type": "string", + "format": "date-time" + }, + "ids": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.Mobile.FAYTResponse": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "title": { + "type": "string", + "nullable": true + }, + "relativityScore": { + "type": "number", + "format": "double" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.Mobile.Favoriteorganizations": { + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "modified": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.Mobile.Favoriteprojects": { + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "modified": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.Mobile.IdandName": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.Mobile.Interests": { + "type": "object", + "properties": { + "modified": { + "type": "string", + "format": "date-time" + }, + "ids": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.Mobile.MobileAttachment": { + "type": "object", + "properties": { + "locationURL": { + "type": "string", + "nullable": true + }, + "fileType": { + "type": "string", + "nullable": true + }, + "fileName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.Mobile.MobileContact": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "phone": { + "type": "string", + "nullable": true + }, + "email": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.Mobile.MobileCountryNameInfo": { + "type": "object", + "properties": { + "usePostal": { + "type": "boolean" + }, + "countryName": { + "type": "string", + "nullable": true + }, + "countryCodeAlpha3": { + "type": "string", + "nullable": true + }, + "countryPhone": { + "type": "string", + "nullable": true + }, + "loginAge": { + "type": "string", + "nullable": true + }, + "inEuropeanUnion": { + "type": "boolean" + }, + "useMetricUnits": { + "type": "boolean" + }, + "twelveHourClock": { + "type": "boolean" + }, + "hideStateGeography": { + "type": "boolean" + }, + "hideCountyGeography": { + "type": "boolean" + }, + "houseNumAfterStreet": { + "type": "boolean" + }, + "states": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.Mobile.MobileLocation": { + "type": "object", + "properties": { + "address": { + "type": "string", + "nullable": true + }, + "suite": { + "nullable": true + }, + "city": { + "type": "string", + "nullable": true + }, + "neighborhood": { + "nullable": true + }, + "county": { + "type": "string", + "nullable": true + }, + "state": { + "type": "string", + "nullable": true + }, + "postal": { + "type": "string", + "nullable": true + }, + "countryCodeAlpha3": { + "nullable": true + }, + "latitude": { + "type": "number", + "format": "double" + }, + "longitude": { + "type": "number", + "format": "double" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.Mobile.MobileLocationObject": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "startLocal": { + "type": "string", + "format": "date-time" + }, + "endLocal": { + "type": "string", + "format": "date-time" + }, + "start": { + "type": "string", + "format": "date-time" + }, + "end": { + "type": "string", + "format": "date-time" + }, + "projectType": { + "type": "string", + "nullable": true + }, + "isVolunteersCapped": { + "type": "boolean" + }, + "isGroupsCapped": { + "type": "boolean" + }, + "groupLimit": { + "type": "integer", + "format": "int32" + }, + "volunteerLimit": { + "type": "integer", + "format": "int32" + }, + "volunteersNeeded": { + "type": "integer", + "format": "int32" + }, + "locationName": { + "type": "string", + "nullable": true + }, + "volunteerResponsibilities": { + "type": "string", + "nullable": true + }, + "isVolunteered": { + "type": "boolean" + }, + "ongoingProjectScheduleInformation": { + "type": "string", + "nullable": true + }, + "ongoingAvailabilitySchedule": { + "type": "string", + "nullable": true + }, + "ongoingAvailabilityDate": { + "type": "string", + "nullable": true + }, + "eventContact": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileContact" + }, + "location": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileLocation" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.Mobile.MobileLocationSlim": { + "type": "object", + "properties": { + "modified": { + "type": "string", + "format": "date-time" + }, + "city": { + "type": "string", + "nullable": true + }, + "state": { + "type": "string", + "nullable": true + }, + "postalCode": { + "type": "string", + "nullable": true + }, + "countryCodeAlpha3": { + "type": "string", + "nullable": true + }, + "address": { + "type": "string", + "nullable": true + }, + "distanceUnits": { + "type": "string", + "nullable": true + }, + "clock": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.Mobile.MobileOptions": { + "type": "object", + "properties": { + "languages": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.LocaleNames" + }, + "nullable": true + }, + "skills": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.SkillInfo" + }, + "nullable": true + }, + "interests": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.IdandName" + }, + "nullable": true + }, + "countries": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileCountryNameInfo" + }, + "nullable": true + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.IdandName" + }, + "nullable": true + }, + "daysOfTheWeek": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.IdandName" + }, + "nullable": true + }, + "timesOfDay": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.IdandName" + }, + "nullable": true + }, + "radiusOptions": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "copyrightYear": { + "type": "string", + "nullable": true + }, + "privacyUpdateDate": { + "type": "string", + "format": "date-time" + }, + "privacyURL": { + "type": "string", + "nullable": true + }, + "termsUpdateDate": { + "type": "string", + "format": "date-time" + }, + "termsURL": { + "type": "string", + "nullable": true + }, + "aboutURL": { + "type": "string", + "nullable": true + }, + "successStoriesURL": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.Mobile.MobileOrg": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "language": { + "type": "string", + "nullable": true + }, + "organizationType": { + "type": "string", + "nullable": true + }, + "externalWebsiteUrl": { + "type": "string", + "nullable": true + }, + "justServeWebsiteUrl": { + "type": "string", + "nullable": true + }, + "logoUrl": { + "type": "string", + "nullable": true + }, + "bannerUrl": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "facebookUrl": { + "type": "string", + "nullable": true + }, + "googleUrl": { + "type": "string", + "nullable": true + }, + "twitterUrl": { + "type": "string", + "nullable": true + }, + "youTubeUrl": { + "type": "string", + "nullable": true + }, + "instagramUrl": { + "type": "string", + "nullable": true + }, + "linkedInUrl": { + "type": "string", + "nullable": true + }, + "owners": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileOwner" + }, + "nullable": true + }, + "contact": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileContact" + }, + "location": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileLocation" + }, + "upcomingProjects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileUpcomingProject" + }, + "nullable": true + }, + "activeProjects": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "projectsOwned": { + "type": "integer", + "format": "int32" + }, + "endorsedOrgsCount": { + "type": "integer", + "format": "int32" + }, + "updated": { + "type": "string", + "format": "date-time" + }, + "isFavorite": { + "type": "boolean" + }, + "announcementTitle": { + "type": "string", + "nullable": true + }, + "announcementImage": { + "type": "string", + "nullable": true + }, + "announcementDescription": { + "type": "string", + "nullable": true + }, + "announcementLink": { + "type": "string", + "nullable": true + }, + "relativityScore": { + "type": "number", + "format": "double" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.Mobile.MobileOrgSearchResponse": { + "type": "object", + "properties": { + "organizations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileOrg" + }, + "nullable": true + }, + "totalElements": { + "type": "integer", + "format": "int32" + }, + "pageSize": { + "type": "integer", + "format": "int32" + }, + "firstPage": { + "type": "boolean" + }, + "lastPage": { + "type": "boolean" + }, + "totalPages": { + "type": "integer", + "format": "int32" + }, + "currentPage": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.Mobile.MobileOwner": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "email": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.Mobile.MobileProject": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "projectStatus": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.ProjectStatus" + }, + "projectType": { + "type": "string", + "nullable": true + }, + "language": { + "type": "string", + "nullable": true + }, + "isActive": { + "type": "boolean" + }, + "updated": { + "type": "string", + "format": "date-time" + }, + "projectImage": { + "type": "string", + "nullable": true + }, + "title": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "longDescription": { + "type": "string", + "nullable": true + }, + "attachments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileAttachment" + }, + "nullable": true + }, + "projectOptions": { + "$ref": "#/components/schemas/JustServe.Contracts.Requests.Mobile.ProjectOptions" + }, + "firstStartDate": { + "type": "string", + "format": "date-time" + }, + "lastEndDate": { + "type": "string", + "format": "date-time" + }, + "nextOpportunity": { + "type": "string", + "format": "date-time" + }, + "relatedSkills": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "relatedInterests": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "events": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileLocationObject" + }, + "nullable": true + }, + "organizationId": { + "type": "string", + "nullable": true + }, + "organizationName": { + "type": "string", + "nullable": true + }, + "orgDescription": { + "type": "string", + "nullable": true + }, + "orgExternalURL": { + "type": "string", + "nullable": true + }, + "orgURL": { + "type": "string", + "nullable": true + }, + "orgContactName": { + "type": "string", + "nullable": true + }, + "orgContactEmail": { + "type": "string", + "nullable": true + }, + "orgContactPhone": { + "type": "string", + "nullable": true + }, + "orgImageLogo": { + "type": "string", + "nullable": true + }, + "volunteerCenterId": { + "type": "string", + "nullable": true + }, + "volunteerCenterName": { + "type": "string", + "nullable": true + }, + "volunteerCenterLogo": { + "type": "string", + "nullable": true + }, + "projectCreated": { + "type": "string", + "format": "date-time" + }, + "isFavorite": { + "type": "boolean" + }, + "isVolunteered": { + "type": "boolean" + }, + "distanceScore": { + "type": "number", + "format": "double" + }, + "relativityScore": { + "type": "number", + "format": "double" + }, + "justServeWebsiteUrl": { + "type": "string", + "nullable": true + }, + "externalVolunteerURL": { + "type": "string", + "nullable": true + }, + "isExternalProject": { + "type": "boolean" + }, + "days": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "times": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "multipleTimes": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.Mobile.MobileProjectSearchResponse": { + "type": "object", + "properties": { + "projects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileProject" + }, + "nullable": true + }, + "totalElements": { + "type": "integer", + "format": "int32" + }, + "totalElementsUnfiltered": { + "type": "integer", + "format": "int32" + }, + "pageSize": { + "type": "integer", + "format": "int32" + }, + "firstPage": { + "type": "boolean" + }, + "lastPage": { + "type": "boolean" + }, + "totalPages": { + "type": "integer", + "format": "int32" + }, + "currentPage": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.Mobile.MobileUpcomingProject": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "title": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "projectImage": { + "type": "string", + "nullable": true + }, + "projectType": { + "type": "string", + "nullable": true + }, + "nextOpportunityVolunteersNeeded": { + "type": "integer", + "format": "int32" + }, + "nextOpportunityEventId": { + "type": "string", + "nullable": true + }, + "nextOpportunityStart": { + "type": "string", + "format": "date-time" + }, + "nextOpportunityEnd": { + "type": "string", + "format": "date-time" + }, + "nextOpportunityLocation": { + "$ref": "#/components/schemas/JustServe.Contracts.Locations.Location" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.Mobile.MobileUserResponseModel": { + "type": "object", + "properties": { + "statusCode": { + "type": "integer", + "format": "int32" + }, + "responseText": { + "type": "string", + "nullable": true + }, + "contentType": { + "type": "string", + "nullable": true + }, + "token": { + "$ref": "#/components/schemas/JustServe.Contracts.Authentication.Token" + }, + "user": { + "$ref": "#/components/schemas/JustServe.Contracts.Users.MobileUser" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.Mobile.Notificationsettings": { + "type": "object", + "properties": { + "modified": { + "type": "string", + "format": "date-time" + }, + "weeklyUpdates": { + "type": "boolean" + }, + "weeklyUpdatesRadius": { + "type": "integer", + "format": "int32" + }, + "statusEmails": { + "type": "boolean" + }, + "contactHelpDisasterRecovery": { + "type": "boolean" + }, + "contactDonateDisasterRelief": { + "type": "boolean" + }, + "notifyUpcomingVolunteeredProjects": { + "type": "boolean" + }, + "notifyUpcomingVolunteeredProjectsDaysPrior": { + "type": "integer", + "format": "int32" + }, + "notifyByMobilePhone": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.Mobile.Projectsearchpreferences": { + "type": "object", + "properties": { + "modified": { + "type": "string", + "format": "date-time" + }, + "suitableForAllAges": { + "type": "boolean" + }, + "groupProject": { + "type": "boolean" + }, + "projectFiltersOpen": { + "type": "boolean" + }, + "volunteerFromHome": { + "type": "boolean" + }, + "volunteerFromAnywhere": { + "type": "boolean" + }, + "itemDonations": { + "type": "boolean" + }, + "wheelchairAccessible": { + "type": "boolean" + }, + "indoors": { + "type": "boolean" + }, + "forYouthGroups": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.Mobile.SkillInfo": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "category": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.Mobile.Skills": { + "type": "object", + "properties": { + "modified": { + "type": "string", + "format": "date-time" + }, + "ids": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.Mobile.TimesOfDay": { + "type": "object", + "properties": { + "modified": { + "type": "string", + "format": "date-time" + }, + "ids": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.Mobile.Tools": { + "type": "object", + "properties": { + "modified": { + "type": "string", + "format": "date-time" + }, + "ids": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.Name": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "nullable": true + }, + "firstName": { + "type": "string", + "nullable": true + }, + "lastName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.OnGoingSlim": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "start": { + "type": "string", + "format": "date-time" + }, + "end": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.OrganizationLite": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string", + "nullable": true + }, + "logo": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "contactName": { + "type": "string", + "nullable": true + }, + "contactPhone": { + "type": "string", + "nullable": true + }, + "contactEmail": { + "type": "string", + "nullable": true + }, + "url": { + "type": "string", + "nullable": true + }, + "ownerUserId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "ownerUserName": { + "type": "string", + "nullable": true + }, + "leadAdminUserId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "leadAdminUserName": { + "type": "string", + "nullable": true + }, + "location": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.OrganizationLocationLite" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.OrganizationLocationLite": { + "type": "object", + "properties": { + "displayAddress": { + "type": "string", + "nullable": true + }, + "displayAddress2": { + "type": "string", + "nullable": true + }, + "city": { + "type": "string", + "nullable": true + }, + "state": { + "type": "string", + "nullable": true + }, + "zipCode": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.OrganizationResult": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "organizationOwners": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserSlim" + }, + "nullable": true + }, + "organizationType": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.OrganizationType" + }, + "language": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "website": { + "type": "string", + "nullable": true + }, + "url": { + "type": "string", + "nullable": true + }, + "location": { + "$ref": "#/components/schemas/JustServe.Contracts.Locations.Location" + }, + "logo": { + "type": "string", + "nullable": true + }, + "banner": { + "type": "string", + "nullable": true + }, + "facebookPath": { + "type": "string", + "nullable": true + }, + "googlePath": { + "type": "string", + "nullable": true + }, + "twitterPath": { + "type": "string", + "nullable": true + }, + "youTubePath": { + "type": "string", + "nullable": true + }, + "instagramPath": { + "type": "string", + "nullable": true + }, + "linkedInPath": { + "type": "string", + "nullable": true + }, + "contactName": { + "type": "string", + "nullable": true + }, + "contactPhone": { + "type": "string", + "nullable": true + }, + "contactEmail": { + "type": "string", + "nullable": true + }, + "linkedProjects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectSlim" + }, + "nullable": true + }, + "projectsOwned": { + "type": "integer", + "format": "int32" + }, + "endorsedOrgsCount": { + "type": "integer", + "format": "int32" + }, + "orgIds": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "associatedProjectIds": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "created": { + "type": "string", + "format": "date-time" + }, + "updated": { + "type": "string", + "format": "date-time" + }, + "createdBy": { + "type": "string", + "nullable": true + }, + "updatedBy": { + "type": "string", + "nullable": true + }, + "distanceScore": { + "type": "number", + "format": "double" + }, + "relativityScore": { + "type": "number", + "format": "double" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.OrganizationSearchResponse": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "format": "int32" + }, + "organizations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.OrganizationResult" + }, + "nullable": true + }, + "location": { + "$ref": "#/components/schemas/JustServe.Contracts.Locations.LocationRad" + }, + "isLocationSupported": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.OrganizationSearchResults": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "organizationList": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.OrganizationResult" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.OrganizationSlim": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "organizationType": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.OrganizationType" + }, + "title": { + "type": "string", + "nullable": true + }, + "logo": { + "type": "string", + "nullable": true + }, + "url": { + "type": "string", + "nullable": true + }, + "internalURL": { + "type": "string", + "nullable": true + }, + "website": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "contactName": { + "type": "string", + "nullable": true + }, + "contactPhone": { + "type": "string", + "nullable": true + }, + "contactEmail": { + "type": "string", + "nullable": true + }, + "isIndividualProject": { + "type": "boolean" + }, + "status": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.OrganizationStatus" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.Personalsettings": { + "type": "object", + "properties": { + "modified": { + "type": "string", + "format": "date-time" + }, + "username": { + "type": "string", + "nullable": true + }, + "firstName": { + "type": "string", + "nullable": true + }, + "lastName": { + "type": "string", + "nullable": true + }, + "email": { + "type": "string", + "nullable": true + }, + "phone": { + "type": "string", + "nullable": true + }, + "language": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.PrivacyTermsDates": { + "type": "object", + "properties": { + "privacyDate": { + "type": "string", + "nullable": true + }, + "termsDate": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.ProjectAdmin": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "status": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.ProjectStatus" + }, + "projectType": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.ProjectType" + }, + "title": { + "type": "string", + "nullable": true + }, + "parsedLocation": { + "type": "string", + "nullable": true + }, + "longDescription": { + "type": "string", + "nullable": true + }, + "isExpiredProject": { + "type": "boolean" + }, + "isUnlistedProject": { + "type": "boolean" + }, + "startDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "endDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "signupType": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.ProjectSignupType" + }, + "locationType": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.ProjectLocationType" + }, + "submitterId": { + "type": "string", + "format": "uuid" + }, + "submitterName": { + "type": "string", + "nullable": true + }, + "submitterEmail": { + "type": "string", + "nullable": true + }, + "ownerId": { + "type": "string", + "format": "uuid" + }, + "ownerName": { + "type": "string", + "nullable": true + }, + "ownerEmail": { + "type": "string", + "nullable": true + }, + "sponsorId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "sponsorName": { + "type": "string", + "nullable": true + }, + "sponsorEmail": { + "type": "string", + "nullable": true + }, + "organizationId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "organizationName": { + "type": "string", + "nullable": true + }, + "organizationUrl": { + "type": "string", + "nullable": true + }, + "ownerLog": { + "type": "string", + "nullable": true + }, + "timeType": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.ProjectTimeType" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.ProjectAttributes": { + "type": "object", + "properties": { + "suitableForAllAges": { + "type": "boolean" + }, + "groupProject": { + "type": "boolean" + }, + "itemDonations": { + "type": "boolean" + }, + "wheelchairAccessible": { + "type": "boolean" + }, + "indoors": { + "type": "boolean" + }, + "forYouthGroups": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.ProjectBasicInformation": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "typeId": { + "type": "integer", + "format": "int32" + }, + "title": { + "type": "string", + "nullable": true + }, + "startDateTimeOffset": { + "type": "string", + "format": "date-time" + }, + "endDateTimeOffset": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.ProjectCard": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "statusId": { + "type": "integer", + "format": "int32" + }, + "projectTypeId": { + "type": "integer", + "format": "int32" + }, + "title": { + "type": "string", + "nullable": true + }, + "shortDescription": { + "type": "string", + "nullable": true + }, + "imagePath": { + "type": "string", + "nullable": true + }, + "organizationName": { + "type": "string", + "nullable": true + }, + "suitableAllAges": { + "type": "boolean" + }, + "groupProjects": { + "type": "boolean" + }, + "volunteerRemotely": { + "type": "boolean" + }, + "volunteerFromAnywhere": { + "type": "boolean" + }, + "itemDonations": { + "type": "boolean" + }, + "wheelchairAccessible": { + "type": "boolean" + }, + "indoors": { + "type": "boolean" + }, + "forYouthGroups": { + "type": "boolean" + }, + "totalNextOpportunities": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "regionSelected": { + "type": "boolean" + }, + "nextOpportunity": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectCardOpportunity" + }, + "location": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectCardLocation" + }, + "countryCode": { + "type": "string", + "nullable": true + }, + "boundaries": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.RegionCivicGeography" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.ProjectCardLocation": { + "type": "object", + "properties": { + "city": { + "type": "string", + "nullable": true + }, + "state": { + "type": "string", + "nullable": true + }, + "postal": { + "type": "string", + "nullable": true + }, + "latitude": { + "type": "number", + "format": "double" + }, + "longitude": { + "type": "number", + "format": "double" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.ProjectCardOpportunity": { + "type": "object", + "properties": { + "projectEventId": { + "type": "string", + "format": "uuid" + }, + "start": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "end": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "volunteersNeeded": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "timezone": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.ProjectDate": { + "type": "object", + "properties": { + "dtlId": { + "type": "string", + "nullable": true + }, + "timeSlotId": { + "type": "string", + "nullable": true + }, + "ongoingId": { + "type": "string", + "nullable": true + }, + "volunteeredRecurrenceId": { + "type": "string", + "nullable": true + }, + "recurringTimeId": { + "type": "string", + "nullable": true + }, + "startDate": { + "type": "string", + "format": "date-time" + }, + "endDate": { + "type": "string", + "format": "date-time" + }, + "needed": { + "type": "integer", + "format": "int32" + }, + "volunteered": { + "type": "integer", + "format": "int32" + }, + "totalVolunteersNeeded": { + "type": "integer", + "format": "int32" + }, + "groupLimit": { + "type": "integer", + "format": "int32" + }, + "eventCapReached": { + "type": "boolean" + }, + "volunteerResponsibilities": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.ProjectEventCustom": { + "type": "object", + "properties": { + "projectEventId": { + "type": "string", + "format": "uuid" + }, + "projectEventStartDateTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "projectEventStartDateTimeOffset": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "projectEventTimeString": { + "type": "string", + "nullable": true + }, + "volunteerResponsibility": { + "type": "string", + "nullable": true + }, + "projectEventStatus": { + "type": "integer", + "format": "int32" + }, + "currentVolunteers": { + "type": "integer", + "format": "int32" + }, + "totalVolunteersNeeded": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "volunteerCap": { + "type": "boolean" + }, + "groupLimit": { + "type": "integer", + "format": "int32" + }, + "groupCap": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.ProjectFiltersTranslation": { + "type": "object", + "properties": { + "language": { + "type": "string", + "nullable": true + }, + "skills": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.keyvalue" + }, + "nullable": true + }, + "interests": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.keyvalue" + }, + "nullable": true + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.keyvalue" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.ProjectLocationDates": { + "type": "object", + "properties": { + "location": { + "$ref": "#/components/schemas/JustServe.Contracts.Locations.Location" + }, + "projectDates": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectDate" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.ProjectPreview": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "title": { + "type": "string", + "nullable": true + }, + "imagePath": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "start": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "end": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "ongoing": { + "type": "boolean" + }, + "remote": { + "type": "boolean" + }, + "location": { + "$ref": "#/components/schemas/JustServe.Contracts.Locations.Location" + }, + "boundaries": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.RegionCivicGeography" + }, + "nullable": true + }, + "volunteersNeeded": { + "type": "integer", + "format": "int32" + }, + "multipleTimes": { + "type": "boolean" + }, + "organizationName": { + "type": "string", + "nullable": true + }, + "organizationURL": { + "type": "string", + "nullable": true + }, + "isSponsor": { + "type": "boolean" + }, + "underReview": { + "type": "boolean" + }, + "projectAttributes": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectAttributes" + }, + "projectType": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.ProjectType" + }, + "dtlId": { + "type": "string", + "nullable": true + }, + "timeSlotId": { + "type": "string", + "nullable": true + }, + "ongoingId": { + "type": "string", + "nullable": true + }, + "volunteeredRecurrenceId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.ProjectResponse": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "projectType": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.ProjectType" + }, + "status": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.ProjectStatus" + }, + "title": { + "type": "string", + "nullable": true + }, + "imagePath": { + "type": "string", + "nullable": true + }, + "created": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "start": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "startFormatted": { + "type": "string", + "format": "date-time" + }, + "end": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "endFormatted": { + "type": "string", + "format": "date-time" + }, + "nextOpportunityEventId": { + "type": "string", + "nullable": true + }, + "nextOpportunityStart": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "nextOpportunityEnd": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "timeSlots": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.TimeSlotSlim" + }, + "nullable": true + }, + "onGoing": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.OnGoingSlim" + }, + "nullable": true + }, + "adminInfo": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.AdminInfo" + }, + "nullable": true + }, + "shortDescription": { + "type": "string", + "nullable": true + }, + "distanceScore": { + "type": "number", + "format": "double" + }, + "relativityScore": { + "type": "number", + "format": "double" + }, + "location": { + "$ref": "#/components/schemas/JustServe.Contracts.Locations.LocationRad" + }, + "locations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Locations.LocationRad" + }, + "nullable": true + }, + "multipleLocations": { + "type": "boolean" + }, + "multipleTimes": { + "type": "boolean" + }, + "ongoing": { + "type": "boolean" + }, + "remote": { + "type": "boolean" + }, + "linkedOrganization": { + "type": "string", + "nullable": true + }, + "organizationName": { + "type": "string", + "nullable": true + }, + "organizationURL": { + "type": "string", + "nullable": true + }, + "organizationExternalURL": { + "type": "string", + "nullable": true + }, + "organizationLogo": { + "type": "string", + "nullable": true + }, + "language": { + "type": "string", + "nullable": true + }, + "isActive": { + "type": "boolean" + }, + "isIndividualProject": { + "type": "boolean" + }, + "isDirectlyOwnedOrSponsored": { + "type": "boolean" + }, + "isOwnedOrRepresentedViaOrganization": { + "type": "boolean" + }, + "updated": { + "type": "string", + "format": "date-time" + }, + "projectOwnerName": { + "type": "string", + "nullable": true + }, + "projectOwnerUserId": { + "type": "string", + "nullable": true + }, + "volunteerFromAnywhere": { + "type": "boolean" + }, + "volunteersNeeded": { + "type": "integer", + "format": "int32" + }, + "underReview": { + "type": "boolean" + }, + "projectAttributes": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectAttributes" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.ProjectSearchResponse": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "format": "int32" + }, + "projects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectResponse" + }, + "nullable": true + }, + "searchLatitude": { + "type": "number", + "format": "double" + }, + "searchLongitude": { + "type": "number", + "format": "double" + }, + "location": { + "$ref": "#/components/schemas/JustServe.Contracts.Locations.LocationRad" + }, + "isLocationSupported": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.ProjectSlim": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "title": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "projectExpired": { + "type": "boolean" + }, + "orgAuthorizationPending": { + "type": "boolean", + "nullable": true + }, + "status": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.ProjectStatus" + }, + "startDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "endDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "locations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Locations.Location" + }, + "nullable": true + }, + "lastChangeReason": { + "type": "string", + "nullable": true + }, + "needsAttention": { + "type": "boolean", + "nullable": true + }, + "isActive": { + "type": "boolean", + "nullable": true + }, + "isUnlistedProject": { + "type": "boolean" + }, + "isDirectlyOwnedOrSponsored": { + "type": "boolean" + }, + "isOwnedOrRepresentedViaOrganization": { + "type": "boolean" + }, + "isIndividualProject": { + "type": "boolean" + }, + "projectOwnerName": { + "type": "string", + "nullable": true + }, + "projectOwnerUserId": { + "type": "string", + "nullable": true + }, + "relativityScore": { + "type": "number", + "format": "double" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.ProjectTiny": { + "type": "object", + "properties": { + "projectId": { + "type": "string", + "format": "uuid" + }, + "skillIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "interestIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.ProjectVolunteerHeader": { + "type": "object", + "properties": { + "shiftTitle": { + "type": "string", + "nullable": true + }, + "id": { + "type": "string", + "nullable": true + }, + "dtlId": { + "type": "string", + "nullable": true + }, + "time": { + "type": "string", + "nullable": true + }, + "timeFormatted": { + "type": "string", + "format": "date-time" + }, + "volunteersTotal": { + "type": "integer", + "format": "int32" + }, + "volunteersNeeded": { + "type": "integer", + "format": "int32" + }, + "location": { + "$ref": "#/components/schemas/JustServe.Contracts.Locations.Location" + }, + "volunteers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.VolunteerDetails" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.ProjectVolunteersInterested": { + "type": "object", + "properties": { + "projectId": { + "type": "string", + "nullable": true + }, + "title": { + "type": "string", + "nullable": true + }, + "groupProject": { + "type": "boolean" + }, + "isOngoing": { + "type": "boolean" + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectVolunteerHeader" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.ProjectsAndIdList": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "format": "int32" + }, + "ids": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "projects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectResponse" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.ProjectsSlimSearchResults": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "format": "int32" + }, + "user": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserSlim" + }, + "projects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectSlim" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.ProjectsView": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "id": { + "type": "string", + "nullable": true + }, + "logo": { + "type": "string", + "nullable": true + }, + "url": { + "type": "string", + "nullable": true + }, + "totalProjectCount": { + "type": "integer", + "format": "int32" + }, + "projects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectResponse" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.QuickSearchTitle": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "title": { + "type": "string", + "nullable": true + }, + "created": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.ReportableProjectSub": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "onGoing": { + "type": "boolean" + }, + "date": { + "type": "string", + "format": "date-time" + }, + "hours": { + "type": "number", + "format": "double" + }, + "timeSlotId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.ReportedHours": { + "type": "object", + "properties": { + "projectId": { + "type": "string", + "nullable": true + }, + "logo": { + "type": "string", + "nullable": true + }, + "sub": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ReportableProjectSub" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.SearchResponseObject": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "customField": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.SearchResponseWithRelativityScore": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "customField": { + "type": "string", + "nullable": true + }, + "relativityScore": { + "type": "number", + "format": "double" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.StateCountsResponse": { + "type": "object", + "properties": { + "stateName": { + "type": "string", + "nullable": true + }, + "civicStateId": { + "type": "string", + "nullable": true + }, + "cityCounts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.CityCountsResponse" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.StoryLimited": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "projectId": { + "type": "string", + "nullable": true + }, + "language": { + "type": "string", + "nullable": true + }, + "title": { + "type": "string", + "nullable": true + }, + "introduction": { + "type": "string", + "nullable": true + }, + "body": { + "type": "string", + "nullable": true + }, + "location": { + "$ref": "#/components/schemas/JustServe.Contracts.Locations.LocationRad" + }, + "relativityScore": { + "type": "number", + "format": "double" + }, + "image": { + "$ref": "#/components/schemas/JustServe.Contracts.ImagePairDetails" + }, + "videoURL": { + "type": "string", + "nullable": true + }, + "updated": { + "type": "string", + "format": "date-time" + }, + "created": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.StoryMinimal": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "title": { + "type": "string", + "nullable": true + }, + "projectTitle": { + "type": "string", + "nullable": true + }, + "projectId": { + "type": "string", + "nullable": true + }, + "projectExpired": { + "type": "boolean" + }, + "posted": { + "type": "string", + "format": "date-time" + }, + "ownerId": { + "type": "string", + "nullable": true + }, + "ownerName": { + "type": "string", + "nullable": true + }, + "projectIsActive": { + "type": "boolean" + }, + "relativityScore": { + "type": "number", + "format": "double" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.StorySearchResults": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "format": "int32" + }, + "stories": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.StoryMinimal" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.SuggestionResponse": { + "type": "object", + "properties": { + "location": { + "type": "string", + "nullable": true + }, + "locationData": { + "$ref": "#/components/schemas/JustServe.Contracts.Locations.LocationRad" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.TimeSlotSlim": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "start": { + "type": "string", + "format": "date-time" + }, + "startFormatted": { + "type": "string", + "format": "date-time" + }, + "end": { + "type": "string", + "format": "date-time" + }, + "endFormatted": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.UpdatedBy": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "boundaryName": { + "type": "string", + "nullable": true + }, + "role": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.Role" + }, + "isLead": { + "type": "boolean" + }, + "updatedDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.UserLocationCheckResponse": { + "type": "object", + "properties": { + "internationalCivicAdmin": { + "type": "boolean" + }, + "internationalLDSAdmin": { + "type": "boolean" + }, + "internationalAdmin": { + "type": "boolean" + }, + "usaCivicAdmin": { + "type": "boolean" + }, + "usaldsAdmin": { + "type": "boolean" + }, + "usaAdmin": { + "type": "boolean" + }, + "utahLDSAdmin": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.UserNewsletter": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "format": "uuid" + }, + "volunteerNewsletter": { + "type": "boolean" + }, + "username": { + "type": "string", + "nullable": true + }, + "email": { + "type": "string", + "nullable": true + }, + "firstName": { + "type": "string", + "nullable": true + }, + "lastName": { + "type": "string", + "nullable": true + }, + "longitude": { + "type": "number", + "format": "double" + }, + "latitude": { + "type": "number", + "format": "double" + }, + "interests": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "skills": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "tools": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "isDeleted": { + "type": "boolean" + }, + "locale": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.UserPendingProject": { + "type": "object", + "properties": { + "projectId": { + "type": "string", + "format": "uuid" + }, + "projectTitle": { + "type": "string", + "nullable": true + }, + "projectLocation": { + "type": "string", + "nullable": true + }, + "projectSubmittedDate": { + "type": "string", + "format": "date-time" + }, + "projectHoursSinceSubmitted": { + "type": "integer", + "format": "int32" + }, + "projectOwnerId": { + "type": "string", + "format": "uuid" + }, + "projectOwnerName": { + "type": "string", + "nullable": true + }, + "projectSubmitterId": { + "type": "string", + "format": "uuid" + }, + "projectSubmitterName": { + "type": "string", + "nullable": true + }, + "projectSignupType": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.ProjectSignupType" + }, + "projectType": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.ProjectType" + }, + "projectLocationType": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.ProjectLocationType" + }, + "projectMultipleTimes": { + "type": "boolean", + "nullable": true + }, + "projectExternalRedirect": { + "type": "boolean" + }, + "projectOwnerLog": { + "type": "string", + "nullable": true + }, + "unlisted": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.UserPendingProjectCounts": { + "type": "object", + "properties": { + "pendingProjectCounts": { + "type": "integer", + "format": "int32" + }, + "organizationPendingProjectCounts": { + "type": "integer", + "format": "int32" + }, + "totalPendingProjectCounts": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.UserResult": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "firstName": { + "type": "string", + "nullable": true + }, + "lastName": { + "type": "string", + "nullable": true + }, + "userName": { + "type": "string", + "nullable": true + }, + "language": { + "type": "string", + "nullable": true + }, + "address": { + "type": "string", + "nullable": true + }, + "city": { + "type": "string", + "nullable": true + }, + "state": { + "type": "string", + "nullable": true + }, + "postal": { + "type": "string", + "nullable": true + }, + "country": { + "type": "string", + "nullable": true + }, + "countryCode": { + "type": "string", + "nullable": true + }, + "countryCode2Char": { + "type": "string", + "nullable": true + }, + "stakeUnitNumber": { + "type": "string", + "nullable": true + }, + "areaUnitNumber": { + "type": "string", + "nullable": true + }, + "areaName": { + "type": "string", + "nullable": true + }, + "areaGeographyId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "isActive": { + "type": "boolean" + }, + "trainedDate": { + "type": "string", + "format": "date-time" + }, + "email": { + "type": "string", + "nullable": true + }, + "phone": { + "type": "string", + "nullable": true + }, + "keywords": { + "type": "string", + "nullable": true + }, + "interests": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "skills": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "tools": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "userSkills": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "userInterests": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "userTools": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "otherSkills": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "otherInterests": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "otherTools": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "suitableAllAges": { + "type": "boolean" + }, + "groupProject": { + "type": "boolean" + }, + "projectFiltersOpen": { + "type": "boolean" + }, + "volunteerRemotely": { + "type": "boolean" + }, + "itemDonations": { + "type": "boolean" + }, + "wheelchairAccessible": { + "type": "boolean" + }, + "indoors": { + "type": "boolean" + }, + "forYouthGroups": { + "type": "boolean" + }, + "sponsorRole": { + "type": "boolean" + }, + "timePref": { + "type": "integer", + "format": "int32" + }, + "permissions": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "permissionsText": { + "type": "string", + "nullable": true + }, + "isAdmin": { + "type": "boolean" + }, + "isSuperAdmin": { + "type": "boolean" + }, + "assignedLDSAreas": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "generalEmailOptIn": { + "type": "boolean" + }, + "generalMarketingOptIn": { + "type": "boolean", + "nullable": true + }, + "volunteerNewsletter": { + "type": "boolean" + }, + "includeSponsorAdminInfo": { + "type": "boolean" + }, + "volunteerNewsletterRadius": { + "type": "integer", + "format": "int32" + }, + "radiusType": { + "type": "integer", + "format": "int32" + }, + "adminNewsletter": { + "type": "boolean" + }, + "viewedWhatsNew": { + "type": "boolean" + }, + "favoriteProjects": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "favoriteOrganizations": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "volunteeredProjects": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "volunteeredTimeSlots": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectResponse" + }, + "nullable": true + }, + "reportedHours": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ReportedHours" + }, + "nullable": true + }, + "ownsDrafts": { + "type": "integer", + "format": "int32" + }, + "ownsProjects": { + "type": "integer", + "format": "int32" + }, + "disasterReliefRegistrationSeen": { + "type": "boolean", + "nullable": true + }, + "donateToDisasterReliefChecked": { + "type": "boolean", + "nullable": true + }, + "volunteerForDisasterReliefChecked": { + "type": "boolean", + "nullable": true + }, + "daysAvailable": { + "type": "array", + "items": { + "$ref": "#/components/schemas/System.DayOfWeek" + }, + "nullable": true + }, + "timesAvailable": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.TimeOfDay" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.UserResultBounded": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "firstName": { + "type": "string", + "nullable": true + }, + "lastName": { + "type": "string", + "nullable": true + }, + "role": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.Role" + }, + "isLead": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "phone": { + "type": "string", + "nullable": true + }, + "keywords": { + "type": "string", + "nullable": true + }, + "isActive": { + "type": "boolean" + }, + "updatedBy": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UpdatedBy" + }, + "permissions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Authentication.BoundaryPermissionBounded" + }, + "nullable": true + }, + "civicBoundaries": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Geographies.GeographyBounded" + }, + "nullable": true + }, + "churchBoundaries": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Geographies.GeographyBounded" + }, + "nullable": true + }, + "organizations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Organizations.OrganizationBounded" + }, + "nullable": true + }, + "pendingOrganizations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.ProjectBounded" + }, + "nullable": true + }, + "pendingProjects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.ProjectBounded" + }, + "nullable": true + }, + "activeProjects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.ProjectBounded" + }, + "nullable": true + }, + "historicalProjects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.ProjectBounded" + }, + "nullable": true + }, + "draftProjects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.ProjectBounded" + }, + "nullable": true + }, + "templateProjects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Projects.ProjectBounded" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.UserResultLimited": { + "type": "object", + "properties": { + "firstName": { + "type": "string", + "nullable": true + }, + "lastName": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "email": { + "type": "string", + "nullable": true + }, + "userId": { + "type": "string", + "nullable": true + }, + "projects": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectSlim" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.UserSearchResult": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "firstName": { + "type": "string", + "nullable": true + }, + "lastName": { + "type": "string", + "nullable": true + }, + "userName": { + "type": "string", + "nullable": true + }, + "language": { + "type": "string", + "nullable": true + }, + "address": { + "type": "string", + "nullable": true + }, + "neighborhood": { + "type": "string", + "nullable": true + }, + "city": { + "type": "string", + "nullable": true + }, + "state": { + "type": "string", + "nullable": true + }, + "postal": { + "type": "string", + "nullable": true + }, + "country": { + "type": "string", + "nullable": true + }, + "countryCode": { + "type": "string", + "nullable": true + }, + "isActive": { + "type": "boolean" + }, + "skills": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "interests": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "tools": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "email": { + "type": "string", + "nullable": true + }, + "phone": { + "type": "string", + "nullable": true + }, + "keywords": { + "type": "string", + "nullable": true + }, + "adminRole": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.Role" + }, + "organizations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Organizations.Organization" + }, + "nullable": true + }, + "permissions": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "assignedAreas": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "churchBoundaries": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "civicBoundaries": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "manageableAdmin": { + "type": "boolean" + }, + "showsSensitiveInfo": { + "type": "boolean" + }, + "distance": { + "type": "integer", + "format": "int32" + }, + "relativityScore": { + "type": "number", + "format": "double" + }, + "volunteerProjects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.ProjectSlim" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.UserSearchResults": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "format": "int32" + }, + "users": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserSearchResult" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.UserSlim": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "lastName": { + "type": "string", + "nullable": true, + "deprecated": true + }, + "email": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.UserSlimSearchResult": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "firstName": { + "type": "string", + "nullable": true + }, + "lastName": { + "type": "string", + "nullable": true + }, + "userName": { + "type": "string", + "nullable": true + }, + "email": { + "type": "string", + "nullable": true + }, + "state": { + "type": "string", + "nullable": true + }, + "adminRole": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.Role" + }, + "adminRoleName": { + "type": "string", + "nullable": true + }, + "permissions": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "organizationName": { + "type": "string", + "nullable": true + }, + "churchBoundaryName": { + "type": "string", + "nullable": true + }, + "showsSensitiveInfo": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.UserSlimSearchResults": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "format": "int32" + }, + "users": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.UserSlimSearchResult" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.VolunteerDetails": { + "type": "object", + "properties": { + "volunteerId": { + "type": "string", + "nullable": true + }, + "userId": { + "type": "string", + "nullable": true + }, + "facebook": { + "type": "boolean" + }, + "name": { + "type": "string", + "nullable": true + }, + "email": { + "type": "string", + "nullable": true + }, + "volunteerLanguage": { + "type": "string", + "nullable": true + }, + "phone": { + "type": "string", + "nullable": true + }, + "hoursServed": { + "type": "number", + "format": "double" + }, + "adminReportedHours": { + "type": "number", + "format": "double" + }, + "date": { + "type": "string", + "format": "date-time" + }, + "dateFormatted": { + "type": "string", + "format": "date-time" + }, + "volunteeredOn": { + "type": "string", + "format": "date-time" + }, + "groupSize": { + "type": "integer", + "format": "int32" + }, + "neighborhood": { + "type": "string", + "nullable": true + }, + "volunteerNotes": { + "type": "string", + "nullable": true + }, + "city": { + "type": "string", + "nullable": true + }, + "state": { + "type": "string", + "nullable": true + }, + "postal": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.VolunteerLiteDetails": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "format": "uuid" + }, + "volunteerId": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string", + "nullable": true + }, + "email": { + "type": "string", + "nullable": true + }, + "phone": { + "type": "string", + "nullable": true + }, + "hoursServed": { + "type": "number", + "format": "double" + }, + "adminReportedHours": { + "type": "number", + "format": "double" + }, + "groupSize": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "volunteerDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "projectEventId": { + "type": "string", + "format": "uuid" + }, + "projectEventStartDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "projectEventStartDateTimeOffset": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "projectEventEndDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "projectEventEndDateTimeOffset": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "note": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.VolunteerMatchProject": { + "type": "object", + "properties": { + "projectId": { + "type": "string", + "nullable": true + }, + "link": { + "type": "string", + "nullable": true + }, + "title": { + "type": "string", + "nullable": true + }, + "shortDescription": { + "type": "string", + "nullable": true + }, + "longDescription": { + "type": "string", + "nullable": true + }, + "image": { + "type": "string", + "nullable": true + }, + "location": { + "type": "string", + "nullable": true + }, + "suitableAllAges": { + "type": "boolean" + }, + "groupProjects": { + "type": "boolean" + }, + "volunteerRemotely": { + "type": "boolean" + }, + "volunteerFromAnywhere": { + "type": "boolean" + }, + "itemDonations": { + "type": "boolean" + }, + "wheelchairAccessible": { + "type": "boolean" + }, + "indoors": { + "type": "boolean" + }, + "forYouthGroups": { + "type": "boolean" + }, + "skills": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "interests": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "inPerson": { + "type": "boolean" + }, + "lastUpdated": { + "type": "string", + "nullable": true + }, + "updateStatus": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.WidgetProjectStatus" + }, + "orgId": { + "type": "string", + "nullable": true + }, + "orgName": { + "type": "string", + "nullable": true + }, + "orgURL": { + "type": "string", + "nullable": true + }, + "shifts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.VolunteerMatchProjectShift" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.VolunteerMatchProjectShift": { + "type": "object", + "properties": { + "start": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "end": { + "type": "string", + "format": "date-time", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.WidgetProjectResults": { + "type": "object", + "properties": { + "totalResults": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Responses.WidgetProjectStatus": { + "enum": [ + "Active", + "Inactive" + ], + "type": "integer", + "format": "int32" + }, + "JustServe.Contracts.Responses.keyvalue": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "value": { + "type": "string", + "nullable": true + }, + "lang": { + "type": "string", + "nullable": true + }, + "category": { + "type": "string", + "nullable": true + }, + "current": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Story": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "projectId": { + "type": "string", + "nullable": true + }, + "projectTitle": { + "type": "string", + "nullable": true + }, + "isProjectActive": { + "type": "boolean" + }, + "language": { + "type": "string", + "nullable": true + }, + "ownerId": { + "type": "string", + "nullable": true + }, + "title": { + "type": "string", + "nullable": true + }, + "introduction": { + "type": "string", + "nullable": true + }, + "body": { + "type": "string", + "nullable": true + }, + "images": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.ImagePairDetails" + }, + "nullable": true + }, + "mainImage": { + "$ref": "#/components/schemas/JustServe.Contracts.ImagePairDetails" + }, + "videos": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "videoUrl": { + "type": "string", + "nullable": true + }, + "location": { + "$ref": "#/components/schemas/JustServe.Contracts.Locations.Location" + }, + "created": { + "type": "string", + "format": "date-time" + }, + "updated": { + "type": "string", + "format": "date-time" + }, + "createdBy": { + "type": "string", + "nullable": true + }, + "updatedBy": { + "type": "string", + "nullable": true + }, + "appendedIntro": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Users.DynamicsNewsletterInfo": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "nullable": true + }, + "emailProjectData": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Users.ProjectIdAndDynamicsType" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Users.DynamicsNewsletterInfoAllUsers": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "runDate": { + "type": "string", + "format": "date-time" + }, + "userNewsletterInfo": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Users.DynamicsNewsletterInfo" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Users.DynamicsNewsletterInfoMetadata": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "runDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Users.FavoriteOrganization": { + "type": "object", + "properties": { + "organizationId": { + "type": "string", + "nullable": true + }, + "favoritedOrgOn": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Users.FavoriteProject": { + "type": "object", + "properties": { + "projectId": { + "type": "string", + "nullable": true + }, + "favoritedProjectOn": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Users.MobileUser": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "nullable": true + }, + "shouldPromptUserForZip": { + "type": "boolean" + }, + "userVerified": { + "type": "boolean" + }, + "showProfileIncompleteNotification": { + "type": "boolean" + }, + "personal": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Personalsettings" + }, + "location": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.MobileLocationSlim" + }, + "projectOptions": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.Projectsearchpreferences" + }, + "contactOptions": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.Notificationsettings" + }, + "interests": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.Interests" + }, + "skills": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.Skills" + }, + "tools": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.Tools" + }, + "daysOfTheWeek": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.DaysOfTheWeek" + }, + "timesOfDay": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.TimesOfDay" + }, + "favoriteOrganizations": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.Favoriteorganizations" + }, + "favoriteProjects": { + "$ref": "#/components/schemas/JustServe.Contracts.Responses.Mobile.Favoriteprojects" + }, + "volunteeredEvents": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Users.NotificationPreferences": { + "type": "object", + "properties": { + "notifyUpcomingVolunteeredProjects": { + "type": "boolean" + }, + "notifyUpcomingVolunteeredProjectsDaysPrior": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Users.ProjectIdAndDynamicsType": { + "type": "object", + "properties": { + "sectionType": { + "type": "string", + "nullable": true + }, + "projectId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Users.User": { + "required": [ + "firstName" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "firstName": { + "minLength": 1, + "type": "string" + }, + "lastName": { + "type": "string", + "nullable": true + }, + "email": { + "type": "string", + "nullable": true + }, + "userName": { + "type": "string", + "nullable": true + }, + "phone": { + "type": "string", + "nullable": true + }, + "keywords": { + "type": "string", + "nullable": true + }, + "language": { + "type": "string", + "nullable": true + }, + "location": { + "$ref": "#/components/schemas/JustServe.Contracts.Locations.Location" + }, + "unsubscribeDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "facebookId": { + "type": "string", + "nullable": true + }, + "facebookZipCodeNotified": { + "type": "boolean" + }, + "googleUserId": { + "type": "string", + "nullable": true + }, + "appleUserId": { + "type": "string", + "nullable": true + }, + "generalEmailOptIn": { + "type": "boolean" + }, + "generalMarketingOptIn": { + "type": "boolean", + "nullable": true + }, + "volunteerNewsletter": { + "type": "boolean" + }, + "receiveTexts": { + "type": "boolean" + }, + "includeSponsorAdminInfo": { + "type": "boolean" + }, + "volunteerNewsletterRadius": { + "type": "integer", + "format": "int32" + }, + "radiusType": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.DistanceType" + }, + "adminNewsletter": { + "type": "boolean" + }, + "adminNewsletterLastNotified": { + "type": "string", + "format": "date-time" + }, + "favoriteOrganizations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Users.FavoriteOrganization" + }, + "nullable": true + }, + "favoriteProjects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Users.FavoriteProject" + }, + "nullable": true + }, + "roles": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "claims": { + "type": "array", + "items": { + "$ref": "#/components/schemas/System.Security.Claims.Claim" + }, + "nullable": true + }, + "isActive": { + "type": "boolean" + }, + "lockoutCount": { + "type": "integer", + "format": "int32" + }, + "trainedDate": { + "type": "string", + "format": "date-time" + }, + "lockoutDateTime": { + "type": "string", + "format": "date-time" + }, + "skills": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true, + "deprecated": true + }, + "interests": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true, + "deprecated": true + }, + "tools": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true, + "deprecated": true + }, + "userSkills": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "userInterests": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "userTools": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "daysAvailableList": { + "type": "array", + "items": { + "$ref": "#/components/schemas/System.DayOfWeek" + }, + "nullable": true + }, + "timesAvailableList": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.TimeOfDay" + }, + "nullable": true + }, + "suitableAllAges": { + "type": "boolean" + }, + "groupProject": { + "type": "boolean" + }, + "projectFiltersOpen": { + "type": "boolean" + }, + "volunteerRemotely": { + "type": "boolean" + }, + "itemDonations": { + "type": "boolean" + }, + "wheelchairAccessible": { + "type": "boolean" + }, + "indoors": { + "type": "boolean" + }, + "sponsorRole": { + "type": "boolean" + }, + "timePref": { + "type": "integer", + "format": "int32" + }, + "password": { + "type": "string", + "nullable": true + }, + "salt": { + "type": "string", + "nullable": true + }, + "createProjectRoleGranted": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "viewedWhatsNewDate": { + "type": "string", + "format": "date-time" + }, + "lastNotified": { + "type": "string", + "format": "date-time" + }, + "activationEmailLastNotified": { + "type": "string", + "format": "date-time" + }, + "activationEmailReminderCount": { + "type": "integer", + "format": "int32" + }, + "lastSignIn": { + "type": "string", + "format": "date-time" + }, + "userHistory": { + "$ref": "#/components/schemas/JustServe.Contracts.Logging.UserHistory" + }, + "created": { + "type": "string", + "format": "date-time" + }, + "updated": { + "type": "string", + "format": "date-time" + }, + "deleted": { + "type": "boolean" + }, + "deletedOn": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "deletedBy": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "personalInfoModifiedDate": { + "type": "string", + "format": "date-time" + }, + "notificationSettingsModifiedDate": { + "type": "string", + "format": "date-time" + }, + "searchPreferencesModifiedDate": { + "type": "string", + "format": "date-time" + }, + "locationModifiedDate": { + "type": "string", + "format": "date-time" + }, + "skillsModifiedDate": { + "type": "string", + "format": "date-time" + }, + "interestsModifiedDate": { + "type": "string", + "format": "date-time" + }, + "toolsModifiedDate": { + "type": "string", + "format": "date-time" + }, + "favProjectsModifiedDate": { + "type": "string", + "format": "date-time" + }, + "favOrgsModifiedDate": { + "type": "string", + "format": "date-time" + }, + "daysAvailableModifiedDate": { + "type": "string", + "format": "date-time" + }, + "timesAvailableModifiedDate": { + "type": "string", + "format": "date-time" + }, + "notificationPreferences": { + "$ref": "#/components/schemas/JustServe.Contracts.Users.NotificationPreferences" + }, + "disasterReliefRegistrationSeen": { + "type": "boolean" + }, + "donateToDisasterReliefChecked": { + "type": "boolean" + }, + "volunteerForDisasterReliefChecked": { + "type": "boolean" + }, + "disasterReliefAvailabilityDate": { + "type": "string", + "format": "date-time" + }, + "forYouthGroups": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Users.UserRegistrationModel": { + "required": [ + "email", + "firstName", + "lastName", + "password" + ], + "type": "object", + "properties": { + "firstName": { + "maxLength": 50, + "minLength": 1, + "type": "string" + }, + "lastName": { + "maxLength": 50, + "minLength": 1, + "type": "string" + }, + "email": { + "minLength": 1, + "pattern": "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$", + "type": "string" + }, + "password": { + "maxLength": 100, + "minLength": 8, + "type": "string", + "format": "password" + }, + "postal": { + "type": "string", + "nullable": true + }, + "city": { + "type": "string", + "nullable": true + }, + "language": { + "type": "string", + "nullable": true + }, + "clientId": { + "type": "string", + "nullable": true + }, + "clientSecret": { + "type": "string", + "nullable": true + }, + "latitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "longitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "country": { + "type": "string", + "nullable": true + }, + "countryCode": { + "type": "string", + "nullable": true + }, + "appleToken": { + "type": "string", + "nullable": true + }, + "appleAuthCode": { + "type": "string", + "nullable": true + }, + "googleToken": { + "type": "string", + "nullable": true + }, + "facebookToken": { + "type": "string", + "nullable": true + }, + "userName": { + "type": "string", + "nullable": true, + "deprecated": true + }, + "countryCodeAlpha3": { + "type": "string", + "nullable": true, + "deprecated": true + }, + "state": { + "type": "string", + "nullable": true, + "deprecated": true + }, + "address": { + "type": "string", + "nullable": true, + "deprecated": true + }, + "distanceUnits": { + "type": "string", + "nullable": true, + "deprecated": true + }, + "clock": { + "type": "string", + "nullable": true, + "deprecated": true + }, + "skills": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true, + "deprecated": true + }, + "interests": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true, + "deprecated": true + }, + "tools": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true, + "deprecated": true + }, + "daysAvailable": { + "type": "array", + "items": { + "$ref": "#/components/schemas/System.DayOfWeek" + }, + "nullable": true, + "deprecated": true + }, + "timesAvailable": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.TimeOfDay" + }, + "nullable": true, + "deprecated": true + }, + "disasterReliefRegistrationSeen": { + "type": "boolean", + "deprecated": true + }, + "donateToDisasterReliefChecked": { + "type": "boolean", + "deprecated": true + }, + "volunteerForDisasterReliefChecked": { + "type": "boolean", + "deprecated": true + }, + "disasterReliefAvailabilityDate": { + "type": "string", + "format": "date-time", + "deprecated": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Vanilla.CustomNotification": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "typeId": { + "type": "integer", + "format": "int32" + }, + "type": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.NotificationType" + }, + "levelId": { + "type": "integer", + "format": "int32" + }, + "level": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.NotificationLevel" + }, + "title": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "languageId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "language": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.Lang" + }, + "redirectLink": { + "type": "string", + "nullable": true + }, + "startDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "endDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "adminOnly": { + "type": "boolean", + "nullable": true + }, + "created": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "updated": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "createdBy": { + "type": "string", + "format": "uuid" + }, + "updatedBy": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "projectEventId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "createdByNavigation": { + "$ref": "#/components/schemas/JustServe.Contracts.Users.User" + }, + "updatedByNavigation": { + "$ref": "#/components/schemas/JustServe.Contracts.Users.User" + }, + "projectEvent": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Projects.ProjectEvent" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Vanilla.Geographies.ChurchBoundaryCivic": { + "type": "object", + "properties": { + "churchGeographyUserRoleId": { + "type": "string", + "format": "uuid" + }, + "civicGeographyId": { + "type": "string", + "format": "uuid" + }, + "civicGeography": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Geographies.CivicGeography" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Vanilla.Geographies.ChurchGeography": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "typeId": { + "type": "integer", + "format": "int32" + }, + "type": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.GeographyType" + }, + "updated": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "unitId": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "areaUnitId": { + "type": "string", + "nullable": true + }, + "missionUnitId": { + "type": "string", + "nullable": true + }, + "ccUnitId": { + "type": "string", + "nullable": true + }, + "stakeUnitId": { + "type": "string", + "nullable": true + }, + "active": { + "type": "boolean", + "nullable": true + }, + "countryId": { + "type": "string", + "format": "uuid" + }, + "stakeLatitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "stakeLongitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "maxLatitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "minLatitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "maxLongitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "minLongitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "mapId": { + "type": "string", + "nullable": true + }, + "country": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Geographies.CivicGeography" + }, + "countryInfo": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Geographies.CountryInfo" + }, + "areaUnit": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Geographies.ChurchGeography" + }, + "missionUnit": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Geographies.ChurchGeography" + }, + "ccUnit": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Geographies.ChurchGeography" + }, + "parentUnit": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Geographies.ChurchGeography" + }, + "childrenUnits": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Geographies.ChurchGeography" + }, + "nullable": true + }, + "notifications": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.CustomNotification" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Vanilla.Geographies.ChurchGeographyAdminLabelEnum": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "churchGeographyId": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "created": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "updated": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "createdBy": { + "type": "string", + "format": "uuid" + }, + "updatedBy": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "deleted": { + "type": "boolean" + }, + "languageId": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Vanilla.Geographies.CivicGeography": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "typeId": { + "type": "integer", + "format": "int32" + }, + "type": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.GeographyType" + }, + "cityId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "countyId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "stateId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "countryId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "latitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "longitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "maxLatitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "minLatitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "maxLongitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "minLongitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "mapId": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "code": { + "type": "string", + "nullable": true + }, + "city": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Geographies.CivicGeography" + }, + "country": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Geographies.CivicGeography" + }, + "county": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Geographies.CivicGeography" + }, + "state": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Geographies.CivicGeography" + }, + "countryInfo": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Geographies.CountryInfo" + }, + "parent": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Geographies.CivicGeography" + }, + "children": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Geographies.CivicGeography" + }, + "nullable": true + }, + "translations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Geographies.CivicGeographyTranslation" + }, + "nullable": true + }, + "notifications": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.CustomNotification" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Vanilla.Geographies.CivicGeographyTranslation": { + "type": "object", + "properties": { + "civicGeographyId": { + "type": "string", + "format": "uuid" + }, + "languageId": { + "type": "integer", + "format": "int32" + }, + "typeId": { + "type": "integer", + "format": "int32" + }, + "countryId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "code": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Vanilla.Geographies.CountryInfo": { + "type": "object", + "properties": { + "countryId": { + "type": "string", + "format": "uuid" + }, + "defaultLanguageId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "isLaunched": { + "type": "boolean", + "nullable": true + }, + "countryCode2": { + "type": "string", + "nullable": true + }, + "countryCode3": { + "type": "string", + "nullable": true + }, + "phoneCode": { + "type": "string", + "nullable": true + }, + "usePostal": { + "type": "boolean", + "nullable": true + }, + "useMetricUnits": { + "type": "boolean", + "nullable": true + }, + "twelveHourClock": { + "type": "boolean", + "nullable": true + }, + "hideStateData": { + "type": "boolean", + "nullable": true + }, + "hideCountyData": { + "type": "boolean", + "nullable": true + }, + "legalLogInAge": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "inEuropeanUnion": { + "type": "boolean", + "nullable": true + }, + "houseNumAfterStreet": { + "type": "boolean", + "nullable": true + }, + "postalValidationRegex": { + "type": "string", + "nullable": true + }, + "country": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Geographies.CivicGeography" + }, + "areaUnits": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Geographies.ChurchGeography" + }, + "nullable": true + }, + "postals": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Geographies.PostalGeography" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Vanilla.Geographies.PostalGeography": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "zipcode": { + "type": "string", + "nullable": true + }, + "countryId": { + "type": "string", + "format": "uuid" + }, + "latitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "longitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "maxLatitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "minLatitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "maxLongitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "minLongitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "createdOn": { + "type": "string", + "format": "date-time" + }, + "mapId": { + "type": "string", + "nullable": true + }, + "country": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Geographies.CivicGeography" + }, + "countryInfo": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Geographies.CountryInfo" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Vanilla.Organizations.Organization": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "languageId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "language": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.Lang" + }, + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "statusId": { + "type": "integer", + "format": "int32" + }, + "status": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.OrganizationStatus" + }, + "typeId": { + "type": "integer", + "format": "int32" + }, + "type": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.OrganizationType" + }, + "defaultId": { + "type": "integer", + "format": "int32" + }, + "default": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.DefaultSection" + }, + "activationDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "website": { + "type": "string", + "nullable": true + }, + "autoRedirect": { + "type": "boolean", + "nullable": true + }, + "url": { + "type": "string", + "nullable": true + }, + "internalUrl": { + "type": "string", + "nullable": true + }, + "logo": { + "type": "string", + "nullable": true + }, + "banner": { + "type": "string", + "nullable": true + }, + "facebookPath": { + "type": "string", + "nullable": true + }, + "twitterPath": { + "type": "string", + "nullable": true + }, + "youtubePath": { + "type": "string", + "nullable": true + }, + "instagramPath": { + "type": "string", + "nullable": true + }, + "linkedinPath": { + "type": "string", + "nullable": true + }, + "created": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "updated": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "createdBy": { + "type": "string", + "format": "uuid" + }, + "updatedBy": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "aboutUs": { + "type": "string", + "nullable": true + }, + "contactName": { + "type": "string", + "nullable": true + }, + "contactPhone": { + "type": "string", + "nullable": true + }, + "contactEmail": { + "type": "string", + "nullable": true + }, + "deleted": { + "type": "boolean" + }, + "deletedOn": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "deletedBy": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "parentId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "isVerified": { + "type": "boolean" + }, + "createdByNavigation": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Users.User" + }, + "deletedByNavigation": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Users.User" + }, + "updatedByNavigation": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Users.User" + }, + "representatives": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Users.User" + }, + "nullable": true + }, + "userFavoriteOrganizations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Users.UserFavoriteOrganization" + }, + "nullable": true + }, + "organizationGroups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Organizations.OrganizationGroup" + }, + "nullable": true + }, + "organizationUserRoles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Organizations.OrganizationUserRole" + }, + "nullable": true + }, + "projects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Projects.Project" + }, + "nullable": true + }, + "location": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Organizations.OrganizationLocation" + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Tags.Tag" + }, + "nullable": true + }, + "parent": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Organizations.Organization" + }, + "children": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Organizations.Organization" + }, + "nullable": true + }, + "attachments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Organizations.OrganizationAttachment" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Vanilla.Organizations.OrganizationAttachment": { + "type": "object", + "properties": { + "attachmentId": { + "type": "string", + "format": "uuid" + }, + "mimetype": { + "type": "string", + "nullable": true + }, + "hostedFilename": { + "type": "string", + "nullable": true + }, + "hostedThumbnailFilename": { + "type": "string", + "nullable": true + }, + "fileExtension": { + "type": "string", + "nullable": true + }, + "title": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "created": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "createdBy": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "hostedFolderPath": { + "type": "string", + "nullable": true + }, + "fileDisplayName": { + "type": "string", + "nullable": true + }, + "attachmentTypeId": { + "type": "integer", + "format": "int32" + }, + "attachmentType": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.AttachmentType" + }, + "createdByNavigation": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Users.User" + }, + "organizationId": { + "type": "string", + "format": "uuid" + }, + "organization": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Organizations.Organization" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Vanilla.Organizations.OrganizationGroup": { + "type": "object", + "properties": { + "organizationId": { + "type": "string", + "format": "uuid" + }, + "typeId": { + "type": "integer", + "format": "int32" + }, + "unlisted": { + "type": "boolean", + "nullable": true + }, + "defaultId": { + "type": "integer", + "format": "int32" + }, + "organizationEnabled": { + "type": "boolean", + "nullable": true + }, + "projectsEnabled": { + "type": "boolean", + "nullable": true + }, + "questionsEnabled": { + "type": "boolean", + "nullable": true + }, + "aboutUsEnabled": { + "type": "boolean", + "nullable": true + }, + "giveEnabled": { + "type": "boolean", + "nullable": true + }, + "about": { + "type": "string", + "nullable": true + }, + "contactName": { + "type": "string", + "nullable": true + }, + "contactPhone": { + "type": "string", + "nullable": true + }, + "contactEmail": { + "type": "string", + "nullable": true + }, + "organization": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Organizations.Organization" + }, + "projects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Projects.Project" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Vanilla.Organizations.OrganizationLocation": { + "type": "object", + "properties": { + "organizationId": { + "type": "string", + "format": "uuid" + }, + "displayAddress": { + "type": "string", + "nullable": true + }, + "displayAddress2": { + "type": "string", + "nullable": true + }, + "displayPostalCode": { + "type": "string", + "nullable": true + }, + "displayCity": { + "type": "string", + "nullable": true + }, + "displayNeighborhood": { + "type": "string", + "nullable": true + }, + "displayCounty": { + "type": "string", + "nullable": true + }, + "displayState": { + "type": "string", + "nullable": true + }, + "displayCountry": { + "type": "string", + "nullable": true + }, + "displayCountryCode": { + "type": "string", + "nullable": true + }, + "civicGeographyId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "churchGeographyId": { + "type": "string", + "format": "uuid" + }, + "updated": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "latitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "longitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "maxLatitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "minLatitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "maxLongitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "minLongitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "churchGeography": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Geographies.ChurchGeography" + }, + "civicGeography": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Geographies.CivicGeography" + }, + "organization": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Organizations.Organization" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Vanilla.Organizations.OrganizationUserRole": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "organizationId": { + "type": "string", + "format": "uuid" + }, + "userId": { + "type": "string", + "format": "uuid" + }, + "roleId": { + "type": "integer", + "format": "int32" + }, + "updated": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "updatedBy": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "organization": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Organizations.Organization" + }, + "role": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.Role" + }, + "updatedByNavigation": { + "$ref": "#/components/schemas/JustServe.Contracts.Users.User" + }, + "user": { + "$ref": "#/components/schemas/JustServe.Contracts.Users.User" + }, + "civicGeographies": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Geographies.CivicGeography" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Vanilla.Projects.Project": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "typeId": { + "type": "integer", + "format": "int32" + }, + "statusId": { + "type": "integer", + "format": "int32" + }, + "publishDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "title": { + "type": "string", + "nullable": true + }, + "shortDescription": { + "type": "string", + "nullable": true + }, + "longDescription": { + "type": "string", + "nullable": true + }, + "logo": { + "type": "string", + "nullable": true + }, + "contactName": { + "type": "string", + "nullable": true + }, + "contactPhone": { + "type": "string", + "nullable": true + }, + "contactEmail": { + "type": "string", + "nullable": true + }, + "sponsorUserId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "sponsorTypeId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "representativeUserId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "waiverUrl": { + "type": "string", + "nullable": true + }, + "lastChangeReason": { + "type": "string", + "nullable": true + }, + "created": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "updated": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "createdBy": { + "type": "string", + "format": "uuid" + }, + "updatedBy": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "suitableAllAges": { + "type": "boolean", + "nullable": true + }, + "groupProjects": { + "type": "boolean", + "nullable": true + }, + "volunteerRemotely": { + "type": "boolean", + "nullable": true + }, + "volunteerFromAnywhere": { + "type": "boolean", + "nullable": true + }, + "itemDonations": { + "type": "boolean", + "nullable": true + }, + "wheelchairAccessible": { + "type": "boolean", + "nullable": true + }, + "indoors": { + "type": "boolean", + "nullable": true + }, + "forYouthGroups": { + "type": "boolean", + "nullable": true + }, + "unlisted": { + "type": "boolean", + "nullable": true + }, + "languageId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "externalVolunteerUrl": { + "type": "string", + "nullable": true + }, + "external": { + "type": "boolean", + "nullable": true + }, + "archived": { + "type": "boolean", + "nullable": true + }, + "deleted": { + "type": "boolean" + }, + "deletedOn": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "deletedBy": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "regionSelected": { + "type": "boolean" + }, + "firstStartDateTimeOffset": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastEndDateTimeOffset": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "countryCode": { + "type": "string", + "nullable": true + }, + "multipleTimes": { + "type": "boolean", + "nullable": true + }, + "allEventsFilled": { + "type": "boolean", + "nullable": true + }, + "locationTypeId": { + "type": "integer", + "format": "int32" + }, + "nextOpportunity": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Projects.ProjectEvent" + }, + "totalNextOpportunities": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "createdByNavigation": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Users.User" + }, + "deletedByNavigation": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Users.User" + }, + "representativeUser": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Users.User" + }, + "sponsorUser": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Users.User" + }, + "updatedByNavigation": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Users.User" + }, + "projectApproval": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Projects.ProjectApproval" + }, + "projectRecurring": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Projects.ProjectRecurring" + }, + "projectAttachments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Projects.ProjectAttachment" + }, + "nullable": true + }, + "projectDayOfWeeks": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Projects.ProjectDayOfWeek" + }, + "nullable": true + }, + "projectEventLocation": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Projects.ProjectEventLocation" + }, + "projectEventRegions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Geographies.CivicGeography" + }, + "nullable": true + }, + "projectEvents": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Projects.ProjectEvent" + }, + "nullable": true + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Tags.Tag" + }, + "nullable": true + }, + "projectTimeOfDays": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Projects.ProjectTimeOfDay" + }, + "nullable": true + }, + "projectUserOwners": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Projects.ProjectUserOwner" + }, + "nullable": true + }, + "organizations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Organizations.Organization" + }, + "nullable": true + }, + "organizationGroups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Organizations.OrganizationGroup" + }, + "nullable": true + }, + "successStories": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Stories.SuccessStory" + }, + "nullable": true + }, + "userFavoriteProjects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Users.UserFavoriteProject" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Vanilla.Projects.ProjectApproval": { + "type": "object", + "properties": { + "projectId": { + "type": "string", + "format": "uuid" + }, + "applicantUserId": { + "type": "string", + "format": "uuid" + }, + "assignedOn": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "approverUserId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "levelId": { + "type": "integer", + "format": "int32" + }, + "level": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.GeographyType" + }, + "escalateDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "applicantUser": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Users.User" + }, + "approverUser": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Users.User" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Vanilla.Projects.ProjectAttachment": { + "type": "object", + "properties": { + "attachmentId": { + "type": "string", + "format": "uuid" + }, + "mimetype": { + "type": "string", + "nullable": true + }, + "hostedFilename": { + "type": "string", + "nullable": true + }, + "hostedThumbnailFilename": { + "type": "string", + "nullable": true + }, + "fileExtension": { + "type": "string", + "nullable": true + }, + "title": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "created": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "createdBy": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "hostedFolderPath": { + "type": "string", + "nullable": true + }, + "fileDisplayName": { + "type": "string", + "nullable": true + }, + "attachmentTypeId": { + "type": "integer", + "format": "int32" + }, + "attachmentType": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.AttachmentType" + }, + "createdByNavigation": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Users.User" + }, + "projectId": { + "type": "string", + "format": "uuid" + }, + "project": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Projects.Project" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Vanilla.Projects.ProjectDayOfWeek": { + "type": "object", + "properties": { + "projectId": { + "type": "string", + "format": "uuid" + }, + "dayOfWeekId": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Vanilla.Projects.ProjectEvent": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "projectId": { + "type": "string", + "format": "uuid" + }, + "start": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "end": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "renewDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "shiftTitle": { + "type": "string", + "nullable": true + }, + "volunteerCap": { + "type": "boolean" + }, + "groupCap": { + "type": "boolean" + }, + "groupLimit": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "totalVolunteersNeeded": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "locationName": { + "type": "string", + "nullable": true + }, + "locationLink": { + "type": "string", + "nullable": true + }, + "specialDirections": { + "type": "string", + "nullable": true + }, + "qrCodeImageLocation": { + "type": "string", + "nullable": true + }, + "schedule": { + "type": "string", + "nullable": true + }, + "projectEventLocationId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "projectRecurringTimeId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "deletedOn": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "deletedBy": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "deleted": { + "type": "boolean" + }, + "contactName": { + "type": "string", + "nullable": true + }, + "contactPhone": { + "type": "string", + "nullable": true + }, + "contactEmail": { + "type": "string", + "nullable": true + }, + "eventCapReached": { + "type": "boolean", + "nullable": true + }, + "startDateTimeOffset": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "endDateTimeOffset": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "timezone": { + "type": "string", + "nullable": true + }, + "timeZoneEnumId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "statusId": { + "type": "integer", + "format": "int32" + }, + "status": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.ProjectEventStatus" + }, + "volunteersNeeded": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "deletedByNavigation": { + "$ref": "#/components/schemas/JustServe.Contracts.Users.User" + }, + "project": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Projects.Project" + }, + "projectEventLocation": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Projects.ProjectEventLocation" + }, + "projectRecurringTime": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Projects.ProjectRecurringTime" + }, + "projectEventRegions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Geographies.CivicGeography" + }, + "nullable": true + }, + "projectVolunteers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Projects.ProjectVolunteer" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Vanilla.Projects.ProjectEventLocation": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "displayAddress": { + "type": "string", + "nullable": true + }, + "displayAddress2": { + "type": "string", + "nullable": true + }, + "displayPostalCode": { + "type": "string", + "nullable": true + }, + "displayCity": { + "type": "string", + "nullable": true + }, + "displayNeighborhood": { + "type": "string", + "nullable": true + }, + "displayCounty": { + "type": "string", + "nullable": true + }, + "displayState": { + "type": "string", + "nullable": true + }, + "displayCountry": { + "type": "string", + "nullable": true + }, + "displayCountryCode": { + "type": "string", + "nullable": true + }, + "locationName": { + "type": "string", + "nullable": true + }, + "locationDetails": { + "type": "string", + "nullable": true + }, + "civicGeographyId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "churchGeographyId": { + "type": "string", + "format": "uuid" + }, + "updated": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "latitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "longitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "projectId": { + "type": "string", + "format": "uuid" + }, + "maxLatitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "minLatitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "maxLongitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "minLongitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "timezone": { + "type": "string", + "nullable": true + }, + "timeZoneEnumId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "churchGeography": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Geographies.ChurchGeography" + }, + "civicGeography": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Geographies.CivicGeography" + }, + "project": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Projects.Project" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Vanilla.Projects.ProjectRecurring": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "projectId": { + "type": "string", + "format": "uuid" + }, + "startDate": { + "type": "string", + "format": "date", + "nullable": true + }, + "endDate": { + "type": "string", + "format": "date", + "nullable": true + }, + "startDateTimeOffset": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "endDateTimeOffset": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "specialDirections": { + "type": "string", + "nullable": true + }, + "project": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Projects.Project" + }, + "projectRecurringTimes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Projects.ProjectRecurringTime" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Vanilla.Projects.ProjectRecurringTime": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "projectRecurringId": { + "type": "string", + "format": "uuid" + }, + "recurringTypeEnumId": { + "type": "integer", + "format": "int32" + }, + "recurringType": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.RecurringType" + }, + "startTime": { + "type": "string", + "format": "time", + "nullable": true + }, + "endTime": { + "type": "string", + "format": "time", + "nullable": true + }, + "volunteersCapped": { + "type": "boolean" + }, + "groupsCapped": { + "type": "boolean" + }, + "groupLimit": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "volunteersNeeded": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sunday": { + "type": "boolean" + }, + "monday": { + "type": "boolean" + }, + "tuesday": { + "type": "boolean" + }, + "wednesday": { + "type": "boolean" + }, + "thursday": { + "type": "boolean" + }, + "friday": { + "type": "boolean" + }, + "saturday": { + "type": "boolean" + }, + "firstWeek": { + "type": "boolean" + }, + "secondWeek": { + "type": "boolean" + }, + "thirdWeek": { + "type": "boolean" + }, + "fourthWeek": { + "type": "boolean" + }, + "fifthWeek": { + "type": "boolean" + }, + "lastWeek": { + "type": "boolean" + }, + "projectEventLocationId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "projectEventRegionId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "contactName": { + "type": "string", + "nullable": true + }, + "contactPhone": { + "type": "string", + "nullable": true + }, + "contactEmail": { + "type": "string", + "nullable": true + }, + "startTimeFormatted": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "endTimeFormatted": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "specialDirections": { + "type": "string", + "nullable": true + }, + "locationName": { + "type": "string", + "nullable": true + }, + "locationLink": { + "type": "string", + "nullable": true + }, + "projectEventLocation": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Projects.ProjectEventLocation" + }, + "projectEventRegions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Geographies.CivicGeography" + }, + "nullable": true + }, + "projectRecurring": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Projects.ProjectRecurring" + }, + "projectEvents": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Projects.ProjectEvent" + }, + "nullable": true + }, + "recurringDaysOfMonths": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Vanilla.Projects.ProjectTimeOfDay": { + "type": "object", + "properties": { + "projectId": { + "type": "string", + "format": "uuid" + }, + "timeOfDayId": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Vanilla.Projects.ProjectUserOwner": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "format": "uuid" + }, + "projectId": { + "type": "string", + "format": "uuid" + }, + "user": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Users.User" + }, + "project": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Projects.Project" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Vanilla.Projects.ProjectVolunteer": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "userId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "projectEventId": { + "type": "string", + "format": "uuid" + }, + "email": { + "type": "string", + "nullable": true + }, + "phone": { + "type": "string", + "nullable": true + }, + "languageId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "groupSize": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "schedule": { + "type": "string", + "nullable": true + }, + "dateInterested": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "volunteerDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "deleted": { + "type": "boolean" + }, + "deletedOn": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "deletedBy": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "note": { + "type": "string", + "nullable": true + }, + "userAddedHours": { + "type": "number", + "format": "double", + "nullable": true + }, + "adminReportedHours": { + "type": "number", + "format": "double", + "nullable": true + }, + "deletedByNavigation": { + "$ref": "#/components/schemas/JustServe.Contracts.Users.User" + }, + "projectEvent": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Projects.ProjectEvent" + }, + "user": { + "$ref": "#/components/schemas/JustServe.Contracts.Users.User" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Vanilla.Stories.SuccessStory": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "projectId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "languageId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "title": { + "type": "string", + "nullable": true + }, + "introduction": { + "type": "string", + "nullable": true + }, + "body": { + "type": "string", + "nullable": true + }, + "videoUrl": { + "type": "string", + "nullable": true + }, + "created": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "updated": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "createdBy": { + "type": "string", + "format": "uuid" + }, + "updatedBy": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "appendedInto": { + "type": "boolean", + "nullable": true + }, + "language": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.Lang" + }, + "createdByNavigation": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Users.User" + }, + "project": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Projects.Project" + }, + "updatedByNavigation": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Users.User" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Vanilla.Tags.Tag": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "tagTypeId": { + "type": "integer", + "format": "int32" + }, + "tagType": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Tags.TagType" + }, + "translations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Tags.TagTranslation" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Vanilla.Tags.TagTranslation": { + "type": "object", + "properties": { + "tagId": { + "type": "integer", + "format": "int32" + }, + "languageId": { + "type": "integer", + "format": "int32" + }, + "tagTypeId": { + "type": "integer", + "format": "int32" + }, + "tagType": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Tags.TagType" + }, + "label": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "tag": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Tags.Tag" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Vanilla.Tags.TagType": { + "enum": [ + "None", + "Skills", + "Interests", + "Tools", + "MetaKeyword" + ], + "type": "integer", + "format": "int32" + }, + "JustServe.Contracts.Vanilla.TimeZone.TimeZoneEnum": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "timeZoneId": { + "type": "string", + "nullable": true + }, + "timeZoneName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Vanilla.Users.ChurchGeographyUserRole": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "churchGeographyId": { + "type": "string", + "format": "uuid" + }, + "userId": { + "type": "string", + "format": "uuid" + }, + "roleId": { + "type": "integer", + "format": "int32" + }, + "role": { + "$ref": "#/components/schemas/JustServe.Contracts.Enums.Role" + }, + "updated": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "updatedBy": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "created": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "createdBy": { + "type": "string", + "format": "uuid" + }, + "churchGeography": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Geographies.ChurchGeography" + }, + "churchBoundaryCivics": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Geographies.ChurchBoundaryCivic" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Vanilla.Users.User": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "firstName": { + "type": "string", + "nullable": true + }, + "lastName": { + "type": "string", + "nullable": true + }, + "email": { + "type": "string", + "nullable": true + }, + "phone": { + "type": "string", + "nullable": true + }, + "languageId": { + "type": "integer", + "format": "int32" + }, + "radiusTypeId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "active": { + "type": "boolean", + "nullable": true + }, + "unsubscribeDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lockoutCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "lockoutDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "activationEmailLastNotified": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "activationEmailReminderCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "lastSignIn": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "created": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "updated": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "sponsorRole": { + "type": "boolean", + "nullable": true + }, + "viewedWhatsNewDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "personalInfoModifiedDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "notificationSettingsModifiedDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "searchPreferencesModifiedDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "locationModifiedDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "skillsModifiedDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "interestsModifiedDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "toolsModifiedDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "favoriteProjectModifiedDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "favoriteOrganizationModifiedDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "adminKeywords": { + "type": "string", + "nullable": true + }, + "clockPreference": { + "type": "integer", + "format": "int32" + }, + "createProjectRoleGranted": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "deleted": { + "type": "boolean" + }, + "deletedOn": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "deletedBy": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "churchGeographyUserRole": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Users.ChurchGeographyUserRole" + }, + "userLocation": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Users.UserLocation" + }, + "userNotificationPreference": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Users.UserNotificationPreference" + }, + "userAuthentication": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Users.UserAuthentication" + }, + "organizationUserRoles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Organizations.OrganizationUserRole" + }, + "nullable": true + }, + "userChurchGeographyAdminLabels": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Users.UserChurchGeographyAdminLabel" + }, + "nullable": true + }, + "projectUserOwners": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Projects.ProjectUserOwner" + }, + "nullable": true + }, + "projectVolunteers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Projects.ProjectVolunteer" + }, + "nullable": true + }, + "favoriteProjects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Users.UserFavoriteProject" + }, + "nullable": true + }, + "favoriteOrganizations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Users.UserFavoriteOrganization" + }, + "nullable": true + }, + "representativeOrganizations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Organizations.Organization" + }, + "nullable": true + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Tags.Tag" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Vanilla.Users.UserAuthentication": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "format": "uuid" + }, + "username": { + "type": "string", + "nullable": true + }, + "hasFacebookId": { + "type": "boolean" + }, + "hasGoogleUserId": { + "type": "boolean" + }, + "hasAppleUserId": { + "type": "boolean" + }, + "user": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Users.User" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Vanilla.Users.UserChurchGeographyAdminLabel": { + "type": "object", + "properties": { + "churchGeographyAdminLabelEnumId": { + "type": "string", + "format": "uuid" + }, + "userId": { + "type": "string", + "format": "uuid" + }, + "churchGeographyAdminLabelEnum": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Geographies.ChurchGeographyAdminLabelEnum" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Vanilla.Users.UserFavoriteOrganization": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "format": "uuid" + }, + "organizationId": { + "type": "string", + "format": "uuid" + }, + "favoritedOn": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "organization": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Organizations.Organization" + }, + "user": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Users.User" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Vanilla.Users.UserFavoriteProject": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "format": "uuid" + }, + "projectId": { + "type": "string", + "format": "uuid" + }, + "favoritedOn": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "project": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Projects.Project" + }, + "user": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Users.User" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Vanilla.Users.UserLocation": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "format": "uuid" + }, + "displayAddress": { + "type": "string", + "nullable": true + }, + "displayAddress2": { + "type": "string", + "nullable": true + }, + "displayPostalCode": { + "type": "string", + "nullable": true + }, + "displayCity": { + "type": "string", + "nullable": true + }, + "displayNeighborhood": { + "type": "string", + "nullable": true + }, + "displayCounty": { + "type": "string", + "nullable": true + }, + "displayState": { + "type": "string", + "nullable": true + }, + "displayCountry": { + "type": "string", + "nullable": true + }, + "displayCountryCode": { + "type": "string", + "nullable": true + }, + "civicGeographyId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "churchGeographyId": { + "type": "string", + "format": "uuid" + }, + "updated": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "latitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "longitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "maxLatitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "minLatitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "maxLongitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "minLongitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "churchGeography": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Geographies.ChurchGeography" + }, + "civicGeography": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Geographies.CivicGeography" + }, + "user": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Users.User" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Vanilla.Users.UserNotificationPreference": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "format": "uuid" + }, + "generalNotificationOptIn": { + "type": "boolean", + "nullable": true + }, + "volunteerNewsletterRadius": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "volunteerNewsletter": { + "type": "boolean", + "nullable": true + }, + "recieveTexts": { + "type": "boolean", + "nullable": true + }, + "includeSponsorAdminInfo": { + "type": "boolean", + "nullable": true + }, + "notifyUpcomingVolunteeredProjects": { + "type": "boolean", + "nullable": true + }, + "notifyUpcommingVolunteeredProjectsDaysPrior": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "disasterReliefRegistrationSeen": { + "type": "boolean", + "nullable": true + }, + "donateDisasterReliefChecked": { + "type": "boolean", + "nullable": true + }, + "disasterReliefAvailability": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "volunteerForDisasterReliefChecked": { + "type": "boolean", + "nullable": true + }, + "generalMarketingOptIn": { + "type": "boolean", + "nullable": true + }, + "user": { + "$ref": "#/components/schemas/JustServe.Contracts.Vanilla.Users.User" + } + }, + "additionalProperties": false + }, + "JustServe.Contracts.Widget": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "ownerId": { + "type": "string", + "nullable": true + }, + "key": { + "type": "string", + "nullable": true + }, + "applicationName": { + "type": "string", + "nullable": true + }, + "applicationPath": { + "type": "string", + "nullable": true + }, + "contactEmail": { + "type": "string", + "nullable": true + }, + "contactPhone": { + "type": "string", + "nullable": true + }, + "analyticsURLTag": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Entities.ApprovalLevelEnum": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "projectApprovals": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectApproval" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Entities.Attachment": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "mimetype": { + "type": "string", + "nullable": true + }, + "hostedFilename": { + "type": "string", + "nullable": true + }, + "hostedThumbnailFilename": { + "type": "string", + "nullable": true + }, + "fileExtension": { + "type": "string", + "nullable": true + }, + "title": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "created": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "createdBy": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "hostedFolderPath": { + "type": "string", + "nullable": true + }, + "fileDisplayName": { + "type": "string", + "nullable": true + }, + "organizationAnnouncementAttachments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.OrganizationAnnouncementAttachment" + }, + "nullable": true + }, + "organizationAttachments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.OrganizationAttachment" + }, + "nullable": true + }, + "organizationGroupAttachments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.OrganizationGroupAttachment" + }, + "nullable": true + }, + "projectAttachments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectAttachment" + }, + "nullable": true + }, + "successStoryCarousels": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.SuccessStoryCarousel" + }, + "nullable": true + }, + "successStoryMedia": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.SuccessStoryMedium" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Entities.AttachmentTypeEnum": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "organizationAttachments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.OrganizationAttachment" + }, + "nullable": true + }, + "projectAttachments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectAttachment" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Entities.Cause": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "organizationGroupId": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string", + "nullable": true + }, + "imgName": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "organizationGroup": { + "$ref": "#/components/schemas/JustServe.Entities.OrganizationGroup" + }, + "causeProjects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.CauseProject" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Entities.CauseProject": { + "type": "object", + "properties": { + "causeId": { + "type": "string", + "format": "uuid" + }, + "projectId": { + "type": "string", + "format": "uuid" + }, + "cause": { + "$ref": "#/components/schemas/JustServe.Entities.Cause" + }, + "project": { + "$ref": "#/components/schemas/JustServe.Entities.Project" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.ChurchBoundaryCivic": { + "type": "object", + "properties": { + "churchGeographyUserRoleId": { + "type": "string", + "format": "uuid" + }, + "civicGeographyId": { + "type": "string", + "format": "uuid" + }, + "churchGeographyUserRole": { + "$ref": "#/components/schemas/JustServe.Entities.ChurchGeographyUserRole" + }, + "civicGeography": { + "$ref": "#/components/schemas/JustServe.Entities.CivicGeography" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.ChurchGeography": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "typeId": { + "type": "integer", + "format": "int32" + }, + "updated": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "unitId": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "areaUnitId": { + "type": "string", + "nullable": true + }, + "missionUnitId": { + "type": "string", + "nullable": true + }, + "ccUnitId": { + "type": "string", + "nullable": true + }, + "stakeUnitId": { + "type": "string", + "nullable": true + }, + "active": { + "type": "boolean", + "nullable": true + }, + "countryId": { + "type": "string", + "format": "uuid" + }, + "stakeLatitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "stakeLongitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "maxLatitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "minLatitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "maxLongitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "minLongitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "mapId": { + "type": "string", + "nullable": true + }, + "coordinates": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Point" + }, + "area": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Polygon" + }, + "country": { + "$ref": "#/components/schemas/JustServe.Entities.CivicGeography" + }, + "type": { + "$ref": "#/components/schemas/JustServe.Entities.ChurchGeographyTypeEnum" + }, + "churchGeographyUserRoles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ChurchGeographyUserRole" + }, + "nullable": true + }, + "customNotificationChurchGeographies": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.CustomNotificationChurchGeography" + }, + "nullable": true + }, + "organizationLocations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.OrganizationLocation" + }, + "nullable": true + }, + "projectEventLocations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectEventLocation" + }, + "nullable": true + }, + "successStoryLocations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.SuccessStoryLocation" + }, + "nullable": true + }, + "userLocations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.UserLocation" + }, + "nullable": true + }, + "metrics": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.Metrics" + }, + "nullable": true + }, + "churchGeographyAdminLabelEnums": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ChurchGeographyAdminLabelEnum" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Entities.ChurchGeographyAdminLabelEnum": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "churchGeographyId": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "created": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "updated": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "createdBy": { + "type": "string", + "format": "uuid" + }, + "updatedBy": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "deleted": { + "type": "boolean" + }, + "languageId": { + "type": "integer", + "format": "int32" + }, + "churchGeography": { + "$ref": "#/components/schemas/JustServe.Entities.ChurchGeography" + }, + "userChurchGeographyAdminLabelEnums": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.UserChurchGeographyAdminLabel" + }, + "nullable": true + }, + "language": { + "$ref": "#/components/schemas/JustServe.Entities.SupportedLanguage" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.ChurchGeographyTypeEnum": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "churchGeographies": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ChurchGeography" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Entities.ChurchGeographyUserRole": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "churchGeographyId": { + "type": "string", + "format": "uuid" + }, + "userId": { + "type": "string", + "format": "uuid" + }, + "roleId": { + "type": "integer", + "format": "int32" + }, + "updated": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "updatedBy": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "created": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "createdBy": { + "type": "string", + "format": "uuid" + }, + "churchGeography": { + "$ref": "#/components/schemas/JustServe.Entities.ChurchGeography" + }, + "createdByNavigation": { + "$ref": "#/components/schemas/JustServe.Entities.User" + }, + "role": { + "$ref": "#/components/schemas/JustServe.Entities.RoleEnum" + }, + "updatedByNavigation": { + "$ref": "#/components/schemas/JustServe.Entities.User" + }, + "user": { + "$ref": "#/components/schemas/JustServe.Entities.User" + }, + "churchBoundaryCivics": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ChurchBoundaryCivic" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Entities.CivicGeography": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "typeId": { + "type": "integer", + "format": "int32" + }, + "cityId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "countyId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "stateId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "countryId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "latitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "longitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "maxLatitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "minLatitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "maxLongitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "minLongitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "mapId": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "code": { + "type": "string", + "nullable": true + }, + "coordinates": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Point" + }, + "area": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Polygon" + }, + "city": { + "$ref": "#/components/schemas/JustServe.Entities.CivicGeography" + }, + "country": { + "$ref": "#/components/schemas/JustServe.Entities.CivicGeography" + }, + "county": { + "$ref": "#/components/schemas/JustServe.Entities.CivicGeography" + }, + "state": { + "$ref": "#/components/schemas/JustServe.Entities.CivicGeography" + }, + "type": { + "$ref": "#/components/schemas/JustServe.Entities.CivicGeographyTypeEnum" + }, + "countryInfo": { + "$ref": "#/components/schemas/JustServe.Entities.CountryInfo" + }, + "churchBoundaryCivics": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ChurchBoundaryCivic" + }, + "nullable": true + }, + "churchGeographies": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ChurchGeography" + }, + "nullable": true + }, + "civicGeographyTranslationCivicGeographies": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.CivicGeographyTranslation" + }, + "nullable": true + }, + "civicGeographyTranslationCountries": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.CivicGeographyTranslation" + }, + "nullable": true + }, + "customNotificationRegions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.CustomNotificationRegion" + }, + "nullable": true + }, + "inverseCity": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.CivicGeography" + }, + "nullable": true + }, + "inverseCountry": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.CivicGeography" + }, + "nullable": true + }, + "inverseCounty": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.CivicGeography" + }, + "nullable": true + }, + "inverseState": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.CivicGeography" + }, + "nullable": true + }, + "organizationBoundaryCivics": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.OrganizationBoundaryCivic" + }, + "nullable": true + }, + "organizationLocations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.OrganizationLocation" + }, + "nullable": true + }, + "projectEventLocations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectEventLocation" + }, + "nullable": true + }, + "projectEventRegions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectEventRegion" + }, + "nullable": true + }, + "projectSearchStringCaches": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectSearchStringCache" + }, + "nullable": true + }, + "successStoryLocations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.SuccessStoryLocation" + }, + "nullable": true + }, + "userLocations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.UserLocation" + }, + "nullable": true + }, + "metrics": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.Metrics" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Entities.CivicGeographyTranslation": { + "type": "object", + "properties": { + "civicGeographyId": { + "type": "string", + "format": "uuid" + }, + "languageId": { + "type": "integer", + "format": "int32" + }, + "typeId": { + "type": "integer", + "format": "int32" + }, + "countryId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "code": { + "type": "string", + "nullable": true + }, + "civicGeography": { + "$ref": "#/components/schemas/JustServe.Entities.CivicGeography" + }, + "country": { + "$ref": "#/components/schemas/JustServe.Entities.CivicGeography" + }, + "language": { + "$ref": "#/components/schemas/JustServe.Entities.SupportedLanguage" + }, + "type": { + "$ref": "#/components/schemas/JustServe.Entities.CivicGeographyTypeEnum" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.CivicGeographyTypeEnum": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "civicGeographies": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.CivicGeography" + }, + "nullable": true + }, + "civicGeographyTranslations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.CivicGeographyTranslation" + }, + "nullable": true + }, + "projectEventRegions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectEventRegion" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Entities.CountryInfo": { + "type": "object", + "properties": { + "countryId": { + "type": "string", + "format": "uuid" + }, + "defaultLanguageId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "isLaunched": { + "type": "boolean", + "nullable": true + }, + "countryCode2": { + "type": "string", + "nullable": true + }, + "countryCode3": { + "type": "string", + "nullable": true + }, + "phoneCode": { + "type": "string", + "nullable": true + }, + "usePostal": { + "type": "boolean", + "nullable": true + }, + "useMetricUnits": { + "type": "boolean", + "nullable": true + }, + "twelveHourClock": { + "type": "boolean", + "nullable": true + }, + "hideStateData": { + "type": "boolean", + "nullable": true + }, + "hideCountyData": { + "type": "boolean", + "nullable": true + }, + "legalLogInAge": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "inEuropeanUnion": { + "type": "boolean", + "nullable": true + }, + "houseNumAfterStreet": { + "type": "boolean", + "nullable": true + }, + "postalValidationRegex": { + "type": "string", + "nullable": true + }, + "country": { + "$ref": "#/components/schemas/JustServe.Entities.CivicGeography" + }, + "defaultLanguage": { + "$ref": "#/components/schemas/JustServe.Entities.SupportedLanguage" + }, + "localeCountryInfos": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.LocaleCountryInfo" + }, + "nullable": true + }, + "postalGeographies": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.PostalGeography" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Entities.CustomNotification": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "typeId": { + "type": "integer", + "format": "int32" + }, + "levelId": { + "type": "integer", + "format": "int32" + }, + "title": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "languageId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "redirectLink": { + "type": "string", + "nullable": true + }, + "startDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "endDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "adminOnly": { + "type": "boolean", + "nullable": true + }, + "created": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "updated": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "createdBy": { + "type": "string", + "format": "uuid" + }, + "updatedBy": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "projectEventId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "createdByNavigation": { + "$ref": "#/components/schemas/JustServe.Entities.User" + }, + "language": { + "$ref": "#/components/schemas/JustServe.Entities.SupportedLanguage" + }, + "level": { + "$ref": "#/components/schemas/JustServe.Entities.NotificationLevelEnum" + }, + "projectEvent": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectEvent" + }, + "type": { + "$ref": "#/components/schemas/JustServe.Entities.NotificationTypeEnum" + }, + "updatedByNavigation": { + "$ref": "#/components/schemas/JustServe.Entities.User" + }, + "customNotificationChurchGeographies": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.CustomNotificationChurchGeography" + }, + "nullable": true + }, + "customNotificationRegions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.CustomNotificationRegion" + }, + "nullable": true + }, + "userNotifications": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.UserNotification" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Entities.CustomNotificationChurchGeography": { + "type": "object", + "properties": { + "churchGeographyId": { + "type": "string", + "format": "uuid" + }, + "customNotificationId": { + "type": "string", + "format": "uuid" + }, + "churchGeography": { + "$ref": "#/components/schemas/JustServe.Entities.ChurchGeography" + }, + "customNotification": { + "$ref": "#/components/schemas/JustServe.Entities.CustomNotification" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.CustomNotificationRegion": { + "type": "object", + "properties": { + "civicGeographyId": { + "type": "string", + "format": "uuid" + }, + "customNotificationId": { + "type": "string", + "format": "uuid" + }, + "civicGeography": { + "$ref": "#/components/schemas/JustServe.Entities.CivicGeography" + }, + "customNotification": { + "$ref": "#/components/schemas/JustServe.Entities.CustomNotification" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.DayOfWeekEnum": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "projectDayOfWeeks": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectDayOfWeek" + }, + "nullable": true + }, + "userDayOfWeeks": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.UserDayOfWeek" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Entities.DistanceEnum": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "users": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.User" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Entities.EmailLog": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "userId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "sentFromEmail": { + "type": "string", + "nullable": true + }, + "sentToEmail": { + "type": "string", + "nullable": true + }, + "subject": { + "type": "string", + "nullable": true + }, + "languageId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "typeId": { + "type": "integer", + "format": "int32" + }, + "created": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "language": { + "$ref": "#/components/schemas/JustServe.Entities.SupportedLanguage" + }, + "type": { + "$ref": "#/components/schemas/JustServe.Entities.EmailTypeEnum" + }, + "user": { + "$ref": "#/components/schemas/JustServe.Entities.User" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.EmailTypeEnum": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "emailLogs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.EmailLog" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Entities.EndorsementStatusEnum": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "organizationEndorsements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.OrganizationEndorsement" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Entities.Language": { + "type": "object", + "properties": { + "languageId": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "iso6391Code": { + "type": "string", + "nullable": true + }, + "iso6392bCode": { + "type": "string", + "nullable": true + }, + "iso6392tCode": { + "type": "string", + "nullable": true + }, + "locales": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.Locale" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Entities.Locale": { + "type": "object", + "properties": { + "localeId": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "languageId": { + "type": "integer", + "format": "int32" + }, + "fallbackLocaleId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "value": { + "type": "string", + "nullable": true + }, + "translationExists": { + "type": "boolean" + }, + "defaultLocale": { + "type": "boolean" + }, + "metaName": { + "type": "string", + "nullable": true + }, + "language": { + "$ref": "#/components/schemas/JustServe.Entities.Language" + }, + "localeMobile": { + "$ref": "#/components/schemas/JustServe.Entities.LocaleMobile" + }, + "localeCountryInfos": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.LocaleCountryInfo" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Entities.LocaleCountryInfo": { + "type": "object", + "properties": { + "localeId": { + "type": "integer", + "format": "int32" + }, + "countryId": { + "type": "string", + "format": "uuid" + }, + "country": { + "$ref": "#/components/schemas/JustServe.Entities.CountryInfo" + }, + "locale": { + "$ref": "#/components/schemas/JustServe.Entities.Locale" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.LocaleMobile": { + "type": "object", + "properties": { + "localeMobileId": { + "type": "integer", + "format": "int32" + }, + "localeId": { + "type": "integer", + "format": "int32" + }, + "locale": { + "$ref": "#/components/schemas/JustServe.Entities.Locale" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.LocationTypeEnum": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "projects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.Project" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Entities.MetricDateTypeEnum": { + "enum": [ + "Month", + "Day" + ], + "type": "integer", + "format": "int32" + }, + "JustServe.Entities.MetricTypeEnum": { + "enum": [ + "TotalUsers", + "ActiveUsers", + "NewUsers", + "TotalProjects", + "ActiveProjects", + "NewProjects", + "ProjectSignUps", + "ProjectRedirects", + "TotalOrganizations", + "OrganizationsWithActiveProjects", + "NewOrganizations" + ], + "type": "integer", + "format": "int32" + }, + "JustServe.Entities.Metrics": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "dateTypeId": { + "$ref": "#/components/schemas/JustServe.Entities.MetricDateTypeEnum" + }, + "metricTypeId": { + "$ref": "#/components/schemas/JustServe.Entities.MetricTypeEnum" + }, + "churchGeographyId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "civicGeographyId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "organizationId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "date": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "month": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "year": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "count": { + "type": "integer", + "format": "int32" + }, + "updated": { + "type": "string", + "format": "date-time" + }, + "updatedBy": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "created": { + "type": "string", + "format": "date-time" + }, + "createdBy": { + "type": "string", + "format": "uuid" + }, + "churchGeography": { + "$ref": "#/components/schemas/JustServe.Entities.ChurchGeography" + }, + "civicGeography": { + "$ref": "#/components/schemas/JustServe.Entities.CivicGeography" + }, + "organization": { + "$ref": "#/components/schemas/JustServe.Entities.Organization" + }, + "createdByNavigation": { + "$ref": "#/components/schemas/JustServe.Entities.User" + }, + "updatedByNavigation": { + "$ref": "#/components/schemas/JustServe.Entities.User" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.NotificationLevelEnum": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "customNotifications": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.CustomNotification" + }, + "nullable": true + }, + "userNotifications": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.UserNotification" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Entities.NotificationStatusEnum": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "userNotifications": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.UserNotification" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Entities.NotificationTypeEnum": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "customNotifications": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.CustomNotification" + }, + "nullable": true + }, + "userNotifications": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.UserNotification" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Entities.Organization": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "languageId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "statusId": { + "type": "integer", + "format": "int32" + }, + "typeId": { + "type": "integer", + "format": "int32" + }, + "defaultId": { + "type": "integer", + "format": "int32" + }, + "activationDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "website": { + "type": "string", + "nullable": true + }, + "autoRedirect": { + "type": "boolean", + "nullable": true + }, + "url": { + "type": "string", + "nullable": true + }, + "internalUrl": { + "type": "string", + "nullable": true + }, + "logo": { + "type": "string", + "nullable": true + }, + "banner": { + "type": "string", + "nullable": true + }, + "facebookPath": { + "type": "string", + "nullable": true + }, + "twitterPath": { + "type": "string", + "nullable": true + }, + "youtubePath": { + "type": "string", + "nullable": true + }, + "instagramPath": { + "type": "string", + "nullable": true + }, + "linkedinPath": { + "type": "string", + "nullable": true + }, + "created": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "updated": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "createdBy": { + "type": "string", + "format": "uuid" + }, + "updatedBy": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "aboutUs": { + "type": "string", + "nullable": true + }, + "contactName": { + "type": "string", + "nullable": true + }, + "contactPhone": { + "type": "string", + "nullable": true + }, + "contactEmail": { + "type": "string", + "nullable": true + }, + "deleted": { + "type": "boolean" + }, + "deletedOn": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "deletedBy": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "parentOrganizationId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "isVerified": { + "type": "boolean" + }, + "createdByNavigation": { + "$ref": "#/components/schemas/JustServe.Entities.User" + }, + "deletedByNavigation": { + "$ref": "#/components/schemas/JustServe.Entities.User" + }, + "language": { + "$ref": "#/components/schemas/JustServe.Entities.SupportedLanguage" + }, + "status": { + "$ref": "#/components/schemas/JustServe.Entities.OrganizationStatusEnum" + }, + "type": { + "$ref": "#/components/schemas/JustServe.Entities.OrganizationTypeEnum" + }, + "updatedByNavigation": { + "$ref": "#/components/schemas/JustServe.Entities.User" + }, + "organizationGroup": { + "$ref": "#/components/schemas/JustServe.Entities.OrganizationGroup" + }, + "organizationLocation": { + "$ref": "#/components/schemas/JustServe.Entities.OrganizationLocation" + }, + "organizationRepresentative": { + "$ref": "#/components/schemas/JustServe.Entities.OrganizationRepresentative" + }, + "organizationAnnouncements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.OrganizationAnnouncement" + }, + "nullable": true + }, + "organizationAttachments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.OrganizationAttachment" + }, + "nullable": true + }, + "organizationEndorsements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.OrganizationEndorsement" + }, + "nullable": true + }, + "organizationTags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.OrganizationTag" + }, + "nullable": true + }, + "organizationUserRoles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.OrganizationUserRole" + }, + "nullable": true + }, + "projectInOrganizations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectInOrganization" + }, + "nullable": true + }, + "userFavoriteOrganizations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.UserFavoriteOrganization" + }, + "nullable": true + }, + "userNotifications": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.UserNotification" + }, + "nullable": true + }, + "metrics": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.Metrics" + }, + "nullable": true + }, + "parentOrganization": { + "$ref": "#/components/schemas/JustServe.Entities.Organization" + }, + "childOrganizations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.Organization" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Entities.OrganizationAnnouncement": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "organizationId": { + "type": "string", + "format": "uuid" + }, + "title": { + "type": "string", + "nullable": true + }, + "content": { + "type": "string", + "nullable": true + }, + "url": { + "type": "string", + "nullable": true + }, + "created": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "updated": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "createdBy": { + "type": "string", + "format": "uuid" + }, + "updatedBy": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "createdByNavigation": { + "$ref": "#/components/schemas/JustServe.Entities.User" + }, + "organization": { + "$ref": "#/components/schemas/JustServe.Entities.Organization" + }, + "updatedByNavigation": { + "$ref": "#/components/schemas/JustServe.Entities.User" + }, + "organizationAnnouncementAttachments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.OrganizationAnnouncementAttachment" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Entities.OrganizationAnnouncementAttachment": { + "type": "object", + "properties": { + "organizationAnnouncementId": { + "type": "string", + "format": "uuid" + }, + "attachmentId": { + "type": "string", + "format": "uuid" + }, + "attachment": { + "$ref": "#/components/schemas/JustServe.Entities.Attachment" + }, + "organizationAnnouncement": { + "$ref": "#/components/schemas/JustServe.Entities.OrganizationAnnouncement" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.OrganizationAttachment": { + "type": "object", + "properties": { + "organizationId": { + "type": "string", + "format": "uuid" + }, + "attachmentId": { + "type": "string", + "format": "uuid" + }, + "attachmentTypeId": { + "type": "integer", + "format": "int32" + }, + "attachment": { + "$ref": "#/components/schemas/JustServe.Entities.Attachment" + }, + "organization": { + "$ref": "#/components/schemas/JustServe.Entities.Organization" + }, + "attachmentType": { + "$ref": "#/components/schemas/JustServe.Entities.AttachmentTypeEnum" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.OrganizationBoundaryCivic": { + "type": "object", + "properties": { + "organizationUserRoleId": { + "type": "string", + "format": "uuid" + }, + "civicGeographyId": { + "type": "string", + "format": "uuid" + }, + "civicGeography": { + "$ref": "#/components/schemas/JustServe.Entities.CivicGeography" + }, + "organizationUserRole": { + "$ref": "#/components/schemas/JustServe.Entities.OrganizationUserRole" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.OrganizationEndorsement": { + "type": "object", + "properties": { + "organizationId": { + "type": "string", + "format": "uuid" + }, + "organizationGroupId": { + "type": "string", + "format": "uuid" + }, + "updated": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "statusId": { + "type": "integer", + "format": "int32" + }, + "organization": { + "$ref": "#/components/schemas/JustServe.Entities.Organization" + }, + "organizationGroup": { + "$ref": "#/components/schemas/JustServe.Entities.OrganizationGroup" + }, + "status": { + "$ref": "#/components/schemas/JustServe.Entities.EndorsementStatusEnum" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.OrganizationGroup": { + "type": "object", + "properties": { + "organizationId": { + "type": "string", + "format": "uuid" + }, + "typeId": { + "type": "integer", + "format": "int32" + }, + "unlisted": { + "type": "boolean", + "nullable": true + }, + "defaultId": { + "type": "integer", + "format": "int32" + }, + "organizationEnabled": { + "type": "boolean", + "nullable": true + }, + "projectsEnabled": { + "type": "boolean", + "nullable": true + }, + "questionsEnabled": { + "type": "boolean", + "nullable": true + }, + "aboutUsEnabled": { + "type": "boolean", + "nullable": true + }, + "giveEnabled": { + "type": "boolean", + "nullable": true + }, + "about": { + "type": "string", + "nullable": true + }, + "contactName": { + "type": "string", + "nullable": true + }, + "contactPhone": { + "type": "string", + "nullable": true + }, + "contactEmail": { + "type": "string", + "nullable": true + }, + "default": { + "$ref": "#/components/schemas/JustServe.Entities.SectionEnum" + }, + "organization": { + "$ref": "#/components/schemas/JustServe.Entities.Organization" + }, + "type": { + "$ref": "#/components/schemas/JustServe.Entities.OrganizationGroupTypeEnum" + }, + "causes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.Cause" + }, + "nullable": true + }, + "organizationEndorsements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.OrganizationEndorsement" + }, + "nullable": true + }, + "organizationGroupAttachments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.OrganizationGroupAttachment" + }, + "nullable": true + }, + "organizationGroupDonationLinks": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.OrganizationGroupDonationLink" + }, + "nullable": true + }, + "organizationGroupFaqs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.OrganizationGroupFaq" + }, + "nullable": true + }, + "organizationGroupTags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.OrganizationGroupTag" + }, + "nullable": true + }, + "projectInOrganizationGroups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectInOrganizationGroup" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Entities.OrganizationGroupAttachment": { + "type": "object", + "properties": { + "attachmentId": { + "type": "string", + "format": "uuid" + }, + "organizationGroupId": { + "type": "string", + "format": "uuid" + }, + "attachment": { + "$ref": "#/components/schemas/JustServe.Entities.Attachment" + }, + "organizationGroup": { + "$ref": "#/components/schemas/JustServe.Entities.OrganizationGroup" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.OrganizationGroupDonationLink": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "organizationGroupId": { + "type": "string", + "format": "uuid" + }, + "linkName": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "url": { + "type": "string", + "nullable": true + }, + "order": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "organizationGroup": { + "$ref": "#/components/schemas/JustServe.Entities.OrganizationGroup" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.OrganizationGroupFaq": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "organizationGroupId": { + "type": "string", + "format": "uuid" + }, + "question": { + "type": "string", + "nullable": true + }, + "answer": { + "type": "string", + "nullable": true + }, + "created": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "updated": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "createdBy": { + "type": "string", + "format": "uuid" + }, + "updatedBy": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "order": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "createdByNavigation": { + "$ref": "#/components/schemas/JustServe.Entities.User" + }, + "organizationGroup": { + "$ref": "#/components/schemas/JustServe.Entities.OrganizationGroup" + }, + "updatedByNavigation": { + "$ref": "#/components/schemas/JustServe.Entities.User" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.OrganizationGroupTag": { + "type": "object", + "properties": { + "tagId": { + "type": "integer", + "format": "int32" + }, + "organizationGroupId": { + "type": "string", + "format": "uuid" + }, + "organizationGroup": { + "$ref": "#/components/schemas/JustServe.Entities.OrganizationGroup" + }, + "tag": { + "$ref": "#/components/schemas/JustServe.Entities.Tag" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.OrganizationGroupTypeEnum": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "organizationGroups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.OrganizationGroup" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Entities.OrganizationLocation": { + "type": "object", + "properties": { + "organizationId": { + "type": "string", + "format": "uuid" + }, + "displayAddress": { + "type": "string", + "nullable": true + }, + "displayAddress2": { + "type": "string", + "nullable": true + }, + "displayPostalCode": { + "type": "string", + "nullable": true + }, + "displayCity": { + "type": "string", + "nullable": true + }, + "displayNeighborhood": { + "type": "string", + "nullable": true + }, + "displayCounty": { + "type": "string", + "nullable": true + }, + "displayState": { + "type": "string", + "nullable": true + }, + "displayCountry": { + "type": "string", + "nullable": true + }, + "displayCountryCode": { + "type": "string", + "nullable": true + }, + "civicGeographyId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "churchGeographyId": { + "type": "string", + "format": "uuid" + }, + "updated": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "latitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "longitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "maxLatitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "minLatitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "maxLongitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "minLongitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "coordinates": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Point" + }, + "area": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Polygon" + }, + "churchGeography": { + "$ref": "#/components/schemas/JustServe.Entities.ChurchGeography" + }, + "civicGeography": { + "$ref": "#/components/schemas/JustServe.Entities.CivicGeography" + }, + "organization": { + "$ref": "#/components/schemas/JustServe.Entities.Organization" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.OrganizationRepresentative": { + "type": "object", + "properties": { + "organizationId": { + "type": "string", + "format": "uuid" + }, + "justServeRepUserId": { + "type": "string", + "format": "uuid" + }, + "createdBy": { + "type": "string", + "format": "uuid" + }, + "created": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "updatedBy": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "updated": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "createdByNavigation": { + "$ref": "#/components/schemas/JustServe.Entities.User" + }, + "justServeRepUser": { + "$ref": "#/components/schemas/JustServe.Entities.User" + }, + "organization": { + "$ref": "#/components/schemas/JustServe.Entities.Organization" + }, + "updatedByNavigation": { + "$ref": "#/components/schemas/JustServe.Entities.User" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.OrganizationStatusEnum": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "organizations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.Organization" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Entities.OrganizationTag": { + "type": "object", + "properties": { + "tagId": { + "type": "integer", + "format": "int32" + }, + "organizationId": { + "type": "string", + "format": "uuid" + }, + "organization": { + "$ref": "#/components/schemas/JustServe.Entities.Organization" + }, + "tag": { + "$ref": "#/components/schemas/JustServe.Entities.Tag" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.OrganizationTypeEnum": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "organizations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.Organization" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Entities.OrganizationUserRole": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "organizationId": { + "type": "string", + "format": "uuid" + }, + "userId": { + "type": "string", + "format": "uuid" + }, + "roleId": { + "type": "integer", + "format": "int32" + }, + "updated": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "updatedBy": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "organization": { + "$ref": "#/components/schemas/JustServe.Entities.Organization" + }, + "role": { + "$ref": "#/components/schemas/JustServe.Entities.RoleEnum" + }, + "updatedByNavigation": { + "$ref": "#/components/schemas/JustServe.Entities.User" + }, + "user": { + "$ref": "#/components/schemas/JustServe.Entities.User" + }, + "organizationBoundaryCivics": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.OrganizationBoundaryCivic" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Entities.PostalGeography": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "zipcode": { + "type": "string", + "nullable": true + }, + "countryId": { + "type": "string", + "format": "uuid" + }, + "latitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "longitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "maxLatitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "minLatitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "maxLongitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "minLongitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "createdOn": { + "type": "string", + "format": "date-time" + }, + "mapId": { + "type": "string", + "nullable": true + }, + "coordinates": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Point" + }, + "area": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Polygon" + }, + "country": { + "$ref": "#/components/schemas/JustServe.Entities.CountryInfo" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.Project": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "typeId": { + "type": "integer", + "format": "int32" + }, + "statusId": { + "type": "integer", + "format": "int32" + }, + "publishDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "title": { + "type": "string", + "nullable": true + }, + "shortDescription": { + "type": "string", + "nullable": true + }, + "longDescription": { + "type": "string", + "nullable": true + }, + "logo": { + "type": "string", + "nullable": true + }, + "contactName": { + "type": "string", + "nullable": true + }, + "contactPhone": { + "type": "string", + "nullable": true + }, + "contactEmail": { + "type": "string", + "nullable": true + }, + "sponsorUserId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "sponsorTypeId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "representativeUserId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "waiverUrl": { + "type": "string", + "nullable": true + }, + "lastChangeReason": { + "type": "string", + "nullable": true + }, + "created": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "updated": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "createdBy": { + "type": "string", + "format": "uuid" + }, + "updatedBy": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "suitableAllAges": { + "type": "boolean", + "nullable": true + }, + "groupProjects": { + "type": "boolean", + "nullable": true + }, + "volunteerRemotely": { + "type": "boolean", + "nullable": true + }, + "volunteerFromAnywhere": { + "type": "boolean", + "nullable": true + }, + "itemDonations": { + "type": "boolean", + "nullable": true + }, + "wheelchairAccessible": { + "type": "boolean", + "nullable": true + }, + "indoors": { + "type": "boolean", + "nullable": true + }, + "forYouthGroups": { + "type": "boolean", + "nullable": true + }, + "unlisted": { + "type": "boolean", + "nullable": true + }, + "languageId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "externalVolunteerUrl": { + "type": "string", + "nullable": true + }, + "external": { + "type": "boolean", + "nullable": true + }, + "archived": { + "type": "boolean" + }, + "deleted": { + "type": "boolean" + }, + "deletedOn": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "deletedBy": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "regionSelected": { + "type": "boolean" + }, + "firstStartDateTimeOffset": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastEndDateTimeOffset": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "countryCode": { + "type": "string", + "nullable": true + }, + "multipleTimes": { + "type": "boolean", + "nullable": true + }, + "allEventsFilled": { + "type": "boolean", + "nullable": true + }, + "locationTypeId": { + "type": "integer", + "format": "int32" + }, + "createdByNavigation": { + "$ref": "#/components/schemas/JustServe.Entities.User" + }, + "deletedByNavigation": { + "$ref": "#/components/schemas/JustServe.Entities.User" + }, + "language": { + "$ref": "#/components/schemas/JustServe.Entities.SupportedLanguage" + }, + "representativeUser": { + "$ref": "#/components/schemas/JustServe.Entities.User" + }, + "sponsorType": { + "$ref": "#/components/schemas/JustServe.Entities.SponsorTypeEnum" + }, + "sponsorUser": { + "$ref": "#/components/schemas/JustServe.Entities.User" + }, + "status": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectStatusEnum" + }, + "type": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectTypeEnum" + }, + "updatedByNavigation": { + "$ref": "#/components/schemas/JustServe.Entities.User" + }, + "projectApproval": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectApproval" + }, + "projectRecurring": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectRecurring" + }, + "causeProjects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.CauseProject" + }, + "nullable": true + }, + "projectAttachments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectAttachment" + }, + "nullable": true + }, + "projectDayOfWeeks": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectDayOfWeek" + }, + "nullable": true + }, + "projectEventLocations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectEventLocation" + }, + "nullable": true + }, + "projectEventRegions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectEventRegion" + }, + "nullable": true + }, + "projectEvents": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectEvent" + }, + "nullable": true + }, + "projectExternalVolunteerClicks": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectExternalVolunteerClick" + }, + "nullable": true + }, + "projectInOrganizationGroups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectInOrganizationGroup" + }, + "nullable": true + }, + "projectInOrganizations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectInOrganization" + }, + "nullable": true + }, + "projectTags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectTag" + }, + "nullable": true + }, + "projectTimeOfDays": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectTimeOfDay" + }, + "nullable": true + }, + "projectUserOwners": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectUserOwner" + }, + "nullable": true + }, + "recordOfServices": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.RecordOfService" + }, + "nullable": true + }, + "successStories": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.SuccessStory" + }, + "nullable": true + }, + "userEmailProjects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.UserEmailProject" + }, + "nullable": true + }, + "userFavoriteProjects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.UserFavoriteProject" + }, + "nullable": true + }, + "userNotifications": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.UserNotification" + }, + "nullable": true + }, + "projectOwnerLog": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectOwnerLog" + }, + "nullable": true + }, + "locationType": { + "$ref": "#/components/schemas/JustServe.Entities.LocationTypeEnum" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.ProjectApproval": { + "type": "object", + "properties": { + "projectId": { + "type": "string", + "format": "uuid" + }, + "applicantUserId": { + "type": "string", + "format": "uuid" + }, + "assignedOn": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "approverUserId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "levelId": { + "type": "integer", + "format": "int32" + }, + "escalateDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "applicantUser": { + "$ref": "#/components/schemas/JustServe.Entities.User" + }, + "approverUser": { + "$ref": "#/components/schemas/JustServe.Entities.User" + }, + "level": { + "$ref": "#/components/schemas/JustServe.Entities.ApprovalLevelEnum" + }, + "project": { + "$ref": "#/components/schemas/JustServe.Entities.Project" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.ProjectAttachment": { + "type": "object", + "properties": { + "attachmentId": { + "type": "string", + "format": "uuid" + }, + "projectId": { + "type": "string", + "format": "uuid" + }, + "attachmentTypeId": { + "type": "integer", + "format": "int32" + }, + "attachment": { + "$ref": "#/components/schemas/JustServe.Entities.Attachment" + }, + "project": { + "$ref": "#/components/schemas/JustServe.Entities.Project" + }, + "attachmentType": { + "$ref": "#/components/schemas/JustServe.Entities.AttachmentTypeEnum" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.ProjectDayOfWeek": { + "type": "object", + "properties": { + "projectId": { + "type": "string", + "format": "uuid" + }, + "dayOfWeekId": { + "type": "integer", + "format": "int32" + }, + "dayOfWeek": { + "$ref": "#/components/schemas/JustServe.Entities.DayOfWeekEnum" + }, + "project": { + "$ref": "#/components/schemas/JustServe.Entities.Project" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.ProjectEvent": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "projectId": { + "type": "string", + "format": "uuid" + }, + "start": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "end": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "renewDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "shiftTitle": { + "type": "string", + "nullable": true + }, + "volunteerCap": { + "type": "boolean" + }, + "groupCap": { + "type": "boolean" + }, + "groupLimit": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "totalVolunteersNeeded": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "locationName": { + "type": "string", + "nullable": true + }, + "locationLink": { + "type": "string", + "nullable": true + }, + "specialDirections": { + "type": "string", + "nullable": true + }, + "qrCodeImageLocation": { + "type": "string", + "nullable": true + }, + "schedule": { + "type": "string", + "nullable": true + }, + "projectEventLocationId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "projectRecurringTimeId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "deletedOn": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "deletedBy": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "deleted": { + "type": "boolean" + }, + "contactName": { + "type": "string", + "nullable": true + }, + "contactPhone": { + "type": "string", + "nullable": true + }, + "contactEmail": { + "type": "string", + "nullable": true + }, + "eventCapReached": { + "type": "boolean", + "nullable": true + }, + "startDateTimeOffset": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "endDateTimeOffset": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "timezone": { + "type": "string", + "nullable": true + }, + "timeZoneEnumId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "statusId": { + "type": "integer", + "format": "int32" + }, + "deletedByNavigation": { + "$ref": "#/components/schemas/JustServe.Entities.User" + }, + "project": { + "$ref": "#/components/schemas/JustServe.Entities.Project" + }, + "projectEventLocation": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectEventLocation" + }, + "projectRecurringTime": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectRecurringTime" + }, + "customNotifications": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.CustomNotification" + }, + "nullable": true + }, + "projectEventRegions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectEventRegion" + }, + "nullable": true + }, + "projectVolunteers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectVolunteer" + }, + "nullable": true + }, + "userEmailProjects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.UserEmailProject" + }, + "nullable": true + }, + "userNotifications": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.UserNotification" + }, + "nullable": true + }, + "status": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectEventStatusEnum" + }, + "timeZoneEnum": { + "$ref": "#/components/schemas/JustServe.Entities.TimeZoneEnum" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.ProjectEventLocation": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "displayAddress": { + "type": "string", + "nullable": true + }, + "displayAddress2": { + "type": "string", + "nullable": true + }, + "displayPostalCode": { + "type": "string", + "nullable": true + }, + "displayCity": { + "type": "string", + "nullable": true + }, + "displayNeighborhood": { + "type": "string", + "nullable": true + }, + "displayCounty": { + "type": "string", + "nullable": true + }, + "displayState": { + "type": "string", + "nullable": true + }, + "displayCountry": { + "type": "string", + "nullable": true + }, + "displayCountryCode": { + "type": "string", + "nullable": true + }, + "locationName": { + "type": "string", + "nullable": true + }, + "locationDetails": { + "type": "string", + "nullable": true + }, + "civicGeographyId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "churchGeographyId": { + "type": "string", + "format": "uuid" + }, + "updated": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "latitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "longitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "projectId": { + "type": "string", + "format": "uuid" + }, + "maxLatitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "minLatitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "maxLongitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "minLongitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "timezone": { + "type": "string", + "nullable": true + }, + "timeZoneEnumId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "coordinates": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Point" + }, + "area": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Polygon" + }, + "churchGeography": { + "$ref": "#/components/schemas/JustServe.Entities.ChurchGeography" + }, + "civicGeography": { + "$ref": "#/components/schemas/JustServe.Entities.CivicGeography" + }, + "project": { + "$ref": "#/components/schemas/JustServe.Entities.Project" + }, + "projectEvents": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectEvent" + }, + "nullable": true + }, + "projectRecurringTimes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectRecurringTime" + }, + "nullable": true + }, + "timeZoneEnum": { + "$ref": "#/components/schemas/JustServe.Entities.TimeZoneEnum" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.ProjectEventRegion": { + "type": "object", + "properties": { + "civicGeographyId": { + "type": "string", + "format": "uuid" + }, + "typeId": { + "type": "integer", + "format": "int32" + }, + "id": { + "type": "string", + "format": "uuid" + }, + "projectId": { + "type": "string", + "format": "uuid" + }, + "projectEventId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "civicGeography": { + "$ref": "#/components/schemas/JustServe.Entities.CivicGeography" + }, + "project": { + "$ref": "#/components/schemas/JustServe.Entities.Project" + }, + "projectEvent": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectEvent" + }, + "type": { + "$ref": "#/components/schemas/JustServe.Entities.CivicGeographyTypeEnum" + }, + "projectRecurringTimes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectRecurringTime" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Entities.ProjectEventStatusEnum": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "projectEvents": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectEvent" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Entities.ProjectExternalVolunteerClick": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "projectId": { + "type": "string", + "format": "uuid" + }, + "clickDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "project": { + "$ref": "#/components/schemas/JustServe.Entities.Project" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.ProjectInOrganization": { + "type": "object", + "properties": { + "projectId": { + "type": "string", + "format": "uuid" + }, + "organizationId": { + "type": "string", + "format": "uuid" + }, + "reviewedBy": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "reviewedDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "organization": { + "$ref": "#/components/schemas/JustServe.Entities.Organization" + }, + "project": { + "$ref": "#/components/schemas/JustServe.Entities.Project" + }, + "reviewedByNavigation": { + "$ref": "#/components/schemas/JustServe.Entities.User" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.ProjectInOrganizationGroup": { + "type": "object", + "properties": { + "projectId": { + "type": "string", + "format": "uuid" + }, + "organizationGroupId": { + "type": "string", + "format": "uuid" + }, + "organizationGroup": { + "$ref": "#/components/schemas/JustServe.Entities.OrganizationGroup" + }, + "project": { + "$ref": "#/components/schemas/JustServe.Entities.Project" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.ProjectOwnerLog": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "projectId": { + "type": "string", + "format": "uuid" + }, + "ownerUserId": { + "type": "string", + "format": "uuid" + }, + "ownerUserFirstName": { + "type": "string", + "nullable": true + }, + "ownerUserLastName": { + "type": "string", + "nullable": true + }, + "updated": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "updatedBy": { + "type": "string", + "nullable": true + }, + "owner": { + "$ref": "#/components/schemas/JustServe.Entities.User" + }, + "project": { + "$ref": "#/components/schemas/JustServe.Entities.Project" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.ProjectRecurring": { + "type": "object", + "properties": { + "projectRecurringId": { + "type": "string", + "format": "uuid" + }, + "projectId": { + "type": "string", + "format": "uuid" + }, + "startDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "endDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "startDateTimeOffset": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "endDateTimeOffset": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "specialDirections": { + "type": "string", + "nullable": true + }, + "project": { + "$ref": "#/components/schemas/JustServe.Entities.Project" + }, + "projectRecurringTimes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectRecurringTime" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Entities.ProjectRecurringTime": { + "type": "object", + "properties": { + "projectRecurringTimeId": { + "type": "string", + "format": "uuid" + }, + "projectRecurringId": { + "type": "string", + "format": "uuid" + }, + "recurringTypeEnumId": { + "type": "integer", + "format": "int32" + }, + "startTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "endTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "volunteersCapped": { + "type": "boolean" + }, + "groupsCapped": { + "type": "boolean" + }, + "groupLimit": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "volunteersNeeded": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sunday": { + "type": "boolean" + }, + "monday": { + "type": "boolean" + }, + "tuesday": { + "type": "boolean" + }, + "wednesday": { + "type": "boolean" + }, + "thursday": { + "type": "boolean" + }, + "friday": { + "type": "boolean" + }, + "saturday": { + "type": "boolean" + }, + "firstWeek": { + "type": "boolean" + }, + "secondWeek": { + "type": "boolean" + }, + "thirdWeek": { + "type": "boolean" + }, + "fourthWeek": { + "type": "boolean" + }, + "fifthWeek": { + "type": "boolean" + }, + "lastWeek": { + "type": "boolean" + }, + "projectEventLocationId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "projectEventRegionId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "contactName": { + "type": "string", + "nullable": true + }, + "contactPhone": { + "type": "string", + "nullable": true + }, + "contactEmail": { + "type": "string", + "nullable": true + }, + "startTimeFormatted": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "endTimeFormatted": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "specialDirections": { + "type": "string", + "nullable": true + }, + "locationName": { + "type": "string", + "nullable": true + }, + "locationLink": { + "type": "string", + "nullable": true + }, + "projectEventLocation": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectEventLocation" + }, + "projectEventRegion": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectEventRegion" + }, + "projectRecurring": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectRecurring" + }, + "recurringTypeEnum": { + "$ref": "#/components/schemas/JustServe.Entities.RecurringTypeEnum" + }, + "projectEvents": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectEvent" + }, + "nullable": true + }, + "recurringDaysOfMonths": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.RecurringDaysOfMonth" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Entities.ProjectSearchStringCache": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "searchString": { + "type": "string", + "nullable": true + }, + "civicGeographyId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "browserLocale": { + "type": "string", + "nullable": true + }, + "latitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "longitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "civicGeography": { + "$ref": "#/components/schemas/JustServe.Entities.CivicGeography" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.ProjectStatusEnum": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "projects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.Project" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Entities.ProjectTag": { + "type": "object", + "properties": { + "projectId": { + "type": "string", + "format": "uuid" + }, + "tagId": { + "type": "integer", + "format": "int32" + }, + "project": { + "$ref": "#/components/schemas/JustServe.Entities.Project" + }, + "tag": { + "$ref": "#/components/schemas/JustServe.Entities.Tag" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.ProjectTimeOfDay": { + "type": "object", + "properties": { + "projectId": { + "type": "string", + "format": "uuid" + }, + "timeOfDayId": { + "type": "integer", + "format": "int32" + }, + "project": { + "$ref": "#/components/schemas/JustServe.Entities.Project" + }, + "timeOfDay": { + "$ref": "#/components/schemas/JustServe.Entities.TimeOfDayEnum" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.ProjectTypeEnum": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "projects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.Project" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Entities.ProjectUserOwner": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "format": "uuid" + }, + "projectId": { + "type": "string", + "format": "uuid" + }, + "project": { + "$ref": "#/components/schemas/JustServe.Entities.Project" + }, + "user": { + "$ref": "#/components/schemas/JustServe.Entities.User" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.ProjectVolunteer": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "userId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "projectEventId": { + "type": "string", + "format": "uuid" + }, + "email": { + "type": "string", + "nullable": true + }, + "phone": { + "type": "string", + "nullable": true + }, + "languageId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "groupSize": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "schedule": { + "type": "string", + "nullable": true + }, + "dateInterested": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "volunteerDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "deleted": { + "type": "boolean" + }, + "deletedOn": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "deletedBy": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "note": { + "type": "string", + "nullable": true + }, + "deletedByNavigation": { + "$ref": "#/components/schemas/JustServe.Entities.User" + }, + "language": { + "$ref": "#/components/schemas/JustServe.Entities.SupportedLanguage" + }, + "projectEvent": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectEvent" + }, + "user": { + "$ref": "#/components/schemas/JustServe.Entities.User" + }, + "projectVolunteerHours": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectVolunteerHour" + }, + "nullable": true + }, + "projectVolunteerTags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectVolunteerTag" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Entities.ProjectVolunteerHour": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "volunteerId": { + "type": "string", + "format": "uuid" + }, + "userAddedHours": { + "type": "number", + "format": "double", + "nullable": true + }, + "adminReportedHours": { + "type": "number", + "format": "double", + "nullable": true + }, + "volunteerDate": { + "type": "string", + "format": "date", + "nullable": true + }, + "volunteer": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectVolunteer" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.ProjectVolunteerTag": { + "type": "object", + "properties": { + "projectVolunteerId": { + "type": "string", + "format": "uuid" + }, + "tagId": { + "type": "integer", + "format": "int32" + }, + "projectVolunteer": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectVolunteer" + }, + "tag": { + "$ref": "#/components/schemas/JustServe.Entities.Tag" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.QuickSearch": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "userId": { + "type": "string", + "format": "uuid" + }, + "title": { + "type": "string", + "nullable": true + }, + "searchTypeId": { + "type": "integer", + "format": "int32" + }, + "searchParameters": { + "type": "string", + "nullable": true + }, + "created": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "user": { + "$ref": "#/components/schemas/JustServe.Entities.User" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.RecordOfService": { + "type": "object", + "properties": { + "recordOfServiceId": { + "type": "string", + "format": "uuid" + }, + "hoursServed": { + "type": "number", + "format": "double", + "nullable": true + }, + "organizationName": { + "type": "string", + "nullable": true + }, + "projectId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "projectName": { + "type": "string", + "nullable": true + }, + "userId": { + "type": "string", + "format": "uuid" + }, + "volunteeredOn": { + "type": "string", + "format": "date-time" + }, + "deleted": { + "type": "boolean" + }, + "deletedOn": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "deletedBy": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "deletedByNavigation": { + "$ref": "#/components/schemas/JustServe.Entities.User" + }, + "project": { + "$ref": "#/components/schemas/JustServe.Entities.Project" + }, + "user": { + "$ref": "#/components/schemas/JustServe.Entities.User" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.RecurringDaysOfMonth": { + "type": "object", + "properties": { + "projectRecurringTimeId": { + "type": "string", + "format": "uuid" + }, + "dayOfMonth": { + "type": "integer", + "format": "int32" + }, + "projectRecurringTime": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectRecurringTime" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.RecurringTypeEnum": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "projectRecurringTimes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectRecurringTime" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Entities.RefreshToken": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "subject": { + "type": "string", + "nullable": true + }, + "clientId": { + "type": "string", + "nullable": true + }, + "userId": { + "type": "string", + "format": "uuid" + }, + "issuedUtc": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "expiresUtc": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "user": { + "$ref": "#/components/schemas/JustServe.Entities.User" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.Resource": { + "type": "object", + "properties": { + "resourceId": { + "type": "string", + "format": "uuid" + }, + "languageId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "title": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "typeId": { + "type": "integer", + "format": "int32" + }, + "thumbnailImage": { + "type": "string", + "nullable": true + }, + "linkView": { + "type": "string", + "nullable": true + }, + "linkDownload": { + "type": "string", + "nullable": true + }, + "linkDownloadInternational": { + "type": "string", + "nullable": true + }, + "linkPrintFriendly": { + "type": "string", + "nullable": true + }, + "sizeMb": { + "type": "number", + "format": "double", + "nullable": true + }, + "order": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "language": { + "$ref": "#/components/schemas/JustServe.Entities.SupportedLanguage" + }, + "type": { + "$ref": "#/components/schemas/JustServe.Entities.ResourceTypeEnum" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.ResourceTypeEnum": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.Resource" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Entities.RoleEnum": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "churchGeographyUserRoles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ChurchGeographyUserRole" + }, + "nullable": true + }, + "organizationUserRoles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.OrganizationUserRole" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Entities.SectionEnum": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "organizationGroups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.OrganizationGroup" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Entities.SponsorTypeEnum": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "projects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.Project" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Entities.SuccessMediaTypeEnum": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "successStoryMedia": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.SuccessStoryMedium" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Entities.SuccessStory": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "projectId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "languageId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "title": { + "type": "string", + "nullable": true + }, + "introduction": { + "type": "string", + "nullable": true + }, + "body": { + "type": "string", + "nullable": true + }, + "videoUrl": { + "type": "string", + "nullable": true + }, + "created": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "updated": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "createdBy": { + "type": "string", + "format": "uuid" + }, + "updatedBy": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "appendedInto": { + "type": "boolean", + "nullable": true + }, + "createdByNavigation": { + "$ref": "#/components/schemas/JustServe.Entities.User" + }, + "language": { + "$ref": "#/components/schemas/JustServe.Entities.SupportedLanguage" + }, + "project": { + "$ref": "#/components/schemas/JustServe.Entities.Project" + }, + "updatedByNavigation": { + "$ref": "#/components/schemas/JustServe.Entities.User" + }, + "successStoryLocation": { + "$ref": "#/components/schemas/JustServe.Entities.SuccessStoryLocation" + }, + "successStoryCarousels": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.SuccessStoryCarousel" + }, + "nullable": true + }, + "successStoryMedia": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.SuccessStoryMedium" + }, + "nullable": true + }, + "successStoryTags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.SuccessStoryTag" + }, + "nullable": true + }, + "successStoryUserOwners": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.SuccessStoryUserOwner" + }, + "nullable": true + }, + "userNotifications": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.UserNotification" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Entities.SuccessStoryCarousel": { + "type": "object", + "properties": { + "successStoryId": { + "type": "string", + "format": "uuid" + }, + "attachmentId": { + "type": "string", + "format": "uuid" + }, + "attachment": { + "$ref": "#/components/schemas/JustServe.Entities.Attachment" + }, + "successStory": { + "$ref": "#/components/schemas/JustServe.Entities.SuccessStory" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.SuccessStoryLocation": { + "type": "object", + "properties": { + "successStoryId": { + "type": "string", + "format": "uuid" + }, + "displayAddress": { + "type": "string", + "nullable": true + }, + "displayAddress2": { + "type": "string", + "nullable": true + }, + "displayPostalCode": { + "type": "string", + "nullable": true + }, + "displayCity": { + "type": "string", + "nullable": true + }, + "displayNeighborhood": { + "type": "string", + "nullable": true + }, + "displayCounty": { + "type": "string", + "nullable": true + }, + "displayState": { + "type": "string", + "nullable": true + }, + "displayCountry": { + "type": "string", + "nullable": true + }, + "displayCountryCode": { + "type": "string", + "nullable": true + }, + "civicGeographyId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "churchGeographyId": { + "type": "string", + "format": "uuid" + }, + "updated": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "latitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "longitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "maxLatitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "minLatitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "maxLongitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "minLongitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "churchGeography": { + "$ref": "#/components/schemas/JustServe.Entities.ChurchGeography" + }, + "civicGeography": { + "$ref": "#/components/schemas/JustServe.Entities.CivicGeography" + }, + "successStory": { + "$ref": "#/components/schemas/JustServe.Entities.SuccessStory" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.SuccessStoryMedium": { + "type": "object", + "properties": { + "successStoryId": { + "type": "string", + "format": "uuid" + }, + "attachmentId": { + "type": "string", + "format": "uuid" + }, + "typeId": { + "type": "integer", + "format": "int32" + }, + "attachment": { + "$ref": "#/components/schemas/JustServe.Entities.Attachment" + }, + "successStory": { + "$ref": "#/components/schemas/JustServe.Entities.SuccessStory" + }, + "type": { + "$ref": "#/components/schemas/JustServe.Entities.SuccessMediaTypeEnum" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.SuccessStoryTag": { + "type": "object", + "properties": { + "successStoryId": { + "type": "string", + "format": "uuid" + }, + "tagId": { + "type": "integer", + "format": "int32" + }, + "successStory": { + "$ref": "#/components/schemas/JustServe.Entities.SuccessStory" + }, + "tag": { + "$ref": "#/components/schemas/JustServe.Entities.Tag" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.SuccessStoryUserOwner": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "format": "uuid" + }, + "successStoryId": { + "type": "string", + "format": "uuid" + }, + "successStory": { + "$ref": "#/components/schemas/JustServe.Entities.SuccessStory" + }, + "user": { + "$ref": "#/components/schemas/JustServe.Entities.User" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.SupportedLanguage": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "nullable": true + }, + "supportStartDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "supportEndDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "twoCharCode": { + "type": "string", + "nullable": true + }, + "threeCharCode": { + "type": "string", + "nullable": true + }, + "fiveCharCode": { + "type": "string", + "nullable": true + }, + "metaName": { + "type": "string", + "nullable": true + }, + "languageConfig": { + "type": "string", + "nullable": true + }, + "civicGeographyTranslations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.CivicGeographyTranslation" + }, + "nullable": true + }, + "countryInfos": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.CountryInfo" + }, + "nullable": true + }, + "customNotifications": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.CustomNotification" + }, + "nullable": true + }, + "emailLogs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.EmailLog" + }, + "nullable": true + }, + "organizations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.Organization" + }, + "nullable": true + }, + "projectVolunteers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectVolunteer" + }, + "nullable": true + }, + "projects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.Project" + }, + "nullable": true + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.Resource" + }, + "nullable": true + }, + "successStories": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.SuccessStory" + }, + "nullable": true + }, + "tagSubcategoryTranslations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.TagSubcategoryTranslation" + }, + "nullable": true + }, + "tagTranslations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.TagTranslation" + }, + "nullable": true + }, + "tagTypeTranslations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.TagTypeTranslation" + }, + "nullable": true + }, + "users": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.User" + }, + "nullable": true + }, + "churchGeographyAdminLabelEnums": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ChurchGeographyAdminLabelEnum" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Entities.Tag": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "tagTypeId": { + "type": "integer", + "format": "int32" + }, + "tagSubcategoryId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "tagSubcategory": { + "$ref": "#/components/schemas/JustServe.Entities.TagSubcategoryTypeEnum" + }, + "tagType": { + "$ref": "#/components/schemas/JustServe.Entities.TagType" + }, + "organizationGroupTags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.OrganizationGroupTag" + }, + "nullable": true + }, + "organizationTags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.OrganizationTag" + }, + "nullable": true + }, + "projectTags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectTag" + }, + "nullable": true + }, + "successStoryTags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.SuccessStoryTag" + }, + "nullable": true + }, + "tagTranslations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.TagTranslation" + }, + "nullable": true + }, + "userTags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.UserTag" + }, + "nullable": true + }, + "projectVolunteerTags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectVolunteerTag" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Entities.TagSubcategoryTranslation": { + "type": "object", + "properties": { + "tagSubcategoryId": { + "type": "integer", + "format": "int32" + }, + "languageId": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "language": { + "$ref": "#/components/schemas/JustServe.Entities.SupportedLanguage" + }, + "tagSubcategory": { + "$ref": "#/components/schemas/JustServe.Entities.TagSubcategoryTypeEnum" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.TagSubcategoryTypeEnum": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "tagTypeId": { + "type": "integer", + "format": "int32" + }, + "tagType": { + "$ref": "#/components/schemas/JustServe.Entities.TagType" + }, + "tagSubcategoryTranslations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.TagSubcategoryTranslation" + }, + "nullable": true + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.Tag" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Entities.TagTranslation": { + "type": "object", + "properties": { + "tagId": { + "type": "integer", + "format": "int32" + }, + "languageId": { + "type": "integer", + "format": "int32" + }, + "tagTypeId": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "language": { + "$ref": "#/components/schemas/JustServe.Entities.SupportedLanguage" + }, + "tag": { + "$ref": "#/components/schemas/JustServe.Entities.Tag" + }, + "tagType": { + "$ref": "#/components/schemas/JustServe.Entities.TagType" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.TagType": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "tagSubcategoryTypeEnums": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.TagSubcategoryTypeEnum" + }, + "nullable": true + }, + "tagTranslations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.TagTranslation" + }, + "nullable": true + }, + "tagTypeTranslations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.TagTypeTranslation" + }, + "nullable": true + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.Tag" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Entities.TagTypeTranslation": { + "type": "object", + "properties": { + "tagTypeId": { + "type": "integer", + "format": "int32" + }, + "languageId": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "language": { + "$ref": "#/components/schemas/JustServe.Entities.SupportedLanguage" + }, + "tagType": { + "$ref": "#/components/schemas/JustServe.Entities.TagType" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.TimeOfDayEnum": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "projectTimeOfDays": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectTimeOfDay" + }, + "nullable": true + }, + "userTimeOfDays": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.UserTimeOfDay" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Entities.TimeZoneEnum": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "timeZoneId": { + "type": "string", + "nullable": true + }, + "timeZoneName": { + "type": "string", + "nullable": true + }, + "projectEvents": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectEvent" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Entities.User": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "firstName": { + "type": "string", + "nullable": true + }, + "lastName": { + "type": "string", + "nullable": true + }, + "email": { + "type": "string", + "nullable": true + }, + "phone": { + "type": "string", + "nullable": true + }, + "languageId": { + "type": "integer", + "format": "int32" + }, + "radiusTypeId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "active": { + "type": "boolean", + "nullable": true + }, + "unsubscribeDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lockoutCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "lockoutDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "activationEmailLastNotified": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "activationEmailReminderCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "lastSignIn": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "created": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "updated": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "sponsorRole": { + "type": "boolean", + "nullable": true + }, + "viewedWhatsNewDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "personalInfoModifiedDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "notificationSettingsModifiedDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "searchPreferencesModifiedDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "locationModifiedDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "skillsModifiedDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "interestsModifiedDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "toolsModifiedDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "favoriteProjectModifiedDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "favoriteOrganizationModifiedDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "adminKeywords": { + "type": "string", + "nullable": true + }, + "clockPreference": { + "type": "integer", + "format": "int32" + }, + "createProjectRoleGranted": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "deleted": { + "type": "boolean" + }, + "deletedOn": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "deletedBy": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "deletedByNavigation": { + "$ref": "#/components/schemas/JustServe.Entities.User" + }, + "language": { + "$ref": "#/components/schemas/JustServe.Entities.SupportedLanguage" + }, + "radiusType": { + "$ref": "#/components/schemas/JustServe.Entities.DistanceEnum" + }, + "churchGeographyUserRoleUser": { + "$ref": "#/components/schemas/JustServe.Entities.ChurchGeographyUserRole" + }, + "userAuthentication": { + "$ref": "#/components/schemas/JustServe.Entities.UserAuthentication" + }, + "userLocation": { + "$ref": "#/components/schemas/JustServe.Entities.UserLocation" + }, + "userNotificationPreference": { + "$ref": "#/components/schemas/JustServe.Entities.UserNotificationPreference" + }, + "userSearchPreference": { + "$ref": "#/components/schemas/JustServe.Entities.UserSearchPreference" + }, + "churchGeographyUserRoleCreatedByNavigations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ChurchGeographyUserRole" + }, + "nullable": true + }, + "churchGeographyUserRoleUpdatedByNavigations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ChurchGeographyUserRole" + }, + "nullable": true + }, + "customNotificationCreatedByNavigations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.CustomNotification" + }, + "nullable": true + }, + "customNotificationUpdatedByNavigations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.CustomNotification" + }, + "nullable": true + }, + "emailLogs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.EmailLog" + }, + "nullable": true + }, + "inverseDeletedByNavigation": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.User" + }, + "nullable": true + }, + "organizationAnnouncementCreatedByNavigations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.OrganizationAnnouncement" + }, + "nullable": true + }, + "organizationAnnouncementUpdatedByNavigations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.OrganizationAnnouncement" + }, + "nullable": true + }, + "organizationCreatedByNavigations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.Organization" + }, + "nullable": true + }, + "organizationDeletedByNavigations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.Organization" + }, + "nullable": true + }, + "organizationGroupFaqCreatedByNavigations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.OrganizationGroupFaq" + }, + "nullable": true + }, + "organizationGroupFaqUpdatedByNavigations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.OrganizationGroupFaq" + }, + "nullable": true + }, + "organizationRepresentativeCreatedByNavigations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.OrganizationRepresentative" + }, + "nullable": true + }, + "organizationRepresentativeJustServeRepUsers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.OrganizationRepresentative" + }, + "nullable": true + }, + "organizationRepresentativeUpdatedByNavigations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.OrganizationRepresentative" + }, + "nullable": true + }, + "organizationUpdatedByNavigations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.Organization" + }, + "nullable": true + }, + "organizationUserRoleUpdatedByNavigations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.OrganizationUserRole" + }, + "nullable": true + }, + "organizationUserRoleUsers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.OrganizationUserRole" + }, + "nullable": true + }, + "projectApprovalApplicantUsers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectApproval" + }, + "nullable": true + }, + "projectApprovalApproverUsers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectApproval" + }, + "nullable": true + }, + "projectCreatedByNavigations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.Project" + }, + "nullable": true + }, + "projectDeletedByNavigations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.Project" + }, + "nullable": true + }, + "projectEvents": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectEvent" + }, + "nullable": true + }, + "projectInOrganizations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectInOrganization" + }, + "nullable": true + }, + "projectRepresentativeUsers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.Project" + }, + "nullable": true + }, + "projectSponsorUsers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.Project" + }, + "nullable": true + }, + "projectUpdatedByNavigations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.Project" + }, + "nullable": true + }, + "projectUserOwners": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectUserOwner" + }, + "nullable": true + }, + "projectVolunteerDeletedByNavigations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectVolunteer" + }, + "nullable": true + }, + "projectVolunteerUsers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectVolunteer" + }, + "nullable": true + }, + "recordOfServiceDeletedByNavigations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.RecordOfService" + }, + "nullable": true + }, + "recordOfServiceUsers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.RecordOfService" + }, + "nullable": true + }, + "refreshTokens": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.RefreshToken" + }, + "nullable": true + }, + "successStoryCreatedByNavigations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.SuccessStory" + }, + "nullable": true + }, + "successStoryUpdatedByNavigations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.SuccessStory" + }, + "nullable": true + }, + "successStoryUserOwners": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.SuccessStoryUserOwner" + }, + "nullable": true + }, + "userDayOfWeeks": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.UserDayOfWeek" + }, + "nullable": true + }, + "userEmailProjectContentUsers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.UserEmailProject" + }, + "nullable": true + }, + "userEmailProjectRecipientUsers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.UserEmailProject" + }, + "nullable": true + }, + "userFavoriteOrganizations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.UserFavoriteOrganization" + }, + "nullable": true + }, + "userFavoriteProjects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.UserFavoriteProject" + }, + "nullable": true + }, + "userLoginHistories": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.UserLoginHistory" + }, + "nullable": true + }, + "userNotificationBoundaryAdminUsers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.UserNotification" + }, + "nullable": true + }, + "userNotificationUsers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.UserNotification" + }, + "nullable": true + }, + "userProjectSearchLogs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.UserProjectSearchLog" + }, + "nullable": true + }, + "userTags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.UserTag" + }, + "nullable": true + }, + "userTimeOfDays": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.UserTimeOfDay" + }, + "nullable": true + }, + "widgets": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.Widget" + }, + "nullable": true + }, + "projectOwnerLog": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectOwnerLog" + }, + "nullable": true + }, + "quickSearches": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.QuickSearch" + }, + "nullable": true + }, + "metricsCreatedByNavigations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.Metrics" + }, + "nullable": true + }, + "metricsUpdatedByNavigations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.Metrics" + }, + "nullable": true + }, + "userChurchGeographyAdminLabels": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.UserChurchGeographyAdminLabel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Entities.UserAuthentication": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "format": "uuid" + }, + "username": { + "type": "string", + "nullable": true + }, + "password": { + "type": "string", + "nullable": true + }, + "facebookId": { + "type": "string", + "nullable": true + }, + "facebookZipCodeNotified": { + "type": "boolean", + "nullable": true + }, + "googleUserId": { + "type": "string", + "nullable": true + }, + "appleUserId": { + "type": "string", + "nullable": true + }, + "salt": { + "type": "string", + "nullable": true + }, + "user": { + "$ref": "#/components/schemas/JustServe.Entities.User" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.UserChurchGeographyAdminLabel": { + "type": "object", + "properties": { + "churchGeographyAdminLabelEnumId": { + "type": "string", + "format": "uuid" + }, + "userId": { + "type": "string", + "format": "uuid" + }, + "churchGeographyAdminLabelEnum": { + "$ref": "#/components/schemas/JustServe.Entities.ChurchGeographyAdminLabelEnum" + }, + "user": { + "$ref": "#/components/schemas/JustServe.Entities.User" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.UserDayOfWeek": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "format": "uuid" + }, + "dayOfWeekId": { + "type": "integer", + "format": "int32" + }, + "dayOfWeek": { + "$ref": "#/components/schemas/JustServe.Entities.DayOfWeekEnum" + }, + "user": { + "$ref": "#/components/schemas/JustServe.Entities.User" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.UserEmailProject": { + "type": "object", + "properties": { + "userEmailProjectId": { + "type": "integer", + "format": "int32" + }, + "projectId": { + "type": "string", + "format": "uuid" + }, + "projectEventId": { + "type": "string", + "format": "uuid" + }, + "recipientUserId": { + "type": "string", + "format": "uuid" + }, + "contentUserId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "emailSent": { + "type": "boolean", + "nullable": true + }, + "typeId": { + "type": "integer", + "format": "int32" + }, + "addedDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "sentDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "contentUser": { + "$ref": "#/components/schemas/JustServe.Entities.User" + }, + "project": { + "$ref": "#/components/schemas/JustServe.Entities.Project" + }, + "projectEvent": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectEvent" + }, + "recipientUser": { + "$ref": "#/components/schemas/JustServe.Entities.User" + }, + "type": { + "$ref": "#/components/schemas/JustServe.Entities.UserEmailProjectTypeEnum" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.UserEmailProjectTypeEnum": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "userEmailProjects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.UserEmailProject" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "JustServe.Entities.UserFavoriteOrganization": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "format": "uuid" + }, + "organizationId": { + "type": "string", + "format": "uuid" + }, + "favoritedOn": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "organization": { + "$ref": "#/components/schemas/JustServe.Entities.Organization" + }, + "user": { + "$ref": "#/components/schemas/JustServe.Entities.User" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.UserFavoriteProject": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "format": "uuid" + }, + "projectId": { + "type": "string", + "format": "uuid" + }, + "favoritedOn": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "project": { + "$ref": "#/components/schemas/JustServe.Entities.Project" + }, + "user": { + "$ref": "#/components/schemas/JustServe.Entities.User" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.UserLocation": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "format": "uuid" + }, + "displayAddress": { + "type": "string", + "nullable": true + }, + "displayAddress2": { + "type": "string", + "nullable": true + }, + "displayPostalCode": { + "type": "string", + "nullable": true + }, + "displayCity": { + "type": "string", + "nullable": true + }, + "displayNeighborhood": { + "type": "string", + "nullable": true + }, + "displayCounty": { + "type": "string", + "nullable": true + }, + "displayState": { + "type": "string", + "nullable": true + }, + "displayCountry": { + "type": "string", + "nullable": true + }, + "displayCountryCode": { + "type": "string", + "nullable": true + }, + "civicGeographyId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "churchGeographyId": { + "type": "string", + "format": "uuid" + }, + "updated": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "latitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "longitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "maxLatitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "minLatitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "maxLongitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "minLongitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "coordinates": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Point" + }, + "area": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Polygon" + }, + "churchGeography": { + "$ref": "#/components/schemas/JustServe.Entities.ChurchGeography" + }, + "civicGeography": { + "$ref": "#/components/schemas/JustServe.Entities.CivicGeography" + }, + "user": { + "$ref": "#/components/schemas/JustServe.Entities.User" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.UserLoginHistory": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "userId": { + "type": "string", + "format": "uuid" + }, + "loginAt": { + "type": "string", + "format": "date-time" + }, + "user": { + "$ref": "#/components/schemas/JustServe.Entities.User" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.UserNotification": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "userId": { + "type": "string", + "format": "uuid" + }, + "typeId": { + "type": "integer", + "format": "int32" + }, + "levelId": { + "type": "integer", + "format": "int32" + }, + "statusId": { + "type": "integer", + "format": "int32" + }, + "createdDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "showStartDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "showEndDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "title": { + "type": "string", + "nullable": true + }, + "projectId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "projectEventId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "successStoryId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "organizationId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "boundaryAdminUserId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "customNotificationId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "boundaryAdminUser": { + "$ref": "#/components/schemas/JustServe.Entities.User" + }, + "customNotification": { + "$ref": "#/components/schemas/JustServe.Entities.CustomNotification" + }, + "level": { + "$ref": "#/components/schemas/JustServe.Entities.NotificationLevelEnum" + }, + "organization": { + "$ref": "#/components/schemas/JustServe.Entities.Organization" + }, + "project": { + "$ref": "#/components/schemas/JustServe.Entities.Project" + }, + "projectEvent": { + "$ref": "#/components/schemas/JustServe.Entities.ProjectEvent" + }, + "status": { + "$ref": "#/components/schemas/JustServe.Entities.NotificationStatusEnum" + }, + "successStory": { + "$ref": "#/components/schemas/JustServe.Entities.SuccessStory" + }, + "type": { + "$ref": "#/components/schemas/JustServe.Entities.NotificationTypeEnum" + }, + "user": { + "$ref": "#/components/schemas/JustServe.Entities.User" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.UserNotificationPreference": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "format": "uuid" + }, + "generalNotificationOptIn": { + "type": "boolean", + "nullable": true + }, + "volunteerNewsletterRadius": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "volunteerNewsletter": { + "type": "boolean", + "nullable": true + }, + "recieveTexts": { + "type": "boolean", + "nullable": true + }, + "includeSponsorAdminInfo": { + "type": "boolean", + "nullable": true + }, + "notifyUpcomingVolunteeredProjects": { + "type": "boolean", + "nullable": true + }, + "notifyUpcommingVolunteeredProjectsDaysPrior": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "disasterReliefRegistrationSeen": { + "type": "boolean", + "nullable": true + }, + "donateDisasterReliefChecked": { + "type": "boolean", + "nullable": true + }, + "disasterReliefAvailability": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "volunteerForDisasterReliefChecked": { + "type": "boolean", + "nullable": true + }, + "generalMarketingOptIn": { + "type": "boolean", + "nullable": true + }, + "user": { + "$ref": "#/components/schemas/JustServe.Entities.User" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.UserProjectSearchLog": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "userId": { + "type": "string", + "format": "uuid" + }, + "searchedOn": { + "type": "string", + "format": "date-time" + }, + "keywords": { + "type": "string", + "nullable": true + }, + "locationSearch": { + "type": "string", + "nullable": true + }, + "radius": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "user": { + "$ref": "#/components/schemas/JustServe.Entities.User" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.UserSearchPreference": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "format": "uuid" + }, + "suitableAllAges": { + "type": "boolean", + "nullable": true + }, + "groupProject": { + "type": "boolean", + "nullable": true + }, + "volunteerRemotely": { + "type": "boolean", + "nullable": true + }, + "itemDonations": { + "type": "boolean", + "nullable": true + }, + "wheelchairAccessible": { + "type": "boolean", + "nullable": true + }, + "indoors": { + "type": "boolean", + "nullable": true + }, + "youthGroups": { + "type": "boolean", + "nullable": true + }, + "user": { + "$ref": "#/components/schemas/JustServe.Entities.User" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.UserTag": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "format": "uuid" + }, + "tagId": { + "type": "integer", + "format": "int32" + }, + "tag": { + "$ref": "#/components/schemas/JustServe.Entities.Tag" + }, + "user": { + "$ref": "#/components/schemas/JustServe.Entities.User" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.UserTimeOfDay": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "format": "uuid" + }, + "timeOfDayId": { + "type": "integer", + "format": "int32" + }, + "timeOfDay": { + "$ref": "#/components/schemas/JustServe.Entities.TimeOfDayEnum" + }, + "user": { + "$ref": "#/components/schemas/JustServe.Entities.User" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.Widget": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "ownerId": { + "type": "string", + "format": "uuid" + }, + "key": { + "type": "string", + "nullable": true + }, + "applicationName": { + "type": "string", + "nullable": true + }, + "applicationPath": { + "type": "string", + "nullable": true + }, + "contactEmail": { + "type": "string", + "nullable": true + }, + "contactPhone": { + "type": "string", + "nullable": true + }, + "analyticsUrlTag": { + "type": "string", + "nullable": true + }, + "typeId": { + "type": "integer", + "format": "int32" + }, + "owner": { + "$ref": "#/components/schemas/JustServe.Entities.User" + }, + "type": { + "$ref": "#/components/schemas/JustServe.Entities.WidgetTypeEnum" + } + }, + "additionalProperties": false + }, + "JustServe.Entities.WidgetTypeEnum": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "widgets": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JustServe.Entities.Widget" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Microsoft.AspNetCore.Mvc.ActionResult": { + "type": "object", + "additionalProperties": false + }, + "Microsoft.AspNetCore.Mvc.ActionResult`1[[JustServe.Entities.UserNotificationPreference, JustServe.Entities, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]": { + "type": "object", + "properties": { + "result": { + "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ActionResult" + }, + "value": { + "$ref": "#/components/schemas/JustServe.Entities.UserNotificationPreference" + } + }, + "additionalProperties": false + }, + "NetTopologySuite.Geometries.Coordinate": { + "type": "object", + "properties": { + "x": { + "type": "number", + "format": "double" + }, + "y": { + "type": "number", + "format": "double" + }, + "z": { + "type": "number", + "format": "double" + }, + "m": { + "type": "number", + "format": "double" + }, + "coordinateValue": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Coordinate" + }, + "isValid": { + "type": "boolean", + "readOnly": true + } + }, + "additionalProperties": false + }, + "NetTopologySuite.Geometries.CoordinateEqualityComparer": { + "type": "object", + "additionalProperties": false + }, + "NetTopologySuite.Geometries.CoordinateSequence": { + "type": "object", + "properties": { + "dimension": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "measures": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "spatial": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "ordinates": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Ordinates" + }, + "hasZ": { + "type": "boolean", + "readOnly": true + }, + "hasM": { + "type": "boolean", + "readOnly": true + }, + "zOrdinateIndex": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "mOrdinateIndex": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "first": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Coordinate" + }, + "last": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Coordinate" + }, + "count": { + "type": "integer", + "format": "int32", + "readOnly": true + } + }, + "additionalProperties": false + }, + "NetTopologySuite.Geometries.CoordinateSequenceFactory": { + "type": "object", + "properties": { + "ordinates": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Ordinates" + } + }, + "additionalProperties": false + }, + "NetTopologySuite.Geometries.Dimension": { + "enum": [ + "Point", + "P", + "Curve", + "L", + "Surface", + "A", + "Collapse", + "Dontcare", + "True", + "False", + "Unknown" + ], + "type": "integer", + "format": "int32" + }, + "NetTopologySuite.Geometries.Envelope": { + "type": "object", + "properties": { + "isNull": { + "type": "boolean", + "readOnly": true + }, + "width": { + "type": "number", + "format": "double", + "readOnly": true + }, + "height": { + "type": "number", + "format": "double", + "readOnly": true + }, + "diameter": { + "type": "number", + "format": "double", + "readOnly": true + }, + "minX": { + "type": "number", + "format": "double", + "readOnly": true + }, + "maxX": { + "type": "number", + "format": "double", + "readOnly": true + }, + "minY": { + "type": "number", + "format": "double", + "readOnly": true + }, + "maxY": { + "type": "number", + "format": "double", + "readOnly": true + }, + "area": { + "type": "number", + "format": "double", + "readOnly": true + }, + "minExtent": { + "type": "number", + "format": "double", + "readOnly": true + }, + "maxExtent": { + "type": "number", + "format": "double", + "readOnly": true + }, + "centre": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Coordinate" + } + }, + "additionalProperties": false + }, + "NetTopologySuite.Geometries.Geometry": { + "type": "object", + "properties": { + "factory": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.GeometryFactory" + }, + "userData": { + "nullable": true + }, + "srid": { + "type": "integer", + "format": "int32" + }, + "geometryType": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "ogcGeometryType": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.OgcGeometryType" + }, + "precisionModel": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.PrecisionModel" + }, + "coordinate": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Coordinate" + }, + "coordinates": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Coordinate" + }, + "nullable": true, + "readOnly": true + }, + "numPoints": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "numGeometries": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "isSimple": { + "type": "boolean", + "readOnly": true + }, + "isValid": { + "type": "boolean", + "readOnly": true + }, + "isEmpty": { + "type": "boolean", + "readOnly": true + }, + "area": { + "type": "number", + "format": "double", + "readOnly": true + }, + "length": { + "type": "number", + "format": "double", + "readOnly": true + }, + "centroid": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Point" + }, + "interiorPoint": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Point" + }, + "pointOnSurface": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Point" + }, + "dimension": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Dimension" + }, + "boundary": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Geometry" + }, + "boundaryDimension": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Dimension" + }, + "envelope": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Geometry" + }, + "envelopeInternal": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Envelope" + }, + "isRectangle": { + "type": "boolean", + "readOnly": true + } + }, + "additionalProperties": false + }, + "NetTopologySuite.Geometries.GeometryFactory": { + "type": "object", + "properties": { + "precisionModel": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.PrecisionModel" + }, + "coordinateSequenceFactory": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.CoordinateSequenceFactory" + }, + "srid": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "geometryServices": { + "$ref": "#/components/schemas/NetTopologySuite.NtsGeometryServices" + } + }, + "additionalProperties": false + }, + "NetTopologySuite.Geometries.GeometryOverlay": { + "type": "object", + "additionalProperties": false + }, + "NetTopologySuite.Geometries.LineString": { + "type": "object", + "properties": { + "factory": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.GeometryFactory" + }, + "userData": { + "nullable": true + }, + "srid": { + "type": "integer", + "format": "int32" + }, + "precisionModel": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.PrecisionModel" + }, + "numGeometries": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "isSimple": { + "type": "boolean", + "readOnly": true + }, + "isValid": { + "type": "boolean", + "readOnly": true + }, + "area": { + "type": "number", + "format": "double", + "readOnly": true + }, + "centroid": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Point" + }, + "interiorPoint": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Point" + }, + "pointOnSurface": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Point" + }, + "envelope": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Geometry" + }, + "envelopeInternal": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Envelope" + }, + "isRectangle": { + "type": "boolean", + "readOnly": true + }, + "coordinates": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Coordinate" + }, + "nullable": true, + "readOnly": true + }, + "coordinateSequence": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.CoordinateSequence" + }, + "coordinate": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Coordinate" + }, + "dimension": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Dimension" + }, + "boundaryDimension": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Dimension" + }, + "isEmpty": { + "type": "boolean", + "readOnly": true + }, + "numPoints": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "startPoint": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Point" + }, + "endPoint": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Point" + }, + "isClosed": { + "type": "boolean", + "readOnly": true + }, + "isRing": { + "type": "boolean", + "readOnly": true + }, + "geometryType": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "ogcGeometryType": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.OgcGeometryType" + }, + "length": { + "type": "number", + "format": "double", + "readOnly": true + }, + "boundary": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Geometry" + }, + "count": { + "type": "integer", + "format": "int32", + "readOnly": true + } + }, + "additionalProperties": false + }, + "NetTopologySuite.Geometries.LinearRing": { + "type": "object", + "properties": { + "factory": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.GeometryFactory" + }, + "userData": { + "nullable": true + }, + "srid": { + "type": "integer", + "format": "int32" + }, + "precisionModel": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.PrecisionModel" + }, + "numGeometries": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "isSimple": { + "type": "boolean", + "readOnly": true + }, + "isValid": { + "type": "boolean", + "readOnly": true + }, + "area": { + "type": "number", + "format": "double", + "readOnly": true + }, + "centroid": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Point" + }, + "interiorPoint": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Point" + }, + "pointOnSurface": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Point" + }, + "envelope": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Geometry" + }, + "envelopeInternal": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Envelope" + }, + "isRectangle": { + "type": "boolean", + "readOnly": true + }, + "coordinates": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Coordinate" + }, + "nullable": true, + "readOnly": true + }, + "coordinateSequence": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.CoordinateSequence" + }, + "coordinate": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Coordinate" + }, + "dimension": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Dimension" + }, + "isEmpty": { + "type": "boolean", + "readOnly": true + }, + "numPoints": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "startPoint": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Point" + }, + "endPoint": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Point" + }, + "isRing": { + "type": "boolean", + "readOnly": true + }, + "ogcGeometryType": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.OgcGeometryType" + }, + "length": { + "type": "number", + "format": "double", + "readOnly": true + }, + "boundary": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Geometry" + }, + "count": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "boundaryDimension": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Dimension" + }, + "isClosed": { + "type": "boolean", + "readOnly": true + }, + "geometryType": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "isCCW": { + "type": "boolean", + "readOnly": true + } + }, + "additionalProperties": false + }, + "NetTopologySuite.Geometries.OgcGeometryType": { + "enum": [ + "Point", + "LineString", + "Polygon", + "MultiPoint", + "MultiLineString", + "MultiPolygon", + "GeometryCollection", + "CircularString", + "CompoundCurve", + "CurvePolygon", + "MultiCurve", + "MultiSurface", + "Curve", + "Surface", + "PolyhedralSurface", + "TIN" + ], + "type": "integer", + "format": "int32" + }, + "NetTopologySuite.Geometries.Ordinates": { + "enum": [ + "None", + "X", + "Spatial1", + "Y", + "Spatial2", + "XY", + "Z", + "Spatial3", + "XYZ", + "Spatial4", + "Spatial5", + "Spatial6", + "Spatial7", + "Spatial8", + "Spatial9", + "Spatial10", + "Spatial11", + "Spatial12", + "Spatial13", + "Spatial14", + "Spatial15", + "Spatial16", + "AllSpatialOrdinates", + "M", + "Measure1", + "XYM", + "XYZM", + "Measure2", + "Measure3", + "Measure4", + "Measure5", + "Measure6", + "Measure7", + "Measure8", + "Measure9", + "Measure10", + "Measure11", + "Measure12", + "Measure13", + "Measure14", + "Measure15", + "Measure16", + "AllMeasureOrdinates", + "AllOrdinates" + ], + "type": "integer", + "format": "int32" + }, + "NetTopologySuite.Geometries.Point": { + "type": "object", + "properties": { + "factory": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.GeometryFactory" + }, + "userData": { + "nullable": true + }, + "srid": { + "type": "integer", + "format": "int32" + }, + "precisionModel": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.PrecisionModel" + }, + "numGeometries": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "isSimple": { + "type": "boolean", + "readOnly": true + }, + "isValid": { + "type": "boolean", + "readOnly": true + }, + "area": { + "type": "number", + "format": "double", + "readOnly": true + }, + "length": { + "type": "number", + "format": "double", + "readOnly": true + }, + "centroid": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Point" + }, + "interiorPoint": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Point" + }, + "pointOnSurface": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Point" + }, + "envelope": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Geometry" + }, + "envelopeInternal": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Envelope" + }, + "isRectangle": { + "type": "boolean", + "readOnly": true + }, + "coordinateSequence": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.CoordinateSequence" + }, + "coordinates": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Coordinate" + }, + "nullable": true, + "readOnly": true + }, + "numPoints": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "isEmpty": { + "type": "boolean", + "readOnly": true + }, + "dimension": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Dimension" + }, + "boundaryDimension": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Dimension" + }, + "x": { + "type": "number", + "format": "double" + }, + "y": { + "type": "number", + "format": "double" + }, + "coordinate": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Coordinate" + }, + "geometryType": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "ogcGeometryType": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.OgcGeometryType" + }, + "boundary": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Geometry" + }, + "z": { + "type": "number", + "format": "double" + }, + "m": { + "type": "number", + "format": "double" + } + }, + "additionalProperties": false + }, + "NetTopologySuite.Geometries.Polygon": { + "type": "object", + "properties": { + "factory": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.GeometryFactory" + }, + "userData": { + "nullable": true + }, + "srid": { + "type": "integer", + "format": "int32" + }, + "precisionModel": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.PrecisionModel" + }, + "numGeometries": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "isSimple": { + "type": "boolean", + "readOnly": true + }, + "isValid": { + "type": "boolean", + "readOnly": true + }, + "centroid": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Point" + }, + "interiorPoint": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Point" + }, + "pointOnSurface": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Point" + }, + "envelope": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Geometry" + }, + "envelopeInternal": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Envelope" + }, + "coordinate": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Coordinate" + }, + "coordinates": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Coordinate" + }, + "nullable": true, + "readOnly": true + }, + "numPoints": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "dimension": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Dimension" + }, + "boundaryDimension": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Dimension" + }, + "isEmpty": { + "type": "boolean", + "readOnly": true + }, + "exteriorRing": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.LineString" + }, + "numInteriorRings": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "interiorRings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.LineString" + }, + "nullable": true, + "readOnly": true + }, + "geometryType": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "ogcGeometryType": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.OgcGeometryType" + }, + "area": { + "type": "number", + "format": "double", + "readOnly": true + }, + "length": { + "type": "number", + "format": "double", + "readOnly": true + }, + "boundary": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.Geometry" + }, + "isRectangle": { + "type": "boolean", + "readOnly": true + }, + "shell": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.LinearRing" + }, + "holes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.LinearRing" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "NetTopologySuite.Geometries.PrecisionModel": { + "type": "object", + "properties": { + "isFloating": { + "type": "boolean", + "readOnly": true + }, + "maximumSignificantDigits": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "scale": { + "type": "number", + "format": "double" + }, + "gridSize": { + "type": "number", + "format": "double", + "readOnly": true + }, + "precisionModelType": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.PrecisionModels" + } + }, + "additionalProperties": false + }, + "NetTopologySuite.Geometries.PrecisionModels": { + "enum": [ + "Floating", + "FloatingSingle", + "Fixed" + ], + "type": "integer", + "format": "int32" + }, + "NetTopologySuite.NtsGeometryServices": { + "type": "object", + "properties": { + "geometryOverlay": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.GeometryOverlay" + }, + "coordinateEqualityComparer": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.CoordinateEqualityComparer" + }, + "defaultSRID": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "defaultCoordinateSequenceFactory": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.CoordinateSequenceFactory" + }, + "defaultPrecisionModel": { + "$ref": "#/components/schemas/NetTopologySuite.Geometries.PrecisionModel" + } + }, + "additionalProperties": false + }, + "System.DayOfWeek": { + "enum": [ + "Sunday", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday" + ], + "type": "integer", + "format": "int32" + }, + "System.Security.Claims.Claim": { + "type": "object", + "properties": { + "issuer": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "originalIssuer": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "nullable": true, + "readOnly": true + }, + "subject": { + "$ref": "#/components/schemas/System.Security.Claims.ClaimsIdentity" + }, + "type": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "value": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "valueType": { + "type": "string", + "nullable": true, + "readOnly": true + } + }, + "additionalProperties": false + }, + "System.Security.Claims.ClaimsIdentity": { + "type": "object", + "properties": { + "authenticationType": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "isAuthenticated": { + "type": "boolean", + "readOnly": true + }, + "actor": { + "$ref": "#/components/schemas/System.Security.Claims.ClaimsIdentity" + }, + "bootstrapContext": { + "nullable": true + }, + "claims": { + "type": "array", + "items": { + "$ref": "#/components/schemas/System.Security.Claims.Claim" + }, + "nullable": true, + "readOnly": true + }, + "label": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "nameClaimType": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "roleClaimType": { + "type": "string", + "nullable": true, + "readOnly": true + } + }, + "additionalProperties": false + } + }, + "securitySchemes": { + "Bearer": { + "type": "http", + "description": "Please enter a valid token from the login endpoint", + "scheme": "Bearer", + "bearerFormat": "JWT" + } + } + }, + "security": [ + { + "Bearer": [ ] + } + ] +} \ No newline at end of file diff --git a/src/test/groovy/org/justserve/client/BoundaryPermissionSpec.groovy b/core/src/test/groovy/org/justserve/BoundaryPermissionSpec.groovy similarity index 92% rename from src/test/groovy/org/justserve/client/BoundaryPermissionSpec.groovy rename to core/src/test/groovy/org/justserve/BoundaryPermissionSpec.groovy index ad32930..fb5a37e 100644 --- a/src/test/groovy/org/justserve/client/BoundaryPermissionSpec.groovy +++ b/core/src/test/groovy/org/justserve/BoundaryPermissionSpec.groovy @@ -1,12 +1,14 @@ -package org.justserve.client +package org.justserve import io.micronaut.http.HttpResponse import io.micronaut.http.client.exceptions.HttpClientResponseException -import org.justserve.JustServeSpec +import io.micronaut.test.extensions.spock.annotation.MicronautTest +import org.justserve.client.BoundaryPermissionClient import spock.lang.Shared import static io.micronaut.http.HttpStatus.INTERNAL_SERVER_ERROR +@MicronautTest class BoundaryPermissionSpec extends JustServeSpec { @Shared diff --git a/src/test/groovy/org/justserve/client/DynamicRoutingClientSpec.groovy b/core/src/test/groovy/org/justserve/DynamicRoutingClientSpec.groovy similarity index 54% rename from src/test/groovy/org/justserve/client/DynamicRoutingClientSpec.groovy rename to core/src/test/groovy/org/justserve/DynamicRoutingClientSpec.groovy index 16bb270..e4e274d 100644 --- a/src/test/groovy/org/justserve/client/DynamicRoutingClientSpec.groovy +++ b/core/src/test/groovy/org/justserve/DynamicRoutingClientSpec.groovy @@ -1,26 +1,31 @@ -package org.justserve.client +package org.justserve import io.micronaut.http.HttpResponse import io.micronaut.http.HttpStatus -import org.justserve.JustServeSpec +import io.micronaut.test.extensions.spock.annotation.MicronautTest +import org.justserve.client.DynamicRoutingClient import org.justserve.model.DynamicRoutingDataResponse import spock.lang.Shared +@MicronautTest class DynamicRoutingClientSpec extends JustServeSpec { @Shared DynamicRoutingClient noAuthClient, authClient + @Shared + String realOrgSlug + def setupSpec() { noAuthClient = noAuthCtx.getBean(DynamicRoutingClient) authClient = ctx.getBean(DynamicRoutingClient) + realOrgSlug = authOrgClient.searchByLocation(createSearchRequestForElkGrove()).body().getOrganizations().url.first().toString() } def "get orgId for #url"() { when: HttpResponse response = client.getOrgIdFromSlug(url) - then: response.status() == expectedStatus if (expectedStatus == HttpStatus.OK) { @@ -28,10 +33,10 @@ class DynamicRoutingClientSpec extends JustServeSpec { } where: - url | expectedStatus | client - "accessleisure_sacramento" | HttpStatus.OK | authClient //TODO add actual orgs, not hardtyped ones - "accessleisure_sacramento" | HttpStatus.OK | noAuthClient - "1234" | HttpStatus.NOT_FOUND | authClient - "1234" | HttpStatus.NOT_FOUND | noAuthClient + url | expectedStatus | client + realOrgSlug | HttpStatus.OK | authClient + realOrgSlug | HttpStatus.OK | noAuthClient + "1234" | HttpStatus.NOT_FOUND | authClient + "1234" | HttpStatus.NOT_FOUND | noAuthClient } } diff --git a/core/src/test/groovy/org/justserve/GraphQLClientSpec.groovy b/core/src/test/groovy/org/justserve/GraphQLClientSpec.groovy new file mode 100644 index 0000000..d667a60 --- /dev/null +++ b/core/src/test/groovy/org/justserve/GraphQLClientSpec.groovy @@ -0,0 +1,381 @@ +package org.justserve + +import io.micronaut.http.client.exceptions.HttpClientResponseException +import io.micronaut.test.extensions.spock.annotation.MicronautTest +import jakarta.inject.Inject +import net.datafaker.Faker +import org.justserve.client.GraphQLClient +import org.justserve.model.* +import org.justserve.model.graph.* +import spock.lang.Shared +import spock.lang.Specification +import spock.lang.Unroll + +import java.util.concurrent.TimeUnit + +@MicronautTest +class GraphQLClientSpec extends Specification { + + @Shared + @Inject + GraphQLClient client + + @Shared + Faker faker = new Faker() + + Map projectIds = [:] + + + def setup() { + EventType.values().each { type -> + def project = client.createProject(new GraphQLCreateProjectVariables() + .setTitle("Test Project - ${type.name()}") + .setEventType(type) + .setLocationType(ProjectLocationType.SINGLE_LOCATION) + ) + projectIds[type] = project.getData().getCreateProject().getId() + } + } + + @SuppressWarnings("GroovyAssignabilityCheck") + void "can create Project with EventType: #eventType, LocationType: #locationType, and Redirect: #redirect"(EventType eventType, ProjectLocationType locationType, String redirect) { + given: + GraphQLCreateProjectVariables args = new GraphQLCreateProjectVariables() + .setEventType(eventType) + .setLocationType(locationType) + .setTitle("this is my title") + .setRedirect(redirect) + + when: + client.createProject(args) + + then: + noExceptionThrown() + + where: + [eventType, locationType, redirect] << [EventType.values(), ProjectLocationType.values(), ["", null, "https://google.com"]].combinations() + } + + private ProjectEvent.ProjectEventBuilder baseEventBuilder() { + return ProjectEvent.builder() + .start(Date.from(faker.timeAndDate().future(180, TimeUnit.DAYS))) + .end(Date.from(faker.timeAndDate().future(365, TimeUnit.DAYS))) + } + + @Unroll("can set contact info for #eventType.name() event") + def "can set contact info for #eventType event"() { + given: + def event = baseEventBuilder() + .contactEmail(faker.internet().emailAddress()) + .contactName(faker.name().fullName()) + .contactPhone(faker.phoneNumber().phoneNumber()) + .build() + def vars = new CreateEventVariables().setProjectId(projectIds[eventType]).setProjectEvent(event) + + when: + client.createEvent(new CreateEventMutation(vars)) + + then: + noExceptionThrown() + + where: + eventType << [EventType.DTL, EventType.Ongoing, EventType.MultipleDTL] + } + + @Unroll("can set dates for #eventType.name() event") + def "can set dates for #eventType event"() { + given: + def event = baseEventBuilder() + .renewDate(Date.from(faker.timeAndDate().future(730, TimeUnit.DAYS))) + .build() + def vars = new CreateEventVariables().setProjectId(projectIds[eventType]).setProjectEvent(event) + + when: + client.createEvent(new CreateEventMutation(vars)) + + then: + noExceptionThrown() + + where: + eventType << [EventType.MultipleDTL] + } + + @Unroll("can set group info for #eventType.name() event") + def "can set group info for #eventType event"() { + given: + def event = baseEventBuilder() + .groupCap(true) + .groupLimit(10) + .build() + def vars = new CreateEventVariables().setProjectId(projectIds[eventType]).setProjectEvent(event) + + when: + client.createEvent(new CreateEventMutation(vars)) + + then: + noExceptionThrown() + + where: + eventType << [EventType.Ongoing, EventType.MultipleDTL] + } + + @Unroll("can set location info for #eventType.name() event") + def "can set location info for #eventType event"() { + given: + def event = baseEventBuilder() + .locationLink(faker.internet().url()) + .locationName(faker.address().streetAddress()) + .build() + def vars = new CreateEventVariables().setProjectId(projectIds[eventType]).setProjectEvent(event) + + when: + client.createEvent(new CreateEventMutation(vars)) + + then: + noExceptionThrown() + + where: + eventType << [EventType.DTL, EventType.MultipleDTL] + } + + @Unroll("can set schedule info for #eventType.name() event") + def "can set schedule info for #eventType event"() { + given: + def schedule = faker.lorem().sentence() + def event = baseEventBuilder() + .schedule(schedule) + .shiftTitle(schedule) + .build() + def vars = new CreateEventVariables().setProjectId(projectIds[eventType]).setProjectEvent(event) + + when: + client.createEvent(new CreateEventMutation(vars)) + + then: + noExceptionThrown() + + where: + eventType << [EventType.DTL, EventType.Ongoing, EventType.MultipleDTL] + } + + @Unroll("can set volunteer info for #eventType.name() event") + def "can set volunteer info for #eventType event"() { + given: + def event = baseEventBuilder() + .volunteerCap(true) + .totalVolunteersNeeded(20) + .build() + def vars = new CreateEventVariables().setProjectId(projectIds[eventType]).setProjectEvent(event) + + when: + client.createEvent(new CreateEventMutation(vars)) + + then: + noExceptionThrown() + + where: + eventType << [EventType.DTL, EventType.Ongoing, EventType.MultipleDTL] + } + + @Unroll("can set miscellaneous info for #eventType.name() event") + def "can set miscellaneous info for #eventType event"() { + given: + def event = baseEventBuilder() + .qrCodeImageLocation(faker.internet().url()) + .specialDirections(faker.lorem().paragraph()) + .status(ProjectEventStatus.ACTIVE) + .timezone(TimeZone.ARIZONA) + .build() + def vars = new CreateEventVariables().setProjectId(projectIds[eventType]).setProjectEvent(event) + + when: + client.createEvent(new CreateEventMutation(vars)) + + then: + noExceptionThrown() + + where: + eventType << [EventType.DTL, EventType.Ongoing, EventType.MultipleDTL] + } + + @Unroll("cannot manually create event for #eventType.name() project") + def "cannot manually create event for invalid project types"() { + given: + def event = baseEventBuilder().build() + def vars = new CreateEventVariables().setProjectId(projectIds[eventType]).setProjectEvent(event) + + when: + client.createEvent(new CreateEventMutation(vars)) + + then: + thrown(HttpClientResponseException) + + where: + eventType << [EventType.Recurring] + } + + @Unroll("can NOT add multiple events only for #eventType.name() projects") + def "can add multiple events only for Multi-DTL projects"() { + given: + def firstEvent = baseEventBuilder().build() + def secondEvent = baseEventBuilder().build() + def firstVars = new CreateEventVariables().setProjectId(projectIds[eventType]).setProjectEvent(firstEvent) + def secondVars = new CreateEventVariables().setProjectId(projectIds[eventType]).setProjectEvent(secondEvent) + + when: + client.createEvent(new CreateEventMutation(firstVars)) + client.createEvent(new CreateEventMutation(secondVars)) + + then: + thrown(HttpClientResponseException) + + where: + eventType << [EventType.DTL, EventType.Ongoing, EventType.Recurring] + } + + @Unroll("can add multiple events only for #eventType.name() project") + def "can add multiple events only for Multi-DTL projects"() { + given: + def firstEvent = baseEventBuilder().build() + def secondEvent = baseEventBuilder().build() + def firstVars = new CreateEventVariables().setProjectId(projectIds[eventType]).setProjectEvent(firstEvent) + def secondVars = new CreateEventVariables().setProjectId(projectIds[eventType]).setProjectEvent(secondEvent) + + when: + client.createEvent(new CreateEventMutation(firstVars)) + client.createEvent(new CreateEventMutation(secondVars)) + + then: + noExceptionThrown() + + where: + eventType << [EventType.MultipleDTL] + } + + def "can create multiple events at once for Multi-DTL projects using createEvents mutation"() { + given: + def thisEvent = baseEventBuilder().shiftTitle("Morning Shift").build() + def thatEvent = baseEventBuilder().shiftTitle("Afternoon Shift").build() + def event3 = baseEventBuilder().shiftTitle("Evening Shift").build() + def vars = new CreateEventsVariables(projectIds[EventType.MultipleDTL], thisEvent, thatEvent, event3) + def mutation = new CreateEventsMutation(vars) + + when: + def response = client.createEvents(mutation) + + then: + noExceptionThrown() + + and: "the response data should contain the newly created events" + null != response.getData() + } + + def "can create multiple recurring events at once for Recurring projects using createRecurringEvents mutation"() { + given: + def time1 = new ProjectRecurringTime().setStartTime("10:00").setEndTime("12:00").setRecurringType(RecurringType.WEEKLY).setMonday(true) + def time2 = new ProjectRecurringTime().setStartTime("14:00").setEndTime("16:00").setRecurringType(RecurringType.MONTHLY).setThirdWeek(true) + def vars = new CreateRecurringEventsVariables(projectIds[EventType.Recurring], time1, time2) + def mutation = new CreateRecurringEventsMutation(vars) + + when: + def response = client.createRecurringEvents(mutation) + + then: + noExceptionThrown() + + and: "the response data should contain the newly created recurring events" + null != response.getData() + } + + def "cannot create event without start and end dates"() { + when: + ProjectEvent.builder().build() + + then: + thrown(IllegalStateException) + } + + def "cannot set groupCap without groupLimit"() { + when: + baseEventBuilder().groupCap(true).build() + + then: + thrown(IllegalStateException) + } + + def "cannot set volunteerCap without totalVolunteersNeeded"() { + when: + baseEventBuilder().volunteerCap(true).build() + + then: + thrown(IllegalStateException) + } + + def "cannot set volunteersCapped without volunteersNeeded on ProjectRecurringTime"() { + when: + ProjectRecurringTime.builder().volunteersCapped(true).build() + + then: + thrown(IllegalStateException) + } + + def "can set all info for ProjectRecurringTime"() { + given: + def time1 = ProjectRecurringTime.builder() + .contactEmail(faker.internet().emailAddress()) + .contactName(faker.name().fullName()) + .contactPhone(faker.phoneNumber().phoneNumber()) + .startTime("10:00") + .endTime("12:00") + .firstWeek(true) + .secondWeek(true) + .thirdWeek(true) + .fourthWeek(true) + .fifthWeek(true) + .lastWeek(true) + .groupLimit(10) + .recurringType(RecurringType.WEEKLY) + .recurringDaysOfMonths([1, 15, 28]) + .specialDirections(faker.lorem().paragraph()) + .volunteersCapped(true) + .volunteersNeeded(5) + .monday(true) + .tuesday(true) + .wednesday(true) + .thursday(true) + .friday(true) + .saturday(true) + .sunday(true) + .build() + + def vars = new CreateRecurringEventsVariables(projectIds[EventType.Recurring], time1) + def mutation = new CreateRecurringEventsMutation(vars) + + when: + def response = client.createRecurringEvents(mutation) + + then: + noExceptionThrown() + !response.hasErrors() + } + + @SuppressWarnings("GroovyAssignabilityCheck") + def "test searchOrganization parses the input correctly"(String searchTerm, Boolean includesAll) { + given: + + GraphQLSearchOrganizationVariables inputData = new GraphQLSearchOrganizationVariables() + .setSearchTerm(searchTerm) + .setIncludeAll(includesAll) + + when: + GraphQLResponse response = client.searchOrganization(inputData) + + then: + noExceptionThrown() + !response.hasErrors() + + where: + [includesAll, searchTerm] << [[true, false], ["the"]].combinations() + + } +} diff --git a/core/src/test/groovy/org/justserve/GraphQLErrorClientFilterSpec.groovy b/core/src/test/groovy/org/justserve/GraphQLErrorClientFilterSpec.groovy new file mode 100644 index 0000000..d4c47e5 --- /dev/null +++ b/core/src/test/groovy/org/justserve/GraphQLErrorClientFilterSpec.groovy @@ -0,0 +1,59 @@ +package org.justserve + +import io.micronaut.http.client.exceptions.HttpClientResponseException +import io.micronaut.test.extensions.spock.annotation.MicronautTest +import jakarta.inject.Inject +import net.datafaker.Faker +import org.justserve.client.GraphQLClient +import org.justserve.model.EventType +import org.justserve.model.GraphQLCreateProjectVariables +import org.justserve.model.ProjectLocationType +import org.justserve.model.ProjectRecurringTime +import org.justserve.model.graph.CreateRecurringEventsMutation +import org.justserve.model.graph.CreateRecurringEventsVariables +import spock.lang.Shared +import spock.lang.Specification + +@MicronautTest +class GraphQLErrorClientFilterSpec extends Specification { + + @Shared + @Inject + GraphQLClient client + + @Shared + Faker faker = new Faker() + + @SuppressWarnings("GroovyAssignabilityCheck") + void "can create Project with EventType: #eventType, LocationType: #locationType, and Redirect: #redirect"(EventType eventType, ProjectLocationType locationType, String redirect) { + given: + GraphQLCreateProjectVariables args = new GraphQLCreateProjectVariables() + .setEventType(eventType) + .setLocationType(locationType) + .setTitle("this is my title") + .setRedirect(redirect) + + when: + def response = client.createProject(args) + + then: + noExceptionThrown() + + when: "create an incompatible event" + response.getData().getCreateProject() + client.createRecurringEvents(new CreateRecurringEventsMutation(new CreateRecurringEventsVariables(response.getData().getCreateProject().getId(), new ProjectRecurringTime().setEndTime("whenever")))) + + then: + HttpClientResponseException error = thrown(HttpClientResponseException) + + and: + verifyAll { + error.getMessage().length() > 0 + error.getClass() == HttpClientResponseException.class + } + + + where: + [eventType, locationType, redirect] << [EventType.DTL, ProjectLocationType.values(), ["", null, "https://google.com"]].combinations() + } +} \ No newline at end of file diff --git a/src/test/groovy/org/justserve/client/ImageClientSpec.groovy b/core/src/test/groovy/org/justserve/ImageClientSpec.groovy similarity index 92% rename from src/test/groovy/org/justserve/client/ImageClientSpec.groovy rename to core/src/test/groovy/org/justserve/ImageClientSpec.groovy index 8749aed..1155c99 100644 --- a/src/test/groovy/org/justserve/client/ImageClientSpec.groovy +++ b/core/src/test/groovy/org/justserve/ImageClientSpec.groovy @@ -1,11 +1,13 @@ -package org.justserve.client +package org.justserve import io.micronaut.http.HttpStatus import io.micronaut.http.client.exceptions.HttpClientResponseException -import org.justserve.JustServeSpec +import io.micronaut.test.extensions.spock.annotation.MicronautTest +import org.justserve.client.ImageClient import org.justserve.model.ImageUploadRequest import spock.lang.Shared +@MicronautTest class ImageClientSpec extends JustServeSpec { @Shared diff --git a/src/test/groovy/org/justserve/JustServeSpec.groovy b/core/src/test/groovy/org/justserve/JustServeSpec.groovy similarity index 69% rename from src/test/groovy/org/justserve/JustServeSpec.groovy rename to core/src/test/groovy/org/justserve/JustServeSpec.groovy index 277ddad..6ea308a 100644 --- a/src/test/groovy/org/justserve/JustServeSpec.groovy +++ b/core/src/test/groovy/org/justserve/JustServeSpec.groovy @@ -5,13 +5,18 @@ import io.micronaut.context.env.Environment import io.micronaut.http.HttpResponse import io.micronaut.http.HttpStatus import io.micronaut.http.client.exceptions.HttpClientResponseException +import io.micronaut.http.client.multipart.MultipartBody +import io.micronaut.retry.annotation.Retryable import io.micronaut.test.extensions.spock.annotation.MicronautTest import net.datafaker.Faker +import org.apache.commons.lang3.RandomStringUtils import org.justserve.client.* import org.justserve.model.* import spock.lang.Shared import spock.lang.Specification +import java.util.stream.Collectors + import static org.justserve.model.DistanceType.MILES @MicronautTest() @@ -51,7 +56,7 @@ class JustServeSpec extends Specification { OrganizationClient authOrgClient @Shared - UserClient userClient + UserClient adminUserClient @Shared TestUser readOnlyUser @@ -62,20 +67,16 @@ class JustServeSpec extends Specification { def setupSpec() { faker = new Faker() - if (null != System.getenv("JUSTSERVE_TOKEN")) { - throw new IllegalStateException("JUSTSERVE_TOKEN is set. Do not define this variable in testing.") - } ctx = ApplicationContext.builder() .environments(Environment.CLI, Environment.TEST) - .properties([ - "justserve.token": System.getenv("TEST_TOKEN") - ]) + .properties(["justserve.token": System.getProperty("justserve.token") ?: System.getenv("JUSTSERVE_TOKEN")]) .build() .start() noAuthCtx = ApplicationContext .builder() .environments(Environment.CLI, Environment.TEST) .environmentVariableExcludes("JUSTSERVE_TOKEN") + .properties(["justserve.token": ""]) .build() .start() noAuthUserClient = noAuthCtx.getBean(UserClient) @@ -84,10 +85,12 @@ class JustServeSpec extends Specification { authOrgClient = ctx.getBean(OrganizationClient) authBoundaryPermissionClient = ctx.getBean(BoundaryPermissionClient) authDynamicRoutingClient = ctx.getBean(DynamicRoutingClient) - userClient = ctx.getBean(UserClient) + adminUserClient = ctx.getBean(UserClient) readOnlyUser = new TestUser(new Faker(Locale.of("en-us"))) projectClient = ctx.getBean(ProjectClient) - readOnlyUser.uuid = createUser(noAuthUserClient, readOnlyUser).body().getId() + String customRandomEmail = RandomStringUtils.insecure().nextAlphanumeric(20) + "@fake.com" + readOnlyUser.uuid = createUserFromFaker(noAuthUserClient, readOnlyUser, customRandomEmail).body().getId() + readOnlyUser.email = customRandomEmail searchResults = getProjectsByLocation(faker.location().toString()) } @@ -96,29 +99,38 @@ class JustServeSpec extends Specification { ctx.stop() } - def createUser() { - def response - while (null == response) { + HttpResponse createUser(UserClient client = noAuthUserClient) { + HttpResponse response = null + def tries = 0 + while ((null == response || ![HttpStatus.OK, HttpStatus.CREATED].contains(response.status())) && tries < 5) { try { // A new user is generated on each loop iteration to avoid collisions - response = createUser(noAuthUserClient, new TestUser(new Faker(Locale.of("en-us")))) + response = createUserFromFaker(client, new TestUser(new Faker(Locale.of("en-us")))) } catch (HttpClientResponseException ignored) { - // This user likely already exists, so we'll loop and try a new one. } + tries++ + } + if (null == response) { + throw new IllegalStateException("failed to create a test user after five attempts") } return response } - def createUser(UserClient client = noAuthUserClient, TestUser user) { - return client.createUser( - user.firstName, - user.lastName, - user.email, - user.password, - user.zipcode, - user.locale, - user.country, - user.countryCode) + @Retryable + private static HttpResponse createUserFromFaker(UserClient client, TestUser user, String uniqueEmailInput = null) { + String email = uniqueEmailInput ?: RandomStringUtils.insecure().nextAlphanumeric(20) + "@fake.com" + MultipartBody requestBody = MultipartBody.builder() + .addPart("firstName", user.firstName) + .addPart("lastName", user.lastName) + .addPart("email", email) + .addPart("password", "JustServe2026") + .addPart("postal", user.zipcode) + .addPart("language", user.locale) + .addPart("countryCode", user.countryCode) + .addPart("country", user.country) + .addPart("termsChecked", "true") + .build() + client.createUser(requestBody) } List getProjectsByLocation(String location) { @@ -144,7 +156,7 @@ class JustServeSpec extends Specification { .setContactPhone(faker.phoneNumber().phoneNumber()) .setDescription(faker.zelda().game()) .setLocationString(knownWorkingLocation) - .setLogo(getUploadedImageFileName()) + .setLogo(null) .setName(faker.zelda().character()) .set_public(null) .setUrl(getUniqueSlug()) @@ -159,10 +171,8 @@ class JustServeSpec extends Specification { * @param count The number of organizations to create. * @return A list of UUIDs for the created organizations. */ - List createOrgs(int count) { - return (1..count).collect { - createOrg() - } + List createTestOrgs(int count) { + return (1..count).toList().parallelStream().map({ _ -> createOrg() }).collect(Collectors.toList()) } @@ -181,9 +191,7 @@ class JustServeSpec extends Specification { * @return The file name of the uploaded image. */ String getUploadedImageFileName() { - HttpResponse profileImage = authImageClient.uploadImage( - new ImageUploadRequest(faker.image().base64JPG().split(",")[1], 256, 256, false, 0, 0) - ) + HttpResponse profileImage = authImageClient.uploadImage(new ImageUploadRequest(faker.image().base64JPG().split(",")[1], 256, 256, false, 0, 0)) return profileImage.body().displayFileName } @@ -194,7 +202,7 @@ class JustServeSpec extends Specification { String getUniqueSlug() { String urlSlug = null while (null == urlSlug) { - def potentialSlug = faker.word().noun() + def potentialSlug = faker.word().noun() + System.currentTimeMillis() def response = authDynamicRoutingClient.getOrgIdFromSlug(potentialSlug) if (response.status() == HttpStatus.NOT_FOUND) { urlSlug = potentialSlug diff --git a/src/test/groovy/org/justserve/client/OrganizationClientSpec.groovy b/core/src/test/groovy/org/justserve/OrganizationClientSpec.groovy similarity index 94% rename from src/test/groovy/org/justserve/client/OrganizationClientSpec.groovy rename to core/src/test/groovy/org/justserve/OrganizationClientSpec.groovy index 212b897..fb3a3a3 100644 --- a/src/test/groovy/org/justserve/client/OrganizationClientSpec.groovy +++ b/core/src/test/groovy/org/justserve/OrganizationClientSpec.groovy @@ -1,12 +1,14 @@ -package org.justserve.client - +package org.justserve import io.micronaut.http.HttpStatus import io.micronaut.http.client.exceptions.HttpClientResponseException -import org.justserve.JustServeSpec +import io.micronaut.test.extensions.spock.annotation.MicronautTest +import org.justserve.client.DynamicRoutingClient +import org.justserve.client.OrganizationClient import org.justserve.model.OrganizationCreateRequest import spock.lang.Shared +@MicronautTest class OrganizationClientSpec extends JustServeSpec { @Shared OrganizationClient noAuthClient diff --git a/src/test/groovy/org/justserve/client/ProjectClientSpec.groovy b/core/src/test/groovy/org/justserve/ProjectClientSpec.groovy similarity index 74% rename from src/test/groovy/org/justserve/client/ProjectClientSpec.groovy rename to core/src/test/groovy/org/justserve/ProjectClientSpec.groovy index f2d55c2..bce1a6d 100644 --- a/src/test/groovy/org/justserve/client/ProjectClientSpec.groovy +++ b/core/src/test/groovy/org/justserve/ProjectClientSpec.groovy @@ -1,12 +1,13 @@ -package org.justserve.client +package org.justserve import io.micronaut.http.HttpResponse -import org.justserve.JustServeSpec +import io.micronaut.test.extensions.spock.annotation.MicronautTest import org.justserve.model.* import static io.micronaut.http.HttpStatus.OK import static org.justserve.model.DistanceType.MILES +@MicronautTest class ProjectClientSpec extends JustServeSpec { void "get project's current owner"(ProjectCard project) { @@ -73,4 +74,25 @@ class ProjectClientSpec extends JustServeSpec { } } + void "can assign an organization to a project"() { + given: + def orgSearchResponse = authOrgClient.searchByLocation(createSearchRequestForElkGrove()) + UUID orgId = orgSearchResponse.body().organizations.first().id + ProjectCard project = searchResults.first() + + when: + def response = projectClient.assignOrganizationToProject(project.getId(), orgId) + + then: + verifyAll { + response.status == OK + } + + and: "validate that the reassignment worked - this is testing the underlying tech, not our codebase" + def updatedProject = projectClient.getProject(project.getId(), "en-US", new GetProjectRequest()).body() + verifyAll { + updatedProject.organization.organizationId == orgId + } + } + } diff --git a/src/test/groovy/org/justserve/TestUser.groovy b/core/src/test/groovy/org/justserve/TestUser.groovy similarity index 55% rename from src/test/groovy/org/justserve/TestUser.groovy rename to core/src/test/groovy/org/justserve/TestUser.groovy index e075641..2dda11d 100644 --- a/src/test/groovy/org/justserve/TestUser.groovy +++ b/core/src/test/groovy/org/justserve/TestUser.groovy @@ -6,7 +6,7 @@ import net.datafaker.providers.base.Address class TestUser { - public final String email, firstName, lastName, password, zipcode, countryCode, country, locale + public String email, firstName, lastName, password, zipcode, countryCode, country, locale public UUID uuid = null /** @@ -15,14 +15,14 @@ class TestUser { * @param faker seed for a faker, say a specific locale. */ TestUser(Faker faker) { - this.email = faker.internet().emailAddress(); - this.firstName = faker.name().firstName(); - this.lastName = faker.name().lastName(); + this.email = faker.internet().emailAddress() + this.firstName = faker.name().firstName() + this.lastName = faker.name().lastName() Address address = faker.address() - this.zipcode = address.zipCode(); - this.countryCode = address.countryCode(); - this.country = address.country(); + this.zipcode = address.zipCode() + this.countryCode = address.countryCode() + this.country = address.country() this.locale = faker.locality().localeString() - this.password = faker.credentials().password(8,100,true,true,true); + this.password = faker.credentials().password(8,100,true,true,true) } } diff --git a/core/src/test/groovy/org/justserve/UserClientSpec.groovy b/core/src/test/groovy/org/justserve/UserClientSpec.groovy new file mode 100644 index 0000000..be848e5 --- /dev/null +++ b/core/src/test/groovy/org/justserve/UserClientSpec.groovy @@ -0,0 +1,107 @@ +package org.justserve + +import io.micronaut.http.client.exceptions.HttpClientResponseException +import io.micronaut.http.client.multipart.MultipartBody +import io.micronaut.test.extensions.spock.annotation.MicronautTest +import net.datafaker.Faker +import org.apache.commons.lang3.RandomStringUtils +import org.justserve.client.UserClient +import org.justserve.model.UserHashRequestByEmail + +import static io.micronaut.http.HttpStatus.UNAUTHORIZED + +@MicronautTest +class UserClientSpec extends JustServeSpec { + + def setupSpec() { + + } + + def "create user #{user.firstName} #{user.lastName} #{user.email} #{user.password} #{user.zipcode} #{user.locale} #{user.country} #{user.countryCode}"() { + given: + TestUser user = new TestUser(new Faker(Locale.of("en-us"))) + MultipartBody requestBody = MultipartBody.builder() + .addPart("firstName", user.firstName) + .addPart("lastName", user.lastName) + .addPart("email", RandomStringUtils.insecure().nextAlphanumeric(20) + "@fake.com") + .addPart("password", "JustServe2026") + .addPart("postal", user.zipcode) + .addPart("language", user.locale) + .addPart("countryCode", user.countryCode) + .addPart("country", user.country) + .addPart("termsChecked", "true") + .build() + when: + client.createUser(requestBody) + + then: + noExceptionThrown() + + where: + client | _ + adminUserClient | _ + noAuthUserClient | _ + } + + def "can get admin context for a user as an admin"(UserClient client) { + when: + def response = client.getAdminContext(readOnlyUser.uuid) + + then: + response.body() != null + + where: + client | _ + adminUserClient | _ + } + + def "cannot get admin context for a user if not an admin"(UserClient client) { + when: + client.getAdminContext(readOnlyUser.uuid) + + then: + def exception = thrown(HttpClientResponseException) + exception.status == UNAUTHORIZED + + where: + client | _ + noAuthUserClient | _ + } + + def "can get tempPassword for a user as an admin"(UserClient client) { + when: + client.getTempPassword(new UserHashRequestByEmail(readOnlyUser.email)) + + then: + noExceptionThrown() + + where: + client | _ + adminUserClient | _ + } + + def "cannot get tempPassword for a user if not an admin"(UserClient client) { + when: + client.getTempPassword(new UserHashRequestByEmail(readOnlyUser.email)) + + then: + def exception = thrown(HttpClientResponseException) + exception.status == UNAUTHORIZED + + where: + client | _ + noAuthUserClient | _ + } + + def "can get all user information for a user as an admin"(UserClient client) { + when: + client.getAllUserInformation(readOnlyUser.uuid, true, true, 1) + + then: + noExceptionThrown() + + where: + client | _ + adminUserClient | _ + } +} diff --git a/src/test/resources/README.md b/core/src/test/resources/README.md similarity index 100% rename from src/test/resources/README.md rename to core/src/test/resources/README.md diff --git a/core/src/test/resources/SpockConfig.groovy b/core/src/test/resources/SpockConfig.groovy new file mode 100644 index 0000000..267ec1e --- /dev/null +++ b/core/src/test/resources/SpockConfig.groovy @@ -0,0 +1,5 @@ +runner { + parallel { + enabled true + } +} \ No newline at end of file diff --git a/core/src/test/resources/application-test.yaml b/core/src/test/resources/application-test.yaml new file mode 100644 index 0000000..0a25b6f --- /dev/null +++ b/core/src/test/resources/application-test.yaml @@ -0,0 +1,10 @@ +micronaut: + http: + services: + justserve: + url: https://stage.justserve.org +justserve: + token: ${:i-need-to-be-defined} +logger: + levels: + io.micronaut.http.client: DEBUG diff --git a/core/src/test/resources/projects.yaml b/core/src/test/resources/projects.yaml new file mode 100644 index 0000000..bce99e3 --- /dev/null +++ b/core/src/test/resources/projects.yaml @@ -0,0 +1,6 @@ +"Thrift Store Adventurers Needed!-Coeur d'Alene": "https://urldefense.com/v3/__https://v6q93rxd.r.us-east-1.awstrack.me/L0=/https:*2F*2Fwww.justserve.org*2Fprojects*2Ff001912b-256f-44b5-87a8-61e5e922a783/1/0100019b27fd352e-a7b03409-4c41-4863-b76a-524b7f84f180-000000/ENCW9TCkcy4N949_TX_jtes4S7A=3D457__;JSUlJQ!!Oz_3W2l6Vjs!5dejAA5tmpGXmMs_vdlbrwn4wHWu5ytbEcsfO4rx9OUup3ka-dRHFZEinoeDKzwDHUqRP5WvSOsZ5sS1l875dYifqtaS$" +"American Red Cross Blood Drive": "https://urldefense.com/v3/__https://v6q93rxd.r.us-east-1.awstrack.me/L0=/https:*2F*2Fwww.justserve.org*2Fprojects*2Ff0fdc9d2-2cd5-4b00-b186-9f1003a34fb8/1/0100019b27fd352e-a7b03409-4c41-4863-b76a-524b7f84f180-000000/SOIQKQKGlArjeL0JnyUDfNrR-Lw=3D457__;JSUlJQ!!Oz_3W2l6Vjs!5dejAA5tmpGXmMs_vdlbrwn4wHWu5ytbEcsfO4rx9OUup3ka-dRHFZEinoeDKzwDHUqRP5WvSOsZ5sS1l875detDYK5M$" +"Do you feel guilty because you cannot give Blood? Come be a Helper!": "https://urldefense.com/v3/__https://v6q93rxd.r.us-east-1.awstrack.me/L0=/https:*2F*2Fwww.justserve.org*2Fprojects*2Ff1a72ef2-d433-4885-a548-bcb52c959a3f/1/0100019b27fd352e-a7b03409-4c41-4863-b76a-524b7f84f180-000000/cd0nNSMKv8MqcesG-I0dDmvXOh4=3D457__;JSUlJQ!!Oz_3W2l6Vjs!5dejAA5tmpGXmMs_vdlbrwn4wHWu5ytbEcsfO4rx9OUup3ka-dRHFZEinoeDKzwDHUqRP5WvSOsZ5sS1l875dRo6H__T$" +"Saint Vincent de Paul North Idaho": "https://urldefense.com/v3/__https://v6q93rxd.r.us-east-1.awstrack.me/L0=/https:*2F*2Fwww.justserve.org*2Fprojects*2Ff2e21dfc-e132-46e5-a97f-801089574c6c/1/0100019b27fd352e-a7b03409-4c41-4863-b76a-524b7f84f180-000000/EUSJSjx5GFnIY4Uw8ZKFvmdP3UQ=3D457__;JSUlJQ!!Oz_3W2l6Vjs!5dejAA5tmpGXmMs_vdlbrwn4wHWu5ytbEcsfO4rx9OUup3ka-dRHFZEinoeDKzwDHUqRP5WvSOsZ5sS1l875dTNOaCdu$" +"Habitat for Humanity Neighborhood Cleanup Day": "https://urldefense.com/v3/__https://v6q93rxd.r.us-east-1.awstrack.me/L0=/https://:*2F*2Fwww.justserve.org*2Fprojects*2Ff642ff60-0ef4-4954-a7ba-e7333e16738b/1/0100019b27fd352e-a7b03409-4c41-4863-b76a-524b7f84f180-000000/tGCPal-9awkiaon1eX24YLGYNZU=3D457__;JSUlJQ!!Oz_3W2l6Vjs!5dejAA5tmpGXmMs_vdlbrwn4wHWu5ytbEcsfO4rx9OUup3ka-dRHFZEinoeDKzwDHUqRP5WvSOsZ5sS1l875dUyrxvy0$" +"Food Distribution, We Care Wednesday at MCC - Red Mountain Campus":"https://urldefense.com/v3/__https://v6q93rxd.r.us-east-1.awstrack.me/L0/https:*2F*2Fwww.justserve.org*2Fprojects*2F8184d4d4-2dfb-4199-9d2a-11bda765c288/1/0100019bc2cbfb3e-33585837-0f77-4978-b48a-1d8fe489f936-000000/EsqZuRxunV83UlT-3N1fZvayHzU=461__;JSUlJQ!!Oz_3W2l6Vjs!5FRNJDgSZdVQY1WZC5qDdcbVhIzjWrwEJSBXx8R7ZHcnUGwDbycnt03KfRWH_whZUfComJrsZ5aUFLWp1pMiUSHaTnINujhNU9M$" \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 8b86abd..4d88273 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,11 @@ micronautVersion=4.8.3 -justserveCliVersion=0.0.7 +justserveCliVersion=0.1.0-SNAPSHOT org.gradle.console=rich +micronautLibraryVersion=4.5.3 +micronautOpenapiVersion=4.5.3 +jarTestVersion=1.1.0 +simpleJavaMailVersion=8.12.6 +jsoupVersion=1.21.2 +datafakerVersion=2.5.1 +commonsLang3Version=3.20.0 +micronautOpenapiSpecVersion=6.20.0 diff --git a/justserve text b/justserve text new file mode 100644 index 0000000..f30f31e --- /dev/null +++ b/justserve text @@ -0,0 +1,7 @@ + _ _ ____ + | | | | / ___| + | |_ _ ___| |_| (___ ___ _ ____ _____ + | | | | / __| __|\___ \ / _ \ '__\ \ / / _ \ + ___| | |_| \__ \ |_ ____) | __/ | \ V / __/ +|____/ \__,_|___/\__|_____/ \___|_| \_/ \___| + diff --git a/settings.gradle b/settings.gradle index ab46ea3..9025124 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1 +1,19 @@ -rootProject.name="justserve-cli" \ No newline at end of file +pluginManagement { + repositories { + gradlePluginPortal() + mavenCentral() + } +} + +enableFeaturePreview 'TYPESAFE_PROJECT_ACCESSORS' + +rootProject.name="devkit" + +include "core" +include "cli" + +dependencyResolutionManagement { + repositories { + mavenCentral() + } +} diff --git a/src/docs/asciidoc/index.adoc b/src/docs/asciidoc/index.adoc deleted file mode 100644 index d1c7c9a..0000000 --- a/src/docs/asciidoc/index.adoc +++ /dev/null @@ -1,84 +0,0 @@ -= JustServe CLI User Guide -:toc: left -:toclevels: 2 -:sectnums: - -An administrative command-line tool for JustServe Specialists and administrators. - -== Prerequisites - -Before using the CLI, you must authenticate your session. - -. Set the `JUSTSERVE_TOKEN` environment variable with a valid API token obtained from the JustServe platform. -+ -[source,powershell] ----- -# For PowerShell (Windows) -$env:JUSTSERVE_TOKEN = "your_api_token_here" ----- -+ -[source,bash] ----- -# For Bash (Linux/macOS) -export JUSTSERVE_TOKEN="your_api_token_here" ----- -+ -[NOTE] -==== -This token is used to authorize your requests to the JustServe API. Ensure it has the necessary permissions for the operations you intend to perform. -==== - -== Usage - -The primary command is `justserve`. You can run it from your terminal once you have the executable file. - -=== Generating a Temporary Password - -The main function of this tool is to generate a new temporary password for a user, which is useful for resolving account access issues. - -To generate a password, use the `--email` or `-e` option, followed by the user's email address. - -.Command Syntax -[source,bash] ----- -./justserve --email ----- - -.Example Request -[source,bash] ----- -./justserve --email user@example.com ----- - -If the request is successful, the tool will print the new temporary password directly to the console. - -.Example Success Output ----- -t3mpP@ssw0rd! ----- - -=== Checking the Tool Version - -To display the current version of the `justserve-cli` tool, use the `--version` or `-v` flag. This is helpful for ensuring you are using the latest release. - -.Command Syntax -[source,bash] ----- -./justserve --version ----- - -.Example Output -[source,text] ----- -0.0.3-SNAPSHOT ----- - -== Error Handling - -If the tool encounters an issue—such as an invalid email, an authentication failure, or a server-side problem—it will print a descriptive error message to the standard error stream. - -.Example Error Output -[source,text] ----- -received an unexpected response from JustServe: 404 (Not Found) ----- \ No newline at end of file diff --git a/src/main/resources/put-boundaries-rep_jennifer-from-jonathan-zoo.har b/src/main/resources/put-boundaries-rep_jennifer-from-jonathan-zoo.har deleted file mode 100644 index 2c351a8..0000000 --- a/src/main/resources/put-boundaries-rep_jennifer-from-jonathan-zoo.har +++ /dev/null @@ -1,1396 +0,0 @@ -{ - "log": { - "version": "1.2", - "creator": { - "name": "Firefox", - "version": "144.0" - }, - "browser": { - "name": "Firefox", - "version": "144.0" - }, - "pages": [ - { - "id": "page_4", - "pageTimings": { - "onContentLoad": -123510, - "onLoad": -121816 - }, - "startedDateTime": "2025-10-04T11:02:03.954-06:00", - "title": "https://www.justserve.org/admin/users?tab=boundaryEdit&userId=6a1b0bce-27be-4985-b221-a96c5612473c" - } - ], - "entries": [ - { - "startedDateTime": "2025-10-04T11:02:03.954-06:00", - "request": { - "bodySize": 229, - "method": "PUT", - "url": "https://www.justserve.org/api/v1/boundaries/update", - "httpVersion": "HTTP/1.1", - "headers": [ - { - "name": "Host", - "value": "www.justserve.org" - }, - { - "name": "User-Agent", - "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0" - }, - { - "name": "Accept", - "value": "application/json, text/plain, */*" - }, - { - "name": "Accept-Language", - "value": "en-US,en;q=0.5" - }, - { - "name": "Accept-Encoding", - "value": "gzip, deflate, br, zstd" - }, - { - "name": "Referer", - "value": "https://www.justserve.org/admin/users?tab=boundaryEdit&userId=6a1b0bce-27be-4985-b221-a96c5612473c" - }, - { - "name": "Content-Type", - "value": "application/json" - }, - { - "name": "Authorization", - "value": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI2NDE4NzVjNy1jNmRmLTRjMTUtYTZlOS03ZTc5NmNjYzMyZjEiLCJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoiNjQxODc1YzctYzZkZi00YzE1LWE2ZTktN2U3OTZjY2MzMmYxIiwianRpIjoiM2Y5ZjhiYjMtYmU0OC00OTJhLWIxZTktY2M4YzdiYTQ1MzEwIiwiZW1haWwiOiJqb25hdGhhbi56b2xsaW5nZXJAY2h1cmNob2ZqZXN1c2NocmlzdC5vcmciLCJleHRlcm5hbF9pZCI6IjY0MTg3NWM3LWM2ZGYtNGMxNS1hNmU5LTdlNzk2Y2NjMzJmMSIsIm5hbWUiOiJKb25hdGhhbiBab2xsaW5nZXIiLCJvcmdhbml6YXRpb25zIjoiQXJlYSBTcGVjaWFsaXN0cywiLCJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL3dzLzIwMDgvMDYvaWRlbnRpdHkvY2xhaW1zL3JvbGUiOiIxOCIsImlzcyI6Imh0dHBzOi8vd3d3Lmp1c3RzZXJ2ZS5vcmcifQ.US5F_y4pQJYBZSKw39IAynHK-Wb3K3QA1sNzL66lQ6w" - }, - { - "name": "Content-Length", - "value": "229" - }, - { - "name": "Origin", - "value": "https://www.justserve.org" - }, - { - "name": "Connection", - "value": "keep-alive" - }, - { - "name": "Cookie", - "value": "_fbp=fb.1.1758815969658.680488826508573002; NEXT_LOCALE=en-us; dtCookie=v_4_srv_2_sn_21322B6E90118493E0F96A34F31CA69F_perc_100000_ol_0_mul_1_app-3A8ada1280bee91d29_0_rcs-3Acss_0" - }, - { - "name": "Sec-Fetch-Dest", - "value": "empty" - }, - { - "name": "Sec-Fetch-Mode", - "value": "cors" - }, - { - "name": "Sec-Fetch-Site", - "value": "same-origin" - }, - { - "name": "Priority", - "value": "u=0" - } - ], - "cookies": [ - { - "name": "_fbp", - "value": "fb.1.1758815969658.680488826508573002" - }, - { - "name": "NEXT_LOCALE", - "value": "en-us" - }, - { - "name": "dtCookie", - "value": "v_4_srv_2_sn_21322B6E90118493E0F96A34F31CA69F_perc_100000_ol_0_mul_1_app-3A8ada1280bee91d29_0_rcs-3Acss_0" - } - ], - "queryString": [], - "headersSize": 1499, - "postData": { - "mimeType": "application/json", - "params": [], - "text": "{\"boundaryType\":1,\"id\":\"c4ec7291-d6b4-4d29-924d-bd3f4b826d94\",\"updateInfo\":[{\"userId\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"role\":8,\"addCivicGeographyIds\":[\"618a10a1-c47d-453f-9fd0-0fdfce4c1a19\"],\"removeCivicGeographyIds\":[]}]}" - } - }, - "response": { - "status": 200, - "statusText": "OK", - "httpVersion": "HTTP/1.1", - "headers": [ - { - "name": "Content-Length", - "value": "0" - }, - { - "name": "Server", - "value": "Kestrel" - }, - { - "name": "Expires", - "value": "Sat, 04 Oct 2025 17:01:48 GMT" - }, - { - "name": "Cache-Control", - "value": "max-age=0, no-cache, no-store" - }, - { - "name": "Pragma", - "value": "no-cache" - }, - { - "name": "Date", - "value": "Sat, 04 Oct 2025 17:01:48 GMT" - }, - { - "name": "Connection", - "value": "keep-alive" - }, - { - "name": "Server-Timing", - "value": "ak_p; desc=\"1759597307666_399924805_70831533_61448_425_50_0_-\";dur=1" - } - ], - "cookies": [], - "content": { - "mimeType": "text/xml", - "size": 0, - "text": "" - }, - "redirectURL": "", - "headersSize": 305, - "bodySize": 2033 - }, - "cache": {}, - "timings": { - "blocked": 0, - "dns": 0, - "connect": 0, - "ssl": 0, - "send": 0, - "wait": 663, - "receive": 0 - }, - "time": 663, - "_securityState": "secure", - "serverIPAddress": "104.68.113.88", - "connection": "443", - "pageref": "page_4" - }, - { - "startedDateTime": "2025-10-04T11:02:04.718-06:00", - "request": { - "bodySize": 0, - "method": "PUT", - "url": "https://www.justserve.org/api/v1/boundaries/rep/6a1b0bce-27be-4985-b221-a96c5612473c/org/577b00aa-17b4-400c-89ab-41cadf1c6ea3", - "httpVersion": "HTTP/1.1", - "headers": [ - { - "name": "Host", - "value": "www.justserve.org" - }, - { - "name": "User-Agent", - "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0" - }, - { - "name": "Accept", - "value": "application/json, text/plain, */*" - }, - { - "name": "Accept-Language", - "value": "en-US,en;q=0.5" - }, - { - "name": "Accept-Encoding", - "value": "gzip, deflate, br, zstd" - }, - { - "name": "Referer", - "value": "https://www.justserve.org/admin/users?tab=boundaryEdit&userId=6a1b0bce-27be-4985-b221-a96c5612473c" - }, - { - "name": "Authorization", - "value": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI2NDE4NzVjNy1jNmRmLTRjMTUtYTZlOS03ZTc5NmNjYzMyZjEiLCJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoiNjQxODc1YzctYzZkZi00YzE1LWE2ZTktN2U3OTZjY2MzMmYxIiwianRpIjoiM2Y5ZjhiYjMtYmU0OC00OTJhLWIxZTktY2M4YzdiYTQ1MzEwIiwiZW1haWwiOiJqb25hdGhhbi56b2xsaW5nZXJAY2h1cmNob2ZqZXN1c2NocmlzdC5vcmciLCJleHRlcm5hbF9pZCI6IjY0MTg3NWM3LWM2ZGYtNGMxNS1hNmU5LTdlNzk2Y2NjMzJmMSIsIm5hbWUiOiJKb25hdGhhbiBab2xsaW5nZXIiLCJvcmdhbml6YXRpb25zIjoiQXJlYSBTcGVjaWFsaXN0cywiLCJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL3dzLzIwMDgvMDYvaWRlbnRpdHkvY2xhaW1zL3JvbGUiOiIxOCIsImlzcyI6Imh0dHBzOi8vd3d3Lmp1c3RzZXJ2ZS5vcmcifQ.US5F_y4pQJYBZSKw39IAynHK-Wb3K3QA1sNzL66lQ6w" - }, - { - "name": "Origin", - "value": "https://www.justserve.org" - }, - { - "name": "Connection", - "value": "keep-alive" - }, - { - "name": "Cookie", - "value": "_fbp=fb.1.1758815969658.680488826508573002; NEXT_LOCALE=en-us; dtCookie=v_4_srv_2_sn_21322B6E90118493E0F96A34F31CA69F_perc_100000_ol_0_mul_1_app-3A8ada1280bee91d29_0_rcs-3Acss_0" - }, - { - "name": "Sec-Fetch-Dest", - "value": "empty" - }, - { - "name": "Sec-Fetch-Mode", - "value": "cors" - }, - { - "name": "Sec-Fetch-Site", - "value": "same-origin" - }, - { - "name": "Content-Length", - "value": "0" - } - ], - "cookies": [ - { - "name": "_fbp", - "value": "fb.1.1758815969658.680488826508573002" - }, - { - "name": "NEXT_LOCALE", - "value": "en-us" - }, - { - "name": "dtCookie", - "value": "v_4_srv_2_sn_21322B6E90118493E0F96A34F31CA69F_perc_100000_ol_0_mul_1_app-3A8ada1280bee91d29_0_rcs-3Acss_0" - } - ], - "queryString": [], - "headersSize": 1525 - }, - "response": { - "status": 200, - "statusText": "OK", - "httpVersion": "HTTP/1.1", - "headers": [ - { - "name": "Content-Length", - "value": "0" - }, - { - "name": "Server", - "value": "Kestrel" - }, - { - "name": "Expires", - "value": "Sat, 04 Oct 2025 17:01:49 GMT" - }, - { - "name": "Cache-Control", - "value": "max-age=0, no-cache, no-store" - }, - { - "name": "Pragma", - "value": "no-cache" - }, - { - "name": "Date", - "value": "Sat, 04 Oct 2025 17:01:49 GMT" - }, - { - "name": "Connection", - "value": "keep-alive" - }, - { - "name": "Server-Timing", - "value": "ak_p; desc=\"1759597308421_399924805_70839405_94858_588_56_0_-\";dur=1" - } - ], - "cookies": [], - "content": { - "mimeType": "text/xml", - "size": 0, - "text": "" - }, - "redirectURL": "", - "headersSize": 305, - "bodySize": 305 - }, - "cache": {}, - "timings": { - "blocked": 0, - "dns": 0, - "connect": 0, - "ssl": 0, - "send": 0, - "wait": 1040, - "receive": 0 - }, - "time": 1040, - "_securityState": "secure", - "serverIPAddress": "104.68.113.88", - "connection": "443", - "pageref": "page_4" - }, - { - "startedDateTime": "2025-10-04T11:02:05.777-06:00", - "request": { - "bodySize": 0, - "method": "GET", - "url": "https://www.justserve.org/api/v1/users/641875c7-c6df-4c15-a6e9-7e796ccc32f1/boundaries/church/highest", - "httpVersion": "HTTP/1.1", - "headers": [ - { - "name": "Host", - "value": "www.justserve.org" - }, - { - "name": "User-Agent", - "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0" - }, - { - "name": "Accept", - "value": "application/json, text/plain, */*" - }, - { - "name": "Accept-Language", - "value": "en-US,en;q=0.5" - }, - { - "name": "Accept-Encoding", - "value": "gzip, deflate, br, zstd" - }, - { - "name": "Referer", - "value": "https://www.justserve.org/admin/users?tab=boundaryEdit&userId=6a1b0bce-27be-4985-b221-a96c5612473c" - }, - { - "name": "Authorization", - "value": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI2NDE4NzVjNy1jNmRmLTRjMTUtYTZlOS03ZTc5NmNjYzMyZjEiLCJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoiNjQxODc1YzctYzZkZi00YzE1LWE2ZTktN2U3OTZjY2MzMmYxIiwianRpIjoiM2Y5ZjhiYjMtYmU0OC00OTJhLWIxZTktY2M4YzdiYTQ1MzEwIiwiZW1haWwiOiJqb25hdGhhbi56b2xsaW5nZXJAY2h1cmNob2ZqZXN1c2NocmlzdC5vcmciLCJleHRlcm5hbF9pZCI6IjY0MTg3NWM3LWM2ZGYtNGMxNS1hNmU5LTdlNzk2Y2NjMzJmMSIsIm5hbWUiOiJKb25hdGhhbiBab2xsaW5nZXIiLCJvcmdhbml6YXRpb25zIjoiQXJlYSBTcGVjaWFsaXN0cywiLCJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL3dzLzIwMDgvMDYvaWRlbnRpdHkvY2xhaW1zL3JvbGUiOiIxOCIsImlzcyI6Imh0dHBzOi8vd3d3Lmp1c3RzZXJ2ZS5vcmcifQ.US5F_y4pQJYBZSKw39IAynHK-Wb3K3QA1sNzL66lQ6w" - }, - { - "name": "Connection", - "value": "keep-alive" - }, - { - "name": "Cookie", - "value": "_fbp=fb.1.1758815969658.680488826508573002; NEXT_LOCALE=en-us; dtCookie=v_4_srv_2_sn_21322B6E90118493E0F96A34F31CA69F_perc_100000_ol_0_mul_1_app-3A8ada1280bee91d29_0_rcs-3Acss_0" - }, - { - "name": "Sec-Fetch-Dest", - "value": "empty" - }, - { - "name": "Sec-Fetch-Mode", - "value": "cors" - }, - { - "name": "Sec-Fetch-Site", - "value": "same-origin" - } - ], - "cookies": [ - { - "name": "_fbp", - "value": "fb.1.1758815969658.680488826508573002" - }, - { - "name": "NEXT_LOCALE", - "value": "en-us" - }, - { - "name": "dtCookie", - "value": "v_4_srv_2_sn_21322B6E90118493E0F96A34F31CA69F_perc_100000_ol_0_mul_1_app-3A8ada1280bee91d29_0_rcs-3Acss_0" - } - ], - "queryString": [], - "headersSize": 1447 - }, - "response": { - "status": 200, - "statusText": "OK", - "httpVersion": "HTTP/1.1", - "headers": [ - { - "name": "Content-Type", - "value": "application/json; charset=utf-8" - }, - { - "name": "Content-Length", - "value": "192" - }, - { - "name": "Server", - "value": "Kestrel" - }, - { - "name": "Expires", - "value": "Sat, 04 Oct 2025 17:01:49 GMT" - }, - { - "name": "Cache-Control", - "value": "max-age=0, no-cache, no-store" - }, - { - "name": "Pragma", - "value": "no-cache" - }, - { - "name": "Date", - "value": "Sat, 04 Oct 2025 17:01:49 GMT" - }, - { - "name": "Connection", - "value": "keep-alive" - }, - { - "name": "Server-Timing", - "value": "edge; dur=1" - }, - { - "name": "Server-Timing", - "value": "origin; dur=123" - }, - { - "name": "Server-Timing", - "value": "cdn-cache; desc=MISS" - }, - { - "name": "Server-Timing", - "value": "ak_p; desc=\"1759597309485_399924805_70839724_12321_588_63_0_-\";dur=1" - } - ], - "cookies": [], - "content": { - "mimeType": "application/json; charset=utf-8", - "size": 192, - "text": "[{\"id\":\"Global\",\"ldsGeographyId\":\"d6165973-8154-48a1-93cd-4f34f9b31f48\",\"unitId\":\"Global\",\"name\":\"Global\",\"areaId\":null,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"type\":0,\"manageable\":true}]" - }, - "redirectURL": "", - "headersSize": 406, - "bodySize": 598 - }, - "cache": {}, - "timings": { - "blocked": 0, - "dns": 0, - "connect": 0, - "ssl": 0, - "send": 0, - "wait": 161, - "receive": 0 - }, - "time": 161, - "_securityState": "secure", - "serverIPAddress": "104.68.113.88", - "connection": "443", - "pageref": "page_4" - }, - { - "startedDateTime": "2025-10-04T11:02:05.803-06:00", - "request": { - "bodySize": 0, - "method": "GET", - "url": "https://www.justserve.org/api/v1/users/641875c7-c6df-4c15-a6e9-7e796ccc32f1/boundaries/civic/highest", - "httpVersion": "HTTP/1.1", - "headers": [ - { - "name": "Host", - "value": "www.justserve.org" - }, - { - "name": "User-Agent", - "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0" - }, - { - "name": "Accept", - "value": "application/json, text/plain, */*" - }, - { - "name": "Accept-Language", - "value": "en-US,en;q=0.5" - }, - { - "name": "Accept-Encoding", - "value": "gzip, deflate, br, zstd" - }, - { - "name": "Referer", - "value": "https://www.justserve.org/admin/users?tab=boundaryEdit&userId=6a1b0bce-27be-4985-b221-a96c5612473c" - }, - { - "name": "Authorization", - "value": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI2NDE4NzVjNy1jNmRmLTRjMTUtYTZlOS03ZTc5NmNjYzMyZjEiLCJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoiNjQxODc1YzctYzZkZi00YzE1LWE2ZTktN2U3OTZjY2MzMmYxIiwianRpIjoiM2Y5ZjhiYjMtYmU0OC00OTJhLWIxZTktY2M4YzdiYTQ1MzEwIiwiZW1haWwiOiJqb25hdGhhbi56b2xsaW5nZXJAY2h1cmNob2ZqZXN1c2NocmlzdC5vcmciLCJleHRlcm5hbF9pZCI6IjY0MTg3NWM3LWM2ZGYtNGMxNS1hNmU5LTdlNzk2Y2NjMzJmMSIsIm5hbWUiOiJKb25hdGhhbiBab2xsaW5nZXIiLCJvcmdhbml6YXRpb25zIjoiQXJlYSBTcGVjaWFsaXN0cywiLCJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL3dzLzIwMDgvMDYvaWRlbnRpdHkvY2xhaW1zL3JvbGUiOiIxOCIsImlzcyI6Imh0dHBzOi8vd3d3Lmp1c3RzZXJ2ZS5vcmcifQ.US5F_y4pQJYBZSKw39IAynHK-Wb3K3QA1sNzL66lQ6w" - }, - { - "name": "Connection", - "value": "keep-alive" - }, - { - "name": "Cookie", - "value": "_fbp=fb.1.1758815969658.680488826508573002; NEXT_LOCALE=en-us; dtCookie=v_4_srv_2_sn_21322B6E90118493E0F96A34F31CA69F_perc_100000_ol_0_mul_1_app-3A8ada1280bee91d29_0_rcs-3Acss_0" - }, - { - "name": "Sec-Fetch-Dest", - "value": "empty" - }, - { - "name": "Sec-Fetch-Mode", - "value": "cors" - }, - { - "name": "Sec-Fetch-Site", - "value": "same-origin" - } - ], - "cookies": [ - { - "name": "_fbp", - "value": "fb.1.1758815969658.680488826508573002" - }, - { - "name": "NEXT_LOCALE", - "value": "en-us" - }, - { - "name": "dtCookie", - "value": "v_4_srv_2_sn_21322B6E90118493E0F96A34F31CA69F_perc_100000_ol_0_mul_1_app-3A8ada1280bee91d29_0_rcs-3Acss_0" - } - ], - "queryString": [], - "headersSize": 1446 - }, - "response": { - "status": 200, - "statusText": "OK", - "httpVersion": "HTTP/1.1", - "headers": [ - { - "name": "Content-Type", - "value": "application/json; charset=utf-8" - }, - { - "name": "Content-Length", - "value": "5968" - }, - { - "name": "Server", - "value": "Kestrel" - }, - { - "name": "Expires", - "value": "Sat, 04 Oct 2025 17:01:49 GMT" - }, - { - "name": "Cache-Control", - "value": "max-age=0, no-cache, no-store" - }, - { - "name": "Pragma", - "value": "no-cache" - }, - { - "name": "Date", - "value": "Sat, 04 Oct 2025 17:01:49 GMT" - }, - { - "name": "Connection", - "value": "keep-alive" - }, - { - "name": "Server-Timing", - "value": "edge; dur=1" - }, - { - "name": "Server-Timing", - "value": "origin; dur=143" - }, - { - "name": "Server-Timing", - "value": "cdn-cache; desc=MISS" - }, - { - "name": "Server-Timing", - "value": "ak_p; desc=\"1759597309504_399924805_70812050_14261_562_48_0_-\";dur=1" - } - ], - "cookies": [], - "content": { - "mimeType": "application/json; charset=utf-8", - "size": 5968, - "text": "[{\"id\":\"3565052e-97d1-427f-962e-5d9582a69a6d\",\"country\":\"Argentina\",\"countryCode\":\"arg\",\"civicCountryId\":\"3565052e-97d1-427f-962e-5d9582a69a6d\",\"state\":null,\"civicStateId\":null,\"county\":null,\"civicCountyId\":null,\"city\":null,\"civicCityId\":null,\"neighborhood\":null,\"civicNeighborhoodId\":null,\"zipcode\":null,\"type\":5,\"manageable\":true},{\"id\":\"1baddd84-1b4b-4424-89e7-9b486a6e77f4\",\"country\":\"Australia\",\"countryCode\":\"aus\",\"civicCountryId\":\"1baddd84-1b4b-4424-89e7-9b486a6e77f4\",\"state\":null,\"civicStateId\":null,\"county\":null,\"civicCountyId\":null,\"city\":null,\"civicCityId\":null,\"neighborhood\":null,\"civicNeighborhoodId\":null,\"zipcode\":null,\"type\":5,\"manageable\":true},{\"id\":\"125c570e-75de-4293-9993-94b37c8c2ba3\",\"country\":\"Austria\",\"countryCode\":\"aut\",\"civicCountryId\":\"125c570e-75de-4293-9993-94b37c8c2ba3\",\"state\":null,\"civicStateId\":null,\"county\":null,\"civicCountyId\":null,\"city\":null,\"civicCityId\":null,\"neighborhood\":null,\"civicNeighborhoodId\":null,\"zipcode\":null,\"type\":5,\"manageable\":true},{\"id\":\"f4145cb6-1536-4a10-a38c-733c0cca1beb\",\"country\":\"Canada\",\"countryCode\":\"can\",\"civicCountryId\":\"f4145cb6-1536-4a10-a38c-733c0cca1beb\",\"state\":null,\"civicStateId\":null,\"county\":null,\"civicCountyId\":null,\"city\":null,\"civicCityId\":null,\"neighborhood\":null,\"civicNeighborhoodId\":null,\"zipcode\":null,\"type\":5,\"manageable\":true},{\"id\":\"7af718c1-b525-4baf-9cfe-0871ca6637fb\",\"country\":\"Chile\",\"countryCode\":\"chl\",\"civicCountryId\":\"7af718c1-b525-4baf-9cfe-0871ca6637fb\",\"state\":null,\"civicStateId\":null,\"county\":null,\"civicCountyId\":null,\"city\":null,\"civicCityId\":null,\"neighborhood\":null,\"civicNeighborhoodId\":null,\"zipcode\":null,\"type\":5,\"manageable\":true},{\"id\":\"041ffe5f-4de9-4426-96b6-40aabc6e28e6\",\"country\":\"France\",\"countryCode\":\"fra\",\"civicCountryId\":\"041ffe5f-4de9-4426-96b6-40aabc6e28e6\",\"state\":null,\"civicStateId\":null,\"county\":null,\"civicCountyId\":null,\"city\":null,\"civicCityId\":null,\"neighborhood\":null,\"civicNeighborhoodId\":null,\"zipcode\":null,\"type\":5,\"manageable\":true},{\"id\":\"69b65104-c3c2-48b8-927b-6e4d48dedf24\",\"country\":\"Germany\",\"countryCode\":\"deu\",\"civicCountryId\":\"69b65104-c3c2-48b8-927b-6e4d48dedf24\",\"state\":null,\"civicStateId\":null,\"county\":null,\"civicCountyId\":null,\"city\":null,\"civicCityId\":null,\"neighborhood\":null,\"civicNeighborhoodId\":null,\"zipcode\":null,\"type\":5,\"manageable\":true},{\"id\":\"4c247e2d-1a2e-4b31-bf48-4776ef17a121\",\"country\":\"Hungary\",\"countryCode\":\"hun\",\"civicCountryId\":\"4c247e2d-1a2e-4b31-bf48-4776ef17a121\",\"state\":null,\"civicStateId\":null,\"county\":null,\"civicCountyId\":null,\"city\":null,\"civicCityId\":null,\"neighborhood\":null,\"civicNeighborhoodId\":null,\"zipcode\":null,\"type\":5,\"manageable\":true},{\"id\":\"99ae0370-19cd-436b-9b01-df4be5bf7484\",\"country\":\"Ireland\",\"countryCode\":\"irl\",\"civicCountryId\":\"99ae0370-19cd-436b-9b01-df4be5bf7484\",\"state\":null,\"civicStateId\":null,\"county\":null,\"civicCountyId\":null,\"city\":null,\"civicCityId\":null,\"neighborhood\":null,\"civicNeighborhoodId\":null,\"zipcode\":null,\"type\":5,\"manageable\":true},{\"id\":\"e842b2ee-8830-46c2-8748-e7dbbf40d419\",\"country\":\"Mexico\",\"countryCode\":\"mex\",\"civicCountryId\":\"e842b2ee-8830-46c2-8748-e7dbbf40d419\",\"state\":null,\"civicStateId\":null,\"county\":null,\"civicCountyId\":null,\"city\":null,\"civicCityId\":null,\"neighborhood\":null,\"civicNeighborhoodId\":null,\"zipcode\":null,\"type\":5,\"manageable\":true},{\"id\":\"bb9e19b1-cdf7-42a5-9ce3-ddc2d036a948\",\"country\":\"New Zealand\",\"countryCode\":\"nzl\",\"civicCountryId\":\"bb9e19b1-cdf7-42a5-9ce3-ddc2d036a948\",\"state\":null,\"civicStateId\":null,\"county\":null,\"civicCountyId\":null,\"city\":null,\"civicCityId\":null,\"neighborhood\":null,\"civicNeighborhoodId\":null,\"zipcode\":null,\"type\":5,\"manageable\":true},{\"id\":\"e3e76bc5-e28c-487a-a61f-81c18956a59e\",\"country\":\"Philippines\",\"countryCode\":\"phl\",\"civicCountryId\":\"e3e76bc5-e28c-487a-a61f-81c18956a59e\",\"state\":null,\"civicStateId\":null,\"county\":null,\"civicCountyId\":null,\"city\":null,\"civicCityId\":null,\"neighborhood\":null,\"civicNeighborhoodId\":null,\"zipcode\":null,\"type\":5,\"manageable\":true},{\"id\":\"ebe471f6-96c4-469d-89c0-46bb0949f460\",\"country\":\"Portugal\",\"countryCode\":\"prt\",\"civicCountryId\":\"ebe471f6-96c4-469d-89c0-46bb0949f460\",\"state\":null,\"civicStateId\":null,\"county\":null,\"civicCountyId\":null,\"city\":null,\"civicCityId\":null,\"neighborhood\":null,\"civicNeighborhoodId\":null,\"zipcode\":null,\"type\":5,\"manageable\":true},{\"id\":\"52cec000-725f-4179-a109-0d1b3429c3ac\",\"country\":\"Puerto Rico\",\"countryCode\":\"pri\",\"civicCountryId\":\"52cec000-725f-4179-a109-0d1b3429c3ac\",\"state\":null,\"civicStateId\":null,\"county\":null,\"civicCountyId\":null,\"city\":null,\"civicCityId\":null,\"neighborhood\":null,\"civicNeighborhoodId\":null,\"zipcode\":null,\"type\":5,\"manageable\":true},{\"id\":\"3fdba8e9-24e1-40ff-8138-9f7916f5b867\",\"country\":\"Spain\",\"countryCode\":\"esp\",\"civicCountryId\":\"3fdba8e9-24e1-40ff-8138-9f7916f5b867\",\"state\":null,\"civicStateId\":null,\"county\":null,\"civicCountyId\":null,\"city\":null,\"civicCityId\":null,\"neighborhood\":null,\"civicNeighborhoodId\":null,\"zipcode\":null,\"type\":5,\"manageable\":true},{\"id\":\"778c6337-6b31-42be-8d39-a78ca5acf182\",\"country\":\"Switzerland\",\"countryCode\":\"che\",\"civicCountryId\":\"778c6337-6b31-42be-8d39-a78ca5acf182\",\"state\":null,\"civicStateId\":null,\"county\":null,\"civicCountyId\":null,\"city\":null,\"civicCityId\":null,\"neighborhood\":null,\"civicNeighborhoodId\":null,\"zipcode\":null,\"type\":5,\"manageable\":true},{\"id\":\"c44dfc46-0e99-473b-baa8-346834fe98c1\",\"country\":\"United Kingdom\",\"countryCode\":\"gbr\",\"civicCountryId\":\"c44dfc46-0e99-473b-baa8-346834fe98c1\",\"state\":null,\"civicStateId\":null,\"county\":null,\"civicCountyId\":null,\"city\":null,\"civicCityId\":null,\"neighborhood\":null,\"civicNeighborhoodId\":null,\"zipcode\":null,\"type\":5,\"manageable\":true},{\"id\":\"7fc9e505-6232-47b3-ab17-daa4f4073b0b\",\"country\":\"United States\",\"countryCode\":\"usa\",\"civicCountryId\":\"7fc9e505-6232-47b3-ab17-daa4f4073b0b\",\"state\":null,\"civicStateId\":null,\"county\":null,\"civicCountyId\":null,\"city\":null,\"civicCityId\":null,\"neighborhood\":null,\"civicNeighborhoodId\":null,\"zipcode\":null,\"type\":5,\"manageable\":true}]" - }, - "redirectURL": "", - "headersSize": 407, - "bodySize": 6375 - }, - "cache": {}, - "timings": { - "blocked": -1, - "dns": 0, - "connect": 0, - "ssl": 0, - "send": 0, - "wait": 173, - "receive": 2 - }, - "time": 175, - "_securityState": "secure", - "serverIPAddress": "104.68.113.88", - "connection": "443", - "pageref": "page_4" - }, - { - "startedDateTime": "2025-10-04T11:02:05.806-06:00", - "request": { - "bodySize": 0, - "method": "GET", - "url": "https://www.justserve.org/api/v1/users/6a1b0bce-27be-4985-b221-a96c5612473c/bounded", - "httpVersion": "HTTP/1.1", - "headers": [ - { - "name": "Host", - "value": "www.justserve.org" - }, - { - "name": "User-Agent", - "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0" - }, - { - "name": "Accept", - "value": "application/json, text/plain, */*" - }, - { - "name": "Accept-Language", - "value": "en-US,en;q=0.5" - }, - { - "name": "Accept-Encoding", - "value": "gzip, deflate, br, zstd" - }, - { - "name": "Referer", - "value": "https://www.justserve.org/admin/users?tab=boundaryEdit&userId=6a1b0bce-27be-4985-b221-a96c5612473c" - }, - { - "name": "Authorization", - "value": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI2NDE4NzVjNy1jNmRmLTRjMTUtYTZlOS03ZTc5NmNjYzMyZjEiLCJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoiNjQxODc1YzctYzZkZi00YzE1LWE2ZTktN2U3OTZjY2MzMmYxIiwianRpIjoiM2Y5ZjhiYjMtYmU0OC00OTJhLWIxZTktY2M4YzdiYTQ1MzEwIiwiZW1haWwiOiJqb25hdGhhbi56b2xsaW5nZXJAY2h1cmNob2ZqZXN1c2NocmlzdC5vcmciLCJleHRlcm5hbF9pZCI6IjY0MTg3NWM3LWM2ZGYtNGMxNS1hNmU5LTdlNzk2Y2NjMzJmMSIsIm5hbWUiOiJKb25hdGhhbiBab2xsaW5nZXIiLCJvcmdhbml6YXRpb25zIjoiQXJlYSBTcGVjaWFsaXN0cywiLCJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL3dzLzIwMDgvMDYvaWRlbnRpdHkvY2xhaW1zL3JvbGUiOiIxOCIsImlzcyI6Imh0dHBzOi8vd3d3Lmp1c3RzZXJ2ZS5vcmcifQ.US5F_y4pQJYBZSKw39IAynHK-Wb3K3QA1sNzL66lQ6w" - }, - { - "name": "Connection", - "value": "keep-alive" - }, - { - "name": "Cookie", - "value": "_fbp=fb.1.1758815969658.680488826508573002; NEXT_LOCALE=en-us; dtCookie=v_4_srv_2_sn_21322B6E90118493E0F96A34F31CA69F_perc_100000_ol_0_mul_1_app-3A8ada1280bee91d29_0_rcs-3Acss_0" - }, - { - "name": "Sec-Fetch-Dest", - "value": "empty" - }, - { - "name": "Sec-Fetch-Mode", - "value": "cors" - }, - { - "name": "Sec-Fetch-Site", - "value": "same-origin" - } - ], - "cookies": [ - { - "name": "_fbp", - "value": "fb.1.1758815969658.680488826508573002" - }, - { - "name": "NEXT_LOCALE", - "value": "en-us" - }, - { - "name": "dtCookie", - "value": "v_4_srv_2_sn_21322B6E90118493E0F96A34F31CA69F_perc_100000_ol_0_mul_1_app-3A8ada1280bee91d29_0_rcs-3Acss_0" - } - ], - "queryString": [], - "headersSize": 1429 - }, - "response": { - "status": 200, - "statusText": "OK", - "httpVersion": "HTTP/1.1", - "headers": [ - { - "name": "Content-Type", - "value": "application/json; charset=utf-8" - }, - { - "name": "Content-Length", - "value": "52442" - }, - { - "name": "Server", - "value": "Kestrel" - }, - { - "name": "Expires", - "value": "Sat, 04 Oct 2025 17:01:50 GMT" - }, - { - "name": "Cache-Control", - "value": "max-age=0, no-cache, no-store" - }, - { - "name": "Pragma", - "value": "no-cache" - }, - { - "name": "Date", - "value": "Sat, 04 Oct 2025 17:01:50 GMT" - }, - { - "name": "Connection", - "value": "keep-alive" - }, - { - "name": "Server-Timing", - "value": "edge; dur=1" - }, - { - "name": "Server-Timing", - "value": "origin; dur=820" - }, - { - "name": "Server-Timing", - "value": "cdn-cache; desc=MISS" - }, - { - "name": "Server-Timing", - "value": "ak_p; desc=\"1759597309512_399924805_70812231_81800_801_56_0_-\";dur=1" - } - ], - "cookies": [], - "content": { - "mimeType": "application/json; charset=utf-8", - "size": 52442, - "text": "{\"id\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"firstName\":\"Jennifer\",\"lastName\":\"Hale\",\"role\":8,\"isLead\":true,\"email\":\"jennifer.hale@justserve.org\",\"phone\":\"360991799\",\"keywords\":null,\"isActive\":true,\"updatedBy\":{\"name\":\"Zollinger, Jonathan\",\"boundaryName\":\"Des Moines Iowa Mount Pisgah Stake\",\"role\":0,\"isLead\":false,\"updatedDate\":\"2025-10-04T17:01:47.7516540+00:00\"},\"permissions\":[{\"id\":\"4b00d35c-f921-44ee-9688-cbcedcfa22fb\",\"boundary\":\"Des Moines Iowa Mount Pisgah Stake\",\"admins\":[{\"id\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"firstName\":\"Jennifer\",\"lastName\":\"Hale\",\"type\":8}]}],\"civicBoundaries\":[{\"id\":\"618a10a1-c47d-453f-9fd0-0fdfce4c1a19\",\"name\":\"Polk County, Iowa\",\"type\":7,\"civicCountryId\":\"7fc9e505-6232-47b3-ab17-daa4f4073b0b\",\"civicStateId\":\"6a501b77-21ac-45f9-81bf-9a91a64300ea\",\"civicCountyId\":\"618a10a1-c47d-453f-9fd0-0fdfce4c1a19\",\"civicCityId\":null}],\"churchBoundaries\":[{\"id\":\"c4ec7291-d6b4-4d29-924d-bd3f4b826d94\",\"name\":\"Des Moines Iowa Mount Pisgah Stake\",\"type\":4,\"civicCountryId\":null,\"civicStateId\":null,\"civicCountyId\":null,\"civicCityId\":null}],\"organizations\":[{\"id\":\"577b00aa-17b4-400c-89ab-41cadf1c6ea3\",\"endorsements\":[],\"name\":\"Blank Park Zoo\",\"url\":\"blankparkzoo\",\"location\":{\"mapId\":null,\"fullDisplayAddress\":\"7401 Southwest 9th Street Des Moines Iowa 50315-6667 United States\",\"address\":\"7401 Southwest 9th Street\",\"suite\":null,\"city\":\"Des Moines\",\"civicCityId\":\"498d77c9-5f41-4693-8d37-6fbe2106159b\",\"neighborhood\":null,\"county\":\"Polk County\",\"state\":\"Iowa\",\"postal\":\"50315-6667\",\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":41.5197844,\"longitude\":-93.6251551,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":null},\"status\":0,\"isLead\":false,\"type\":1},{\"id\":\"96f61337-2798-4150-8232-678bd17ebf5f\",\"endorsements\":[],\"name\":\"Joppa\",\"url\":\"joppa\",\"location\":{\"mapId\":null,\"fullDisplayAddress\":\"2326 Euclid Avenue Des Moines Iowa 50310 United States\",\"address\":\"2326 Euclid Avenue\",\"suite\":null,\"city\":\"Des Moines\",\"civicCityId\":\"348ea4c2-b55d-4ebc-819d-1f07df04efd9\",\"neighborhood\":null,\"county\":\"Polk County\",\"state\":\"Iowa\",\"postal\":\"50310\",\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":41.62698719999999,\"longitude\":-93.6478323,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":null},\"status\":1,\"isLead\":false,\"type\":1}],\"pendingOrganizations\":[],\"pendingProjects\":[],\"activeProjects\":[{\"id\":\"141ced24-c4cb-4c5d-b7f6-64f2dcd53808\",\"name\":\"Joppa Resource Center Volunteer\",\"projectOwners\":[{\"id\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"ownerType\":1},{\"id\":\"96f61337-2798-4150-8232-678bd17ebf5f\",\"ownerType\":2}],\"locations\":[{\"mapId\":null,\"fullDisplayAddress\":\"2326 Euclid Avenue Des Moines Iowa 50310 United States\",\"address\":\"2326 Euclid Avenue\",\"suite\":null,\"city\":\"Des Moines\",\"civicCityId\":\"348ea4c2-b55d-4ebc-819d-1f07df04efd9\",\"neighborhood\":null,\"county\":\"Polk County\",\"state\":\"Iowa\",\"postal\":\"50310\",\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":41.62698719999999,\"longitude\":-93.6478323,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":\"Central Standard Time\"}],\"status\":1,\"organization\":{\"authorization\":false,\"organizationAuthorization\":true,\"name\":\"Joppa\",\"description\":\"

    To create communities of unconditional love, support, and hope for the homeless, as we work together to prevent and ultimately end homelessness.


    Joppa collaborates with community partners, help homeless people access existing resources, and mobilize private donations from families, churches, and organizations to meet unmet needs in homeless services, housing, and education.


    How We Do It:

    Homeless Services

    Housing Development

    Education Advocacy

    \",\"url\":\"joppa\",\"internalUrl\":null,\"organizationId\":\"96f61337-2798-4150-8232-678bd17ebf5f\",\"reviewedBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"reviewedOn\":\"2024-10-06T16:29:08.7250580+00:00\",\"linked\":false,\"logo\":\"36cc3675-e053-4da7-9041-8876c4395b73.png\"},\"createdBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"cbfName\":\"Hillary\",\"cblName\":\"Nielsen\",\"startDate\":\"2024-10-06T10:00:00.0000000\",\"endDate\":\"2025-10-06T05:00:00.0000000\",\"isActive\":true,\"isUnlistedProject\":false,\"ongoing\":true,\"isDirectlyOwnedOrSponsored\":true,\"isOwnedOrRepresentedViaOrganization\":false,\"volunteersNeeded\":0,\"volunteersAcquired\":0,\"projectOwnerName\":\"Jennifer Hale\",\"projectOwnerUserId\":\"6a1b0bce-27be-4985-b221-a96c5612473c\"},{\"id\":\"41cbc2c8-1484-416b-8278-52701238f294\",\"name\":\"Joppa Second Saturday Work Days\",\"projectOwners\":[{\"id\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"ownerType\":1},{\"id\":\"96f61337-2798-4150-8232-678bd17ebf5f\",\"ownerType\":2}],\"locations\":[{\"mapId\":null,\"fullDisplayAddress\":\"2326 Euclid Avenue Des Moines Iowa 50310 United States\",\"address\":\"2326 Euclid Avenue\",\"suite\":null,\"city\":\"Des Moines\",\"civicCityId\":\"348ea4c2-b55d-4ebc-819d-1f07df04efd9\",\"neighborhood\":null,\"county\":\"Polk County\",\"state\":\"Iowa\",\"postal\":\"50310\",\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":41.62698719999999,\"longitude\":-93.6478323,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":\"Central Standard Time\"}],\"status\":1,\"organization\":{\"authorization\":false,\"organizationAuthorization\":true,\"name\":\"Joppa\",\"description\":\"

    To create communities of unconditional love, support, and hope for the homeless, as we work together to prevent and ultimately end homelessness.


    Joppa collaborates with community partners, help homeless people access existing resources, and mobilize private donations from families, churches, and organizations to meet unmet needs in homeless services, housing, and education.


    How We Do It:

    Homeless Services

    Housing Development

    Education Advocacy

    \",\"url\":\"joppa\",\"internalUrl\":null,\"organizationId\":\"96f61337-2798-4150-8232-678bd17ebf5f\",\"reviewedBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"reviewedOn\":\"2024-10-06T16:14:10.8706590+00:00\",\"linked\":false,\"logo\":\"36cc3675-e053-4da7-9041-8876c4395b73.png\"},\"createdBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"cbfName\":\"Hillary\",\"cblName\":\"Nielsen\",\"startDate\":\"2024-10-06T10:00:00.0000000\",\"endDate\":\"2025-10-06T05:00:00.0000000\",\"isActive\":true,\"isUnlistedProject\":false,\"ongoing\":true,\"isDirectlyOwnedOrSponsored\":true,\"isOwnedOrRepresentedViaOrganization\":false,\"volunteersNeeded\":0,\"volunteersAcquired\":0,\"projectOwnerName\":\"Jennifer Hale\",\"projectOwnerUserId\":\"6a1b0bce-27be-4985-b221-a96c5612473c\"}],\"historicalProjects\":[{\"id\":\"799cd210-b216-47d1-9748-2bb2f55e96e6\",\"name\":\"Volunteer from Home: Food Bank of Iowa DIY T-Shirt Tote Bags\",\"projectOwners\":[{\"id\":\"6345bdb5-8730-476a-8bc0-f53e249e613e\",\"ownerType\":2},{\"id\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"ownerType\":1}],\"locations\":[{\"mapId\":null,\"fullDisplayAddress\":\"2220 East 17th Street Des Moines Iowa 50316-2114 United States\",\"address\":\"2220 East 17th Street\",\"suite\":null,\"city\":\"Des Moines\",\"civicCityId\":\"348ea4c2-b55d-4ebc-819d-1f07df04efd9\",\"neighborhood\":null,\"county\":\"Polk County\",\"state\":\"Iowa\",\"postal\":\"50316-2114\",\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":41.6142723,\"longitude\":-93.592185,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":\"Central Standard Time\"}],\"status\":1,\"organization\":{\"authorization\":false,\"organizationAuthorization\":true,\"name\":\"Food Bank of Iowa\",\"description\":\"Iowa Food Bank acquires food from various donors, retailers, producers, and government programs, etc. to distribute through a network of about 500 partner agencies (pantries, shelters, schools, and others) to serve Iowans in need. These partnerships result in the distribution of 10 million meals per year.\\n\\nVolunteers are needed during the COVID-19 crisis. Please see opportunities below.\",\"url\":\"foodbankofiowa\",\"internalUrl\":null,\"organizationId\":\"6345bdb5-8730-476a-8bc0-f53e249e613e\",\"reviewedBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"reviewedOn\":\"2024-09-06T20:27:57.0038420+00:00\",\"linked\":false,\"logo\":\"7ade9d3f-0991-466a-823b-9761308f3242.png\"},\"createdBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"cbfName\":\"Hillary\",\"cblName\":\"Nielsen\",\"startDate\":\"2024-09-06T05:00:00.0000000\",\"endDate\":\"2025-09-06T05:00:00.0000000\",\"isActive\":false,\"isUnlistedProject\":false,\"ongoing\":true,\"isDirectlyOwnedOrSponsored\":true,\"isOwnedOrRepresentedViaOrganization\":false,\"volunteersNeeded\":0,\"volunteersAcquired\":0,\"projectOwnerName\":\"Jennifer Hale\",\"projectOwnerUserId\":\"6345bdb5-8730-476a-8bc0-f53e249e613e\"},{\"id\":\"8eab3695-c6f7-41bf-87e6-fd78612e4c05\",\"name\":\"Food Bank of Iowa Skills-Based Volunteering\",\"projectOwners\":[{\"id\":\"6345bdb5-8730-476a-8bc0-f53e249e613e\",\"ownerType\":2},{\"id\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"ownerType\":1}],\"locations\":[{\"mapId\":null,\"fullDisplayAddress\":\"2220 East 17th Street Des Moines Iowa 50316-2114 United States\",\"address\":\"2220 East 17th Street\",\"suite\":null,\"city\":\"Des Moines\",\"civicCityId\":\"348ea4c2-b55d-4ebc-819d-1f07df04efd9\",\"neighborhood\":null,\"county\":\"Polk County\",\"state\":\"Iowa\",\"postal\":\"50316-2114\",\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":41.6144081,\"longitude\":-93.5923699,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":\"Central Standard Time\"}],\"status\":1,\"organization\":{\"authorization\":false,\"organizationAuthorization\":true,\"name\":\"Food Bank of Iowa\",\"description\":\"Iowa Food Bank acquires food from various donors, retailers, producers, and government programs, etc. to distribute through a network of about 500 partner agencies (pantries, shelters, schools, and others) to serve Iowans in need. These partnerships result in the distribution of 10 million meals per year.\\n\\nVolunteers are needed during the COVID-19 crisis. Please see opportunities below.\",\"url\":\"foodbankofiowa\",\"internalUrl\":null,\"organizationId\":\"6345bdb5-8730-476a-8bc0-f53e249e613e\",\"reviewedBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"reviewedOn\":\"2024-09-06T20:26:45.5955450+00:00\",\"linked\":false,\"logo\":\"7ade9d3f-0991-466a-823b-9761308f3242.png\"},\"createdBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"cbfName\":\"Hillary\",\"cblName\":\"Nielsen\",\"startDate\":\"2024-09-06T05:00:00.0000000\",\"endDate\":\"2025-09-06T05:00:00.0000000\",\"isActive\":false,\"isUnlistedProject\":false,\"ongoing\":true,\"isDirectlyOwnedOrSponsored\":true,\"isOwnedOrRepresentedViaOrganization\":false,\"volunteersNeeded\":0,\"volunteersAcquired\":0,\"projectOwnerName\":\"Jennifer Hale\",\"projectOwnerUserId\":\"6345bdb5-8730-476a-8bc0-f53e249e613e\"},{\"id\":\"cf02957e-37df-4b05-a434-8f6b9c815c36\",\"name\":\"Food Bank of Iowa Food Sorting\",\"projectOwners\":[{\"id\":\"6345bdb5-8730-476a-8bc0-f53e249e613e\",\"ownerType\":2},{\"id\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"ownerType\":1}],\"locations\":[{\"mapId\":null,\"fullDisplayAddress\":\"2220 East 17th Street Des Moines Iowa 50316-2114 United States\",\"address\":\"2220 East 17th Street\",\"suite\":null,\"city\":\"Des Moines\",\"civicCityId\":\"348ea4c2-b55d-4ebc-819d-1f07df04efd9\",\"neighborhood\":null,\"county\":\"Polk County\",\"state\":\"Iowa\",\"postal\":\"50316-2114\",\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":41.6144081,\"longitude\":-93.5923699,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":\"Central Standard Time\"}],\"status\":1,\"organization\":{\"authorization\":false,\"organizationAuthorization\":true,\"name\":\"Food Bank of Iowa\",\"description\":\"Iowa Food Bank acquires food from various donors, retailers, producers, and government programs, etc. to distribute through a network of about 500 partner agencies (pantries, shelters, schools, and others) to serve Iowans in need. These partnerships result in the distribution of 10 million meals per year.\\n\\nVolunteers are needed during the COVID-19 crisis. Please see opportunities below.\",\"url\":\"foodbankofiowa\",\"internalUrl\":null,\"organizationId\":\"6345bdb5-8730-476a-8bc0-f53e249e613e\",\"reviewedBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"reviewedOn\":\"2024-09-06T20:25:31.9604970+00:00\",\"linked\":false,\"logo\":\"7ade9d3f-0991-466a-823b-9761308f3242.png\"},\"createdBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"cbfName\":\"Hillary\",\"cblName\":\"Nielsen\",\"startDate\":\"2024-09-06T05:00:00.0000000\",\"endDate\":\"2025-09-06T05:00:00.0000000\",\"isActive\":false,\"isUnlistedProject\":false,\"ongoing\":true,\"isDirectlyOwnedOrSponsored\":true,\"isOwnedOrRepresentedViaOrganization\":false,\"volunteersNeeded\":0,\"volunteersAcquired\":0,\"projectOwnerName\":\"Jennifer Hale\",\"projectOwnerUserId\":\"6345bdb5-8730-476a-8bc0-f53e249e613e\"},{\"id\":\"de319b64-f8f5-44ca-94f4-30de42d75b49\",\"name\":\"Volunteer from Home: Food Bank of Iowa BackPack Program Inspiration Cards\",\"projectOwners\":[{\"id\":\"6345bdb5-8730-476a-8bc0-f53e249e613e\",\"ownerType\":2},{\"id\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"ownerType\":1}],\"locations\":[{\"mapId\":null,\"fullDisplayAddress\":\"2220 East 17th Street Des Moines Iowa 50316-2114 United States\",\"address\":\"2220 East 17th Street\",\"suite\":null,\"city\":\"Des Moines\",\"civicCityId\":\"348ea4c2-b55d-4ebc-819d-1f07df04efd9\",\"neighborhood\":null,\"county\":\"Polk County\",\"state\":\"Iowa\",\"postal\":\"50316-2114\",\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":41.6142723,\"longitude\":-93.592185,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":\"Central Standard Time\"}],\"status\":1,\"organization\":{\"authorization\":false,\"organizationAuthorization\":true,\"name\":\"Food Bank of Iowa\",\"description\":\"Iowa Food Bank acquires food from various donors, retailers, producers, and government programs, etc. to distribute through a network of about 500 partner agencies (pantries, shelters, schools, and others) to serve Iowans in need. These partnerships result in the distribution of 10 million meals per year.\\n\\nVolunteers are needed during the COVID-19 crisis. Please see opportunities below.\",\"url\":\"foodbankofiowa\",\"internalUrl\":null,\"organizationId\":\"6345bdb5-8730-476a-8bc0-f53e249e613e\",\"reviewedBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"reviewedOn\":\"2024-09-06T20:24:15.6421430+00:00\",\"linked\":false,\"logo\":\"7ade9d3f-0991-466a-823b-9761308f3242.png\"},\"createdBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"cbfName\":\"Hillary\",\"cblName\":\"Nielsen\",\"startDate\":\"2024-09-06T05:00:00.0000000\",\"endDate\":\"2025-09-06T05:00:00.0000000\",\"isActive\":false,\"isUnlistedProject\":false,\"ongoing\":true,\"isDirectlyOwnedOrSponsored\":true,\"isOwnedOrRepresentedViaOrganization\":false,\"volunteersNeeded\":0,\"volunteersAcquired\":0,\"projectOwnerName\":\"Jennifer Hale\",\"projectOwnerUserId\":\"6345bdb5-8730-476a-8bc0-f53e249e613e\"},{\"id\":\"103fbc43-bf4d-45ac-8307-69d7aaa2aa08\",\"name\":\"Greater Des Moines Habitat For Humanity- Construction Volunteer\",\"projectOwners\":[{\"id\":\"14076712-c8a6-4702-ab5b-fcdab9d2b000\",\"ownerType\":2},{\"id\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"ownerType\":1}],\"locations\":[{\"mapId\":null,\"fullDisplayAddress\":\"2200 East Euclid Avenue Des Moines Iowa 50317-3607 United States\",\"address\":\"2200 East Euclid Avenue\",\"suite\":null,\"city\":\"Des Moines\",\"civicCityId\":\"348ea4c2-b55d-4ebc-819d-1f07df04efd9\",\"neighborhood\":null,\"county\":\"Polk County\",\"state\":\"Iowa\",\"postal\":\"50317-3607\",\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":41.628495,\"longitude\":-93.578398,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":\"Central Standard Time\"}],\"status\":1,\"organization\":{\"authorization\":false,\"organizationAuthorization\":true,\"name\":\"Greater Des Moines Habitat For Humanity\",\"description\":\"Our Mission: Seeking to put God's love into action, Habitat for Humanity brings people together to build homes, communities, and hope.\",\"url\":\"greaterdesmoineshabitatforhumanity\",\"internalUrl\":null,\"organizationId\":\"14076712-c8a6-4702-ab5b-fcdab9d2b000\",\"reviewedBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"reviewedOn\":\"2024-09-06T00:18:26.9984680+00:00\",\"linked\":false,\"logo\":\"728cb415-0585-4d51-9c47-19463a119c9f.png\"},\"createdBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"cbfName\":\"Hillary\",\"cblName\":\"Nielsen\",\"startDate\":\"2024-09-05T05:00:00.0000000\",\"endDate\":\"2025-09-05T05:00:00.0000000\",\"isActive\":false,\"isUnlistedProject\":false,\"ongoing\":true,\"isDirectlyOwnedOrSponsored\":true,\"isOwnedOrRepresentedViaOrganization\":false,\"volunteersNeeded\":0,\"volunteersAcquired\":0,\"projectOwnerName\":\"Jennifer Hale\",\"projectOwnerUserId\":\"14076712-c8a6-4702-ab5b-fcdab9d2b000\"},{\"id\":\"21d67d6b-ede6-4592-9dc8-6ad8b6c5ba5b\",\"name\":\"United Nations: Online Volunteering\",\"projectOwners\":[{\"id\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"ownerType\":1}],\"locations\":[{\"mapId\":null,\"fullDisplayAddress\":\"United States\",\"address\":null,\"suite\":null,\"city\":\"\",\"civicCityId\":null,\"neighborhood\":null,\"county\":null,\"state\":null,\"postal\":null,\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":0.0,\"longitude\":0.0,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":null}],\"status\":1,\"organization\":null,\"createdBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"cbfName\":\"Hillary\",\"cblName\":\"Nielsen\",\"startDate\":\"2024-09-05T05:00:00.0000000\",\"endDate\":\"2025-09-05T05:00:00.0000000\",\"isActive\":false,\"isUnlistedProject\":false,\"ongoing\":true,\"isDirectlyOwnedOrSponsored\":true,\"isOwnedOrRepresentedViaOrganization\":false,\"volunteersNeeded\":0,\"volunteersAcquired\":0,\"projectOwnerName\":\"Jennifer Hale\",\"projectOwnerUserId\":\"6a1b0bce-27be-4985-b221-a96c5612473c\"},{\"id\":\"32352b4a-1f84-4c4e-9b06-a24080cf91a5\",\"name\":\"Be My Eyes\",\"projectOwners\":[{\"id\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"ownerType\":1}],\"locations\":[{\"mapId\":null,\"fullDisplayAddress\":\"United States\",\"address\":null,\"suite\":null,\"city\":\"\",\"civicCityId\":null,\"neighborhood\":null,\"county\":null,\"state\":null,\"postal\":null,\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":0.0,\"longitude\":0.0,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":null}],\"status\":1,\"organization\":null,\"createdBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"cbfName\":\"Hillary\",\"cblName\":\"Nielsen\",\"startDate\":\"2024-09-05T05:00:00.0000000\",\"endDate\":\"2025-09-05T05:00:00.0000000\",\"isActive\":false,\"isUnlistedProject\":false,\"ongoing\":true,\"isDirectlyOwnedOrSponsored\":true,\"isOwnedOrRepresentedViaOrganization\":false,\"volunteersNeeded\":0,\"volunteersAcquired\":0,\"projectOwnerName\":\"Jennifer Hale\",\"projectOwnerUserId\":\"6a1b0bce-27be-4985-b221-a96c5612473c\"},{\"id\":\"9f1fe203-b3a8-460c-8699-cb96b58a3d54\",\"name\":\"Smithsonian Digital Volunteers\",\"projectOwners\":[{\"id\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"ownerType\":1}],\"locations\":[{\"mapId\":null,\"fullDisplayAddress\":\"United States\",\"address\":null,\"suite\":null,\"city\":\"\",\"civicCityId\":null,\"neighborhood\":null,\"county\":null,\"state\":null,\"postal\":null,\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":0.0,\"longitude\":0.0,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":null}],\"status\":1,\"organization\":null,\"createdBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"cbfName\":\"Hillary\",\"cblName\":\"Nielsen\",\"startDate\":\"2024-09-05T05:00:00.0000000\",\"endDate\":\"2025-09-05T05:00:00.0000000\",\"isActive\":false,\"isUnlistedProject\":false,\"ongoing\":true,\"isDirectlyOwnedOrSponsored\":true,\"isOwnedOrRepresentedViaOrganization\":false,\"volunteersNeeded\":0,\"volunteersAcquired\":0,\"projectOwnerName\":\"Jennifer Hale\",\"projectOwnerUserId\":\"6a1b0bce-27be-4985-b221-a96c5612473c\"},{\"id\":\"ae714f2b-e1d7-4296-a5f8-b2e152544d81\",\"name\":\"Many Hands Thrift Market Volunteer\",\"projectOwners\":[{\"id\":\"242a580a-db94-43a5-81ab-452f7e074d07\",\"ownerType\":2},{\"id\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"ownerType\":1}],\"locations\":null,\"status\":1,\"organization\":{\"authorization\":false,\"organizationAuthorization\":true,\"name\":\"Many Hands Thrift Market\",\"description\":\"Many Hands for Haiti is a non-profit organization based out of Pella, IA. We currently have a campus in Pignon, Haiti where we run programs for Education, Agronomy and Feeding, Leadership Development, Safe Homes and Medical Assistance.\\n\\nOur approach is an inch wide and mile deep. We focus on a specific area and go deep into the community to transform the path of poverty.\",\"url\":\"manyhandsthriftmarket\",\"internalUrl\":null,\"organizationId\":\"242a580a-db94-43a5-81ab-452f7e074d07\",\"reviewedBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"reviewedOn\":\"2024-09-06T00:00:29.2050070+00:00\",\"linked\":false,\"logo\":\"d10f82a3-2ba5-4ef6-a0a3-fd695b0e628c.png\"},\"createdBy\":\"9042ebe1-070f-4c95-82eb-79bc9362bc9f\",\"cbfName\":\"Emily\",\"cblName\":\"Van Gent\",\"startDate\":\"2024-09-05T05:00:00.0000000\",\"endDate\":\"2025-09-05T05:00:00.0000000\",\"isActive\":false,\"isUnlistedProject\":false,\"ongoing\":true,\"isDirectlyOwnedOrSponsored\":true,\"isOwnedOrRepresentedViaOrganization\":false,\"volunteersNeeded\":0,\"volunteersAcquired\":0,\"projectOwnerName\":\"Jennifer Hale\",\"projectOwnerUserId\":\"242a580a-db94-43a5-81ab-452f7e074d07\"},{\"id\":\"e1b13000-ea38-4276-add6-c658f41d8552\",\"name\":\"Greater Des Moines Habitat For Humanity- Core Crew Volunteer\",\"projectOwners\":[{\"id\":\"14076712-c8a6-4702-ab5b-fcdab9d2b000\",\"ownerType\":2},{\"id\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"ownerType\":1}],\"locations\":[{\"mapId\":null,\"fullDisplayAddress\":\"2200 East Euclid Avenue Des Moines Iowa 50317 United States\",\"address\":\"2200 East Euclid Avenue\",\"suite\":null,\"city\":\"Des Moines\",\"civicCityId\":\"348ea4c2-b55d-4ebc-819d-1f07df04efd9\",\"neighborhood\":null,\"county\":\"Polk County\",\"state\":\"Iowa\",\"postal\":\"50317\",\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":41.6285015,\"longitude\":-93.5783894,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":\"Central Standard Time\"}],\"status\":1,\"organization\":{\"authorization\":false,\"organizationAuthorization\":true,\"name\":\"Greater Des Moines Habitat For Humanity\",\"description\":\"Our Mission: Seeking to put God's love into action, Habitat for Humanity brings people together to build homes, communities, and hope.\",\"url\":\"greaterdesmoineshabitatforhumanity\",\"internalUrl\":null,\"organizationId\":\"14076712-c8a6-4702-ab5b-fcdab9d2b000\",\"reviewedBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"reviewedOn\":\"2024-09-06T00:15:47.8386230+00:00\",\"linked\":false,\"logo\":\"728cb415-0585-4d51-9c47-19463a119c9f.png\"},\"createdBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"cbfName\":\"Hillary\",\"cblName\":\"Nielsen\",\"startDate\":\"2024-09-05T05:00:00.0000000\",\"endDate\":\"2025-09-05T05:00:00.0000000\",\"isActive\":false,\"isUnlistedProject\":false,\"ongoing\":true,\"isDirectlyOwnedOrSponsored\":true,\"isOwnedOrRepresentedViaOrganization\":false,\"volunteersNeeded\":0,\"volunteersAcquired\":0,\"projectOwnerName\":\"Jennifer Hale\",\"projectOwnerUserId\":\"14076712-c8a6-4702-ab5b-fcdab9d2b000\"},{\"id\":\"e1f2dd3d-1338-4133-a903-7c28f8e52c83\",\"name\":\"Operation Gratitude - Write letters or make care package items to be sent to Deployed Troops and First Responders\",\"projectOwners\":[{\"id\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"ownerType\":1}],\"locations\":[{\"mapId\":null,\"fullDisplayAddress\":\"United States\",\"address\":null,\"suite\":null,\"city\":\"\",\"civicCityId\":null,\"neighborhood\":null,\"county\":null,\"state\":null,\"postal\":null,\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":0.0,\"longitude\":0.0,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":null}],\"status\":1,\"organization\":null,\"createdBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"cbfName\":\"Hillary\",\"cblName\":\"Nielsen\",\"startDate\":\"2024-09-05T05:00:00.0000000\",\"endDate\":\"2025-09-05T05:00:00.0000000\",\"isActive\":false,\"isUnlistedProject\":false,\"ongoing\":true,\"isDirectlyOwnedOrSponsored\":true,\"isOwnedOrRepresentedViaOrganization\":false,\"volunteersNeeded\":0,\"volunteersAcquired\":0,\"projectOwnerName\":\"Jennifer Hale\",\"projectOwnerUserId\":\"6a1b0bce-27be-4985-b221-a96c5612473c\"},{\"id\":\"ee4815bd-4305-4d25-81e3-5988df0de62c\",\"name\":\"Greater Des Moines Habitat For Humanity- ReStore Volunteer\",\"projectOwners\":[{\"id\":\"14076712-c8a6-4702-ab5b-fcdab9d2b000\",\"ownerType\":2},{\"id\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"ownerType\":1}],\"locations\":null,\"status\":1,\"organization\":{\"authorization\":false,\"organizationAuthorization\":true,\"name\":\"Greater Des Moines Habitat For Humanity\",\"description\":\"Our Mission: Seeking to put God's love into action, Habitat for Humanity brings people together to build homes, communities, and hope.\",\"url\":\"greaterdesmoineshabitatforhumanity\",\"internalUrl\":null,\"organizationId\":\"14076712-c8a6-4702-ab5b-fcdab9d2b000\",\"reviewedBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"reviewedOn\":\"2024-09-06T00:19:17.4192780+00:00\",\"linked\":false,\"logo\":\"728cb415-0585-4d51-9c47-19463a119c9f.png\"},\"createdBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"cbfName\":\"Hillary\",\"cblName\":\"Nielsen\",\"startDate\":\"2024-09-05T05:00:00.0000000\",\"endDate\":\"2025-09-05T05:00:00.0000000\",\"isActive\":false,\"isUnlistedProject\":false,\"ongoing\":true,\"isDirectlyOwnedOrSponsored\":true,\"isOwnedOrRepresentedViaOrganization\":false,\"volunteersNeeded\":0,\"volunteersAcquired\":0,\"projectOwnerName\":\"Jennifer Hale\",\"projectOwnerUserId\":\"14076712-c8a6-4702-ab5b-fcdab9d2b000\"},{\"id\":\"fac57724-65f2-4dd5-82f7-e01217638912\",\"name\":\"Greater Des Moines Habitat For Humanity- Home Repair Volunteer (Rock the Block)\",\"projectOwners\":[{\"id\":\"14076712-c8a6-4702-ab5b-fcdab9d2b000\",\"ownerType\":2},{\"id\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"ownerType\":1}],\"locations\":[{\"mapId\":null,\"fullDisplayAddress\":\"2200 East Euclid Avenue Des Moines Iowa 50317-3607 United States\",\"address\":\"2200 East Euclid Avenue\",\"suite\":null,\"city\":\"Des Moines\",\"civicCityId\":\"348ea4c2-b55d-4ebc-819d-1f07df04efd9\",\"neighborhood\":null,\"county\":\"Polk County\",\"state\":\"Iowa\",\"postal\":\"50317-3607\",\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":41.628495,\"longitude\":-93.578398,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":\"Central Standard Time\"}],\"status\":1,\"organization\":{\"authorization\":false,\"organizationAuthorization\":true,\"name\":\"Greater Des Moines Habitat For Humanity\",\"description\":\"Our Mission: Seeking to put God's love into action, Habitat for Humanity brings people together to build homes, communities, and hope.\",\"url\":\"greaterdesmoineshabitatforhumanity\",\"internalUrl\":null,\"organizationId\":\"14076712-c8a6-4702-ab5b-fcdab9d2b000\",\"reviewedBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"reviewedOn\":\"2024-09-06T00:16:51.6321710+00:00\",\"linked\":false,\"logo\":\"728cb415-0585-4d51-9c47-19463a119c9f.png\"},\"createdBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"cbfName\":\"Hillary\",\"cblName\":\"Nielsen\",\"startDate\":\"2024-09-05T05:00:00.0000000\",\"endDate\":\"2025-09-05T05:00:00.0000000\",\"isActive\":false,\"isUnlistedProject\":false,\"ongoing\":true,\"isDirectlyOwnedOrSponsored\":true,\"isOwnedOrRepresentedViaOrganization\":false,\"volunteersNeeded\":0,\"volunteersAcquired\":0,\"projectOwnerName\":\"Jennifer Hale\",\"projectOwnerUserId\":\"14076712-c8a6-4702-ab5b-fcdab9d2b000\"},{\"id\":\"a37f3b76-3f95-4b0b-ab79-081d108ba7f1\",\"name\":\"Light the World- Baby Kits for Refugees\",\"projectOwners\":[{\"id\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"ownerType\":1}],\"locations\":[{\"mapId\":null,\"fullDisplayAddress\":\"400 Southeast Pleasant View Drive Waukee Iowa 50263 United States\",\"address\":\"400 Southeast Pleasant View Drive\",\"suite\":null,\"city\":\"Waukee\",\"civicCityId\":\"cca7ce9b-ebfc-4981-add3-f6ddd1de02ed\",\"neighborhood\":null,\"county\":\"Dallas County\",\"state\":\"Iowa\",\"postal\":\"50263\",\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":41.5934003,\"longitude\":-93.8654998,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":\"Central Standard Time\"},{\"mapId\":null,\"fullDisplayAddress\":\"400 Southeast Pleasant View Drive Waukee Iowa 50263 United States\",\"address\":\"400 Southeast Pleasant View Drive\",\"suite\":null,\"city\":\"Waukee\",\"civicCityId\":\"cca7ce9b-ebfc-4981-add3-f6ddd1de02ed\",\"neighborhood\":null,\"county\":\"Dallas County\",\"state\":\"Iowa\",\"postal\":\"50263\",\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":41.5934003,\"longitude\":-93.8654998,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":\"Central Standard Time\"}],\"status\":1,\"organization\":null,\"createdBy\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"cbfName\":\"Jennifer\",\"cblName\":\"Hale\",\"startDate\":\"2024-11-26T04:44:43.3860000\",\"endDate\":\"2024-12-15T08:00:00.0000000\",\"isActive\":false,\"isUnlistedProject\":false,\"ongoing\":true,\"isDirectlyOwnedOrSponsored\":true,\"isOwnedOrRepresentedViaOrganization\":false,\"volunteersNeeded\":0,\"volunteersAcquired\":0,\"projectOwnerName\":\"Jennifer Hale\",\"projectOwnerUserId\":\"6a1b0bce-27be-4985-b221-a96c5612473c\"},{\"id\":\"8f23c27b-761c-462e-a234-b72fca3a0fac\",\"name\":\"Coat Drive Benefiting LSI (Lutheran Services of Iowa)\",\"projectOwners\":[{\"id\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"ownerType\":1}],\"locations\":[{\"mapId\":null,\"fullDisplayAddress\":\"400 Southeast Pleasant View Drive Waukee Iowa 50263 United States\",\"address\":\"400 Southeast Pleasant View Drive\",\"suite\":null,\"city\":\"Waukee\",\"civicCityId\":\"cca7ce9b-ebfc-4981-add3-f6ddd1de02ed\",\"neighborhood\":null,\"county\":\"Dallas County\",\"state\":\"Iowa\",\"postal\":\"50263\",\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":41.5934003,\"longitude\":-93.8654998,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":\"Central Standard Time\"}],\"status\":1,\"organization\":null,\"createdBy\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"cbfName\":\"Jennifer\",\"cblName\":\"Hale\",\"startDate\":\"2024-10-04T07:40:48.3180000\",\"endDate\":\"2024-10-31T15:00:00.0000000\",\"isActive\":false,\"isUnlistedProject\":false,\"ongoing\":true,\"isDirectlyOwnedOrSponsored\":true,\"isOwnedOrRepresentedViaOrganization\":false,\"volunteersNeeded\":0,\"volunteersAcquired\":0,\"projectOwnerName\":\"Jennifer Hale\",\"projectOwnerUserId\":\"6a1b0bce-27be-4985-b221-a96c5612473c\"},{\"id\":\"e2803d1e-7603-44c3-aee1-1da535043326\",\"name\":\"IRC Welcome Kits\",\"projectOwners\":[{\"id\":\"0f0d1121-db98-4253-992b-a84744beca0b\",\"ownerType\":2},{\"id\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"ownerType\":1}],\"locations\":[{\"mapId\":null,\"fullDisplayAddress\":\"108 Southwest 3rd Street Des Moines Iowa 50309 United States\",\"address\":\"108 Southwest 3rd Street\",\"suite\":null,\"city\":\"Des Moines\",\"civicCityId\":\"348ea4c2-b55d-4ebc-819d-1f07df04efd9\",\"neighborhood\":null,\"county\":\"Polk County\",\"state\":\"Iowa\",\"postal\":\"50309\",\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":41.584199,\"longitude\":-93.6202491,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":\"Central Standard Time\"}],\"status\":1,\"organization\":{\"authorization\":false,\"organizationAuthorization\":true,\"name\":\"International Rescue Committee Des Moines, Iowa\",\"description\":\"

    The International Rescue Committee provides opportunities for refugees, asylees, victims of human trafficking, survivors of torture, and other immigrants to thrive in America. Each year, thousands of people, forced to flee violence and persecution, are welcomed by the people of the United States into the safety and freedom of America. These individuals have survived against incredible odds. The IRC works with government bodies, civil society actors, and local volunteers to help them translate their past experiences into assets that are valuable to their new communities. In Des Moines and other offices across the country, the IRC helps them to rebuild their lives.

    \",\"url\":\"internationalrescuecommitteedesmoinesiowa\",\"internalUrl\":null,\"organizationId\":\"0f0d1121-db98-4253-992b-a84744beca0b\",\"reviewedBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"reviewedOn\":\"2023-10-19T14:46:58.9417540+00:00\",\"linked\":false,\"logo\":\"7923bce4-fd63-46e0-affb-0f6211855f1e.png\"},\"createdBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"cbfName\":\"Hillary\",\"cblName\":\"Nielsen\",\"startDate\":\"2023-10-19T00:00:00.0000000\",\"endDate\":\"2024-10-20T23:59:59.0000000\",\"isActive\":false,\"isUnlistedProject\":false,\"ongoing\":true,\"isDirectlyOwnedOrSponsored\":true,\"isOwnedOrRepresentedViaOrganization\":false,\"volunteersNeeded\":0,\"volunteersAcquired\":0,\"projectOwnerName\":\"Jennifer Hale\",\"projectOwnerUserId\":\"0f0d1121-db98-4253-992b-a84744beca0b\"},{\"id\":\"fc3dd5e1-b3dd-4853-98ca-260a4206c213\",\"name\":\"IRC Housing Set Up Volunteers\",\"projectOwners\":[{\"id\":\"0f0d1121-db98-4253-992b-a84744beca0b\",\"ownerType\":2},{\"id\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"ownerType\":1}],\"locations\":[{\"mapId\":null,\"fullDisplayAddress\":\"108 Southwest 3rd Street Des Moines Iowa 50309 United States\",\"address\":\"108 Southwest 3rd Street\",\"suite\":null,\"city\":\"Des Moines\",\"civicCityId\":\"348ea4c2-b55d-4ebc-819d-1f07df04efd9\",\"neighborhood\":null,\"county\":\"Polk County\",\"state\":\"Iowa\",\"postal\":\"50309\",\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":41.584199,\"longitude\":-93.6202491,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":\"Central Standard Time\"}],\"status\":1,\"organization\":{\"authorization\":false,\"organizationAuthorization\":true,\"name\":\"International Rescue Committee Des Moines, Iowa\",\"description\":\"

    The International Rescue Committee provides opportunities for refugees, asylees, victims of human trafficking, survivors of torture, and other immigrants to thrive in America. Each year, thousands of people, forced to flee violence and persecution, are welcomed by the people of the United States into the safety and freedom of America. These individuals have survived against incredible odds. The IRC works with government bodies, civil society actors, and local volunteers to help them translate their past experiences into assets that are valuable to their new communities. In Des Moines and other offices across the country, the IRC helps them to rebuild their lives.

    \",\"url\":\"internationalrescuecommitteedesmoinesiowa\",\"internalUrl\":null,\"organizationId\":\"0f0d1121-db98-4253-992b-a84744beca0b\",\"reviewedBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"reviewedOn\":\"2023-10-19T13:50:41.6929150+00:00\",\"linked\":false,\"logo\":\"7923bce4-fd63-46e0-affb-0f6211855f1e.png\"},\"createdBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"cbfName\":\"Hillary\",\"cblName\":\"Nielsen\",\"startDate\":\"2023-10-19T00:00:00.0000000\",\"endDate\":\"2024-10-20T23:59:59.0000000\",\"isActive\":false,\"isUnlistedProject\":false,\"ongoing\":true,\"isDirectlyOwnedOrSponsored\":true,\"isOwnedOrRepresentedViaOrganization\":false,\"volunteersNeeded\":0,\"volunteersAcquired\":0,\"projectOwnerName\":\"Jennifer Hale\",\"projectOwnerUserId\":\"0f0d1121-db98-4253-992b-a84744beca0b\"},{\"id\":\"bf4917c8-8ca3-4208-92fe-cb42d10a6778\",\"name\":\"IRC Hygiene & Cleaning Supplies\",\"projectOwners\":[{\"id\":\"0f0d1121-db98-4253-992b-a84744beca0b\",\"ownerType\":2},{\"id\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"ownerType\":1}],\"locations\":[{\"mapId\":null,\"fullDisplayAddress\":\"108 Southwest 3rd Street Des Moines Iowa 50309 United States\",\"address\":\"108 Southwest 3rd Street\",\"suite\":null,\"city\":\"Des Moines\",\"civicCityId\":\"348ea4c2-b55d-4ebc-819d-1f07df04efd9\",\"neighborhood\":null,\"county\":\"Polk County\",\"state\":\"Iowa\",\"postal\":\"50309\",\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":41.584199,\"longitude\":-93.6202491,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":\"Central Standard Time\"}],\"status\":1,\"organization\":{\"authorization\":false,\"organizationAuthorization\":true,\"name\":\"International Rescue Committee Des Moines, Iowa\",\"description\":\"

    The International Rescue Committee provides opportunities for refugees, asylees, victims of human trafficking, survivors of torture, and other immigrants to thrive in America. Each year, thousands of people, forced to flee violence and persecution, are welcomed by the people of the United States into the safety and freedom of America. These individuals have survived against incredible odds. The IRC works with government bodies, civil society actors, and local volunteers to help them translate their past experiences into assets that are valuable to their new communities. In Des Moines and other offices across the country, the IRC helps them to rebuild their lives.

    \",\"url\":\"internationalrescuecommitteedesmoinesiowa\",\"internalUrl\":null,\"organizationId\":\"0f0d1121-db98-4253-992b-a84744beca0b\",\"reviewedBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"reviewedOn\":\"2023-10-19T14:40:10.9242700+00:00\",\"linked\":false,\"logo\":\"7923bce4-fd63-46e0-affb-0f6211855f1e.png\"},\"createdBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"cbfName\":\"Hillary\",\"cblName\":\"Nielsen\",\"startDate\":\"2023-10-19T00:00:00.0000000\",\"endDate\":\"2024-10-19T23:59:59.0000000\",\"isActive\":false,\"isUnlistedProject\":false,\"ongoing\":true,\"isDirectlyOwnedOrSponsored\":true,\"isOwnedOrRepresentedViaOrganization\":false,\"volunteersNeeded\":0,\"volunteersAcquired\":0,\"projectOwnerName\":\"Jennifer Hale\",\"projectOwnerUserId\":\"0f0d1121-db98-4253-992b-a84744beca0b\"},{\"id\":\"37b5a4ad-bfa3-4830-8926-1931f0b44730\",\"name\":\"Sporting Clay Fundraising Event\",\"projectOwners\":[{\"id\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"ownerType\":1}],\"locations\":[{\"mapId\":null,\"fullDisplayAddress\":\"31454 312th Place Waukee Iowa 50263 United States\",\"address\":\"31454 312th Place\",\"suite\":null,\"city\":\"Waukee\",\"civicCityId\":\"cca7ce9b-ebfc-4981-add3-f6ddd1de02ed\",\"neighborhood\":null,\"county\":\"Dallas County\",\"state\":\"Iowa\",\"postal\":\"50263\",\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":41.5826,\"longitude\":-93.873471,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":\"Central Standard Time\"}],\"status\":1,\"organization\":null,\"createdBy\":\"d2c0ff95-7c67-4343-95c5-6b5296c4226e\",\"cbfName\":\"Volunteer\",\"cblName\":\"Coordinator\",\"startDate\":\"2024-09-27T06:30:00.0000000\",\"endDate\":\"2024-09-27T16:30:00.0000000\",\"isActive\":false,\"isUnlistedProject\":false,\"ongoing\":false,\"isDirectlyOwnedOrSponsored\":true,\"isOwnedOrRepresentedViaOrganization\":false,\"volunteersNeeded\":0,\"volunteersAcquired\":0,\"projectOwnerName\":\"Jennifer Hale\",\"projectOwnerUserId\":\"6a1b0bce-27be-4985-b221-a96c5612473c\"},{\"id\":\"457f4ab0-4260-4256-a816-c921f8b0e58c\",\"name\":\"WACS Community Garden Volunteer\",\"projectOwners\":[{\"id\":\"3504645e-a82e-4000-89f5-e6ec2d0b809f\",\"ownerType\":2},{\"id\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"ownerType\":1}],\"locations\":[{\"mapId\":null,\"fullDisplayAddress\":\"1155 Boone Drive Waukee Iowa 50263-8253 United States\",\"address\":\"1155 Boone Drive\",\"suite\":null,\"city\":\"Waukee\",\"civicCityId\":\"cca7ce9b-ebfc-4981-add3-f6ddd1de02ed\",\"neighborhood\":null,\"county\":\"Dallas County\",\"state\":\"Iowa\",\"postal\":\"50263-8253\",\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":41.601801,\"longitude\":-93.8318976,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":\"Central Standard Time\"}],\"status\":1,\"organization\":{\"authorization\":false,\"organizationAuthorization\":true,\"name\":\"Waukee Area Christian Services\",\"description\":\"

    Waukee Area Christian Services (WACS) provides compassionate, practical care to greater Des Moines' west side, offering food and medical assistance to those struggling to make ends meet. Supported by area churches, businesses and community organizations, WACS includes a food pantry, free medical clinic, and community garden.

    \",\"url\":\"waukeeareachristianservices\",\"internalUrl\":null,\"organizationId\":\"3504645e-a82e-4000-89f5-e6ec2d0b809f\",\"reviewedBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"reviewedOn\":\"2019-10-04T17:55:01.6050320+00:00\",\"linked\":false,\"logo\":\"c119ae7c-3bee-4253-b294-a9e5f41530c6.png\"},\"createdBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"cbfName\":\"Hillary\",\"cblName\":\"Nielsen\",\"startDate\":\"2023-08-16T00:00:00.0000000\",\"endDate\":\"2024-08-16T23:59:59.0000000\",\"isActive\":false,\"isUnlistedProject\":true,\"ongoing\":true,\"isDirectlyOwnedOrSponsored\":true,\"isOwnedOrRepresentedViaOrganization\":false,\"volunteersNeeded\":0,\"volunteersAcquired\":0,\"projectOwnerName\":\"Jennifer Hale\",\"projectOwnerUserId\":\"3504645e-a82e-4000-89f5-e6ec2d0b809f\"},{\"id\":\"ff59276b-48c6-43f6-875f-f2f86f1042c9\",\"name\":\"WACS Free Health Clinic Volunteer\",\"projectOwners\":[{\"id\":\"3504645e-a82e-4000-89f5-e6ec2d0b809f\",\"ownerType\":2},{\"id\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"ownerType\":1}],\"locations\":[{\"mapId\":null,\"fullDisplayAddress\":\"1155 Boone Drive Waukee Iowa 50263-8253 United States\",\"address\":\"1155 Boone Drive\",\"suite\":null,\"city\":\"Waukee\",\"civicCityId\":\"cca7ce9b-ebfc-4981-add3-f6ddd1de02ed\",\"neighborhood\":null,\"county\":\"Dallas County\",\"state\":\"Iowa\",\"postal\":\"50263-8253\",\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":41.601801,\"longitude\":-93.8318976,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":\"Central Standard Time\"}],\"status\":1,\"organization\":{\"authorization\":false,\"organizationAuthorization\":true,\"name\":\"Waukee Area Christian Services\",\"description\":\"

    Waukee Area Christian Services (WACS) provides compassionate, practical care to greater Des Moines' west side, offering food and medical assistance to those struggling to make ends meet. Supported by area churches, businesses and community organizations, WACS includes a food pantry, free medical clinic, and community garden.

    \",\"url\":\"waukeeareachristianservices\",\"internalUrl\":null,\"organizationId\":\"3504645e-a82e-4000-89f5-e6ec2d0b809f\",\"reviewedBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"reviewedOn\":\"2019-10-04T18:08:49.1091100+00:00\",\"linked\":false,\"logo\":\"c119ae7c-3bee-4253-b294-a9e5f41530c6.png\"},\"createdBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"cbfName\":\"Hillary\",\"cblName\":\"Nielsen\",\"startDate\":\"2023-08-16T00:00:00.0000000\",\"endDate\":\"2024-08-16T23:59:59.0000000\",\"isActive\":false,\"isUnlistedProject\":false,\"ongoing\":true,\"isDirectlyOwnedOrSponsored\":true,\"isOwnedOrRepresentedViaOrganization\":false,\"volunteersNeeded\":0,\"volunteersAcquired\":0,\"projectOwnerName\":\"Jennifer Hale\",\"projectOwnerUserId\":\"3504645e-a82e-4000-89f5-e6ec2d0b809f\"},{\"id\":\"9241fa7c-047a-4a89-a475-4b20c1a63548\",\"name\":\"Clive Community Services- Free Clinic Volunteer\",\"projectOwners\":[{\"id\":\"661e6d03-1d95-4a04-90cd-8cc60fb73a0e\",\"ownerType\":2},{\"id\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"ownerType\":1}],\"locations\":[{\"mapId\":null,\"fullDisplayAddress\":\"2190 Northwest 82nd Street Clive Iowa 50325 United States\",\"address\":\"2190 Northwest 82nd Street\",\"suite\":null,\"city\":\"Clive\",\"civicCityId\":\"9086595d-ac45-4bb2-8c74-2874796e96c9\",\"neighborhood\":null,\"county\":\"Polk County\",\"state\":\"Iowa\",\"postal\":\"50325\",\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":41.6137519,\"longitude\":-93.7322828,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":\"Central Standard Time\"}],\"status\":1,\"organization\":{\"authorization\":false,\"organizationAuthorization\":true,\"name\":\"Clive Community Services\",\"description\":\"

    This organization is established to provide support to families and individuals in need by providing assistance and linking them with resources that will enable them to become healthier in mind, body, and spirit. We do this by: Providing food to meet the short term needs of hungry people. Providing clothing and personal care items for families Providing opportunities and resources that will teach people how to create their own healthy and balanced lifestyle Providing opportunities and resources for medical care

    \",\"url\":\"clivecommunityservices\",\"internalUrl\":null,\"organizationId\":\"661e6d03-1d95-4a04-90cd-8cc60fb73a0e\",\"reviewedBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"reviewedOn\":\"2020-02-24T20:30:56.9978830+00:00\",\"linked\":false,\"logo\":\"314ea41b-f293-4886-a3b3-7c01738990c8.png\"},\"createdBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"cbfName\":\"Hillary\",\"cblName\":\"Nielsen\",\"startDate\":\"2023-08-09T00:00:00.0000000\",\"endDate\":\"2024-08-10T23:59:59.0000000\",\"isActive\":false,\"isUnlistedProject\":false,\"ongoing\":true,\"isDirectlyOwnedOrSponsored\":true,\"isOwnedOrRepresentedViaOrganization\":false,\"volunteersNeeded\":0,\"volunteersAcquired\":0,\"projectOwnerName\":\"Jennifer Hale\",\"projectOwnerUserId\":\"661e6d03-1d95-4a04-90cd-8cc60fb73a0e\"},{\"id\":\"13f51902-0357-48a8-ad86-daed13b9e65c\",\"name\":\"Joppa Community Garden Volunteer\",\"projectOwners\":[{\"id\":\"96f61337-2798-4150-8232-678bd17ebf5f\",\"ownerType\":2},{\"id\":\"fecf6ca8-9a21-4b9d-aaec-91530f70c185\",\"ownerType\":1}],\"locations\":[{\"mapId\":null,\"fullDisplayAddress\":\"1000 East 13th Street Des Moines Iowa 50316-3430 United States\",\"address\":\"1000 East 13th Street\",\"suite\":null,\"city\":\"Des Moines\",\"civicCityId\":\"348ea4c2-b55d-4ebc-819d-1f07df04efd9\",\"neighborhood\":null,\"county\":\"Polk County\",\"state\":\"Iowa\",\"postal\":\"50316-3430\",\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":41.5981289,\"longitude\":-93.6025563,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":\"Central Standard Time\"}],\"status\":6,\"organization\":{\"authorization\":false,\"organizationAuthorization\":true,\"name\":\"Joppa\",\"description\":\"

    To create communities of unconditional love, support, and hope for the homeless, as we work together to prevent and ultimately end homelessness.


    Joppa collaborates with community partners, help homeless people access existing resources, and mobilize private donations from families, churches, and organizations to meet unmet needs in homeless services, housing, and education.


    How We Do It:

    Homeless Services

    Housing Development

    Education Advocacy

    \",\"url\":\"joppa\",\"internalUrl\":null,\"organizationId\":\"96f61337-2798-4150-8232-678bd17ebf5f\",\"reviewedBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"reviewedOn\":\"2021-04-15T19:47:54.9819700+00:00\",\"linked\":false,\"logo\":\"36cc3675-e053-4da7-9041-8876c4395b73.png\"},\"createdBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"cbfName\":\"Hillary\",\"cblName\":\"Nielsen\",\"startDate\":\"2023-07-19T00:00:00.0000000\",\"endDate\":\"2024-07-19T23:59:59.0000000\",\"isActive\":false,\"isUnlistedProject\":false,\"ongoing\":true,\"isDirectlyOwnedOrSponsored\":false,\"isOwnedOrRepresentedViaOrganization\":false,\"volunteersNeeded\":0,\"volunteersAcquired\":0,\"projectOwnerName\":\"Linda Wilson\",\"projectOwnerUserId\":\"96f61337-2798-4150-8232-678bd17ebf5f\"},{\"id\":\"428fe20a-c9af-432b-a40e-6d2acc5bdb93\",\"name\":\"BPZ Special Event Volunteer\",\"projectOwners\":[{\"id\":\"577b00aa-17b4-400c-89ab-41cadf1c6ea3\",\"ownerType\":2},{\"id\":\"fecf6ca8-9a21-4b9d-aaec-91530f70c185\",\"ownerType\":1}],\"locations\":[{\"mapId\":null,\"fullDisplayAddress\":\"7401 Southwest 9th Street Des Moines Iowa 50315-6667 United States\",\"address\":\"7401 Southwest 9th Street\",\"suite\":null,\"city\":\"Des Moines\",\"civicCityId\":\"498d77c9-5f41-4693-8d37-6fbe2106159b\",\"neighborhood\":null,\"county\":\"Polk County\",\"state\":\"Iowa\",\"postal\":\"50315-6667\",\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":41.5197844,\"longitude\":-93.6251551,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":\"Central Standard Time\"}],\"status\":1,\"organization\":{\"authorization\":false,\"organizationAuthorization\":true,\"name\":\"Blank Park Zoo\",\"description\":\"The mission of the Blank Park Zoo is to inspire an appreciation of the natural world through conservation, education, research and recreation and has been a part of the Des Moines metro community since 1963\",\"url\":\"blankparkzoo\",\"internalUrl\":null,\"organizationId\":\"577b00aa-17b4-400c-89ab-41cadf1c6ea3\",\"reviewedBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"reviewedOn\":\"2019-09-19T20:32:45.4026300+00:00\",\"linked\":false,\"logo\":\"ed71aaf0-e9d4-4a52-9384-168636d30580.png\"},\"createdBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"cbfName\":\"Hillary\",\"cblName\":\"Nielsen\",\"startDate\":\"2019-09-19T05:00:00.0000000\",\"endDate\":\"2020-09-18T05:00:00.0000000\",\"isActive\":false,\"isUnlistedProject\":false,\"ongoing\":true,\"isDirectlyOwnedOrSponsored\":false,\"isOwnedOrRepresentedViaOrganization\":true,\"volunteersNeeded\":0,\"volunteersAcquired\":0,\"projectOwnerName\":\"Linda Wilson\",\"projectOwnerUserId\":\"577b00aa-17b4-400c-89ab-41cadf1c6ea3\"},{\"id\":\"43b532d1-1809-4fbe-b2a8-242c7406d6d6\",\"name\":\"Ruby Reader Volunteer\",\"projectOwners\":[{\"id\":\"577b00aa-17b4-400c-89ab-41cadf1c6ea3\",\"ownerType\":2},{\"id\":\"fecf6ca8-9a21-4b9d-aaec-91530f70c185\",\"ownerType\":1}],\"locations\":[{\"mapId\":null,\"fullDisplayAddress\":\"7401 Southwest 9th Street Des Moines Iowa 50315-6667 United States\",\"address\":\"7401 Southwest 9th Street\",\"suite\":null,\"city\":\"Des Moines\",\"civicCityId\":\"498d77c9-5f41-4693-8d37-6fbe2106159b\",\"neighborhood\":null,\"county\":\"Polk County\",\"state\":\"Iowa\",\"postal\":\"50315-6667\",\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":41.5197844,\"longitude\":-93.6251551,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":\"Central Standard Time\"}],\"status\":1,\"organization\":{\"authorization\":false,\"organizationAuthorization\":true,\"name\":\"Blank Park Zoo\",\"description\":\"The mission of the Blank Park Zoo is to inspire an appreciation of the natural world through conservation, education, research and recreation and has been a part of the Des Moines metro community since 1963\",\"url\":\"blankparkzoo\",\"internalUrl\":null,\"organizationId\":\"577b00aa-17b4-400c-89ab-41cadf1c6ea3\",\"reviewedBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"reviewedOn\":\"2019-09-19T21:35:38.6062420+00:00\",\"linked\":false,\"logo\":\"ed71aaf0-e9d4-4a52-9384-168636d30580.png\"},\"createdBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"cbfName\":\"Hillary\",\"cblName\":\"Nielsen\",\"startDate\":\"2019-09-19T05:00:00.0000000\",\"endDate\":\"2020-09-18T05:00:00.0000000\",\"isActive\":false,\"isUnlistedProject\":false,\"ongoing\":true,\"isDirectlyOwnedOrSponsored\":false,\"isOwnedOrRepresentedViaOrganization\":true,\"volunteersNeeded\":0,\"volunteersAcquired\":0,\"projectOwnerName\":\"Linda Wilson\",\"projectOwnerUserId\":\"577b00aa-17b4-400c-89ab-41cadf1c6ea3\"}],\"draftProjects\":[],\"templateProjects\":[]}" - }, - "redirectURL": "", - "headersSize": 408, - "bodySize": 52850 - }, - "cache": {}, - "timings": { - "blocked": -1, - "dns": 0, - "connect": 0, - "ssl": 0, - "send": 0, - "wait": 856, - "receive": 29 - }, - "time": 885, - "_securityState": "secure", - "serverIPAddress": "104.68.113.88", - "connection": "443", - "pageref": "page_4" - }, - { - "startedDateTime": "2025-10-04T11:02:05.826-06:00", - "request": { - "bodySize": 0, - "method": "GET", - "url": "https://www.facebook.com/tr/?id=251409689078404&ev=PageView&dl=https%3A%2F%2Fwww.justserve.org%2Fadmin%2Fusers%3Ftab%3Dboundaries%26userId%3D6a1b0bce-27be-4985-b221-a96c5612473c&rl=&if=false&ts=1759597325783&sw=1408&sh=880&cudff[em]=********.****%40*********.***&cudff[zp]=%23%23%23%23%23&ncudff[em]=********.****%40*********.***&udff[em]=e4eb98c32760ed013a7a016c86f598068572c55fd8ff8758dd583b10211b7c4f&ncudff[zp]=%23%23%23%23%23&udff[zp]=7863ea3f80774c60835b1e09debfdd54d1f353b3a15f12c312b34e9213e500fd&audff[em]=e4eb98c32760ed013a7a016c86f598068572c55fd8ff8758dd583b10211b7c4f&audff[zp]=7863ea3f80774c60835b1e09debfdd54d1f353b3a15f12c312b34e9213e500fd&v=2.9.233&r=stable&ec=15&o=14366&fbp=fb.1.1758815969658.680488826508573002&cs_est=true&ler=empty&pmd[title]=JustServe&pmd[description]=Just%20Serve%20in%20your%20community.%20Find%20projects%20in%20your%20area%20on%20Justserve.org.&pmd[keywords]=serve%2C%20service%2C%20service%20opportunities%2C%20community%2C%20projects%2C%20service%20projects%2C%20Volunteer%2C%20Volunteer%20opportunities%2C%20projects%2C%20service%20projects%2C%20JustServe%20Home%2C%20Community%20Service%2C%20volunteerism%2C%20Just%20Serve&plt=416&it=1759597325779&coo=false&expv2[0]=pl1&expv2[1]=el2&expv2[2]=bc3&rqm=GET", - "httpVersion": "HTTP/3", - "headers": [ - { - "name": "Host", - "value": "www.facebook.com" - }, - { - "name": "User-Agent", - "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0" - }, - { - "name": "Accept", - "value": "image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5" - }, - { - "name": "Accept-Language", - "value": "en-US,en;q=0.5" - }, - { - "name": "Accept-Encoding", - "value": "gzip, deflate, br, zstd" - }, - { - "name": "Referer", - "value": "https://www.justserve.org/" - }, - { - "name": "Alt-Used", - "value": "www.facebook.com" - }, - { - "name": "Connection", - "value": "keep-alive" - }, - { - "name": "Cookie", - "value": "fr=0yPQnjyD5dLwhF3Jb..Bo1wQP...1.0.Bo1wQP." - }, - { - "name": "Sec-Fetch-Dest", - "value": "image" - }, - { - "name": "Sec-Fetch-Mode", - "value": "no-cors" - }, - { - "name": "Sec-Fetch-Site", - "value": "cross-site" - }, - { - "name": "Priority", - "value": "u=6, i" - } - ], - "cookies": [ - { - "name": "fr", - "value": "0yPQnjyD5dLwhF3Jb..Bo1wQP...1.0.Bo1wQP." - } - ], - "queryString": [ - { - "name": "id", - "value": "251409689078404" - }, - { - "name": "ev", - "value": "PageView" - }, - { - "name": "dl", - "value": "https://www.justserve.org/admin/users?tab=boundaries&userId=6a1b0bce-27be-4985-b221-a96c5612473c" - }, - { - "name": "rl", - "value": "" - }, - { - "name": "if", - "value": "false" - }, - { - "name": "ts", - "value": "1759597325783" - }, - { - "name": "sw", - "value": "1408" - }, - { - "name": "sh", - "value": "880" - }, - { - "name": "cudff[em]", - "value": "********.****@*********.***" - }, - { - "name": "cudff[zp]", - "value": "#####" - }, - { - "name": "ncudff[em]", - "value": "********.****@*********.***" - }, - { - "name": "udff[em]", - "value": "e4eb98c32760ed013a7a016c86f598068572c55fd8ff8758dd583b10211b7c4f" - }, - { - "name": "ncudff[zp]", - "value": "#####" - }, - { - "name": "udff[zp]", - "value": "7863ea3f80774c60835b1e09debfdd54d1f353b3a15f12c312b34e9213e500fd" - }, - { - "name": "audff[em]", - "value": "e4eb98c32760ed013a7a016c86f598068572c55fd8ff8758dd583b10211b7c4f" - }, - { - "name": "audff[zp]", - "value": "7863ea3f80774c60835b1e09debfdd54d1f353b3a15f12c312b34e9213e500fd" - }, - { - "name": "v", - "value": "2.9.233" - }, - { - "name": "r", - "value": "stable" - }, - { - "name": "ec", - "value": "15" - }, - { - "name": "o", - "value": "14366" - }, - { - "name": "fbp", - "value": "fb.1.1758815969658.680488826508573002" - }, - { - "name": "cs_est", - "value": "true" - }, - { - "name": "ler", - "value": "empty" - }, - { - "name": "pmd[title]", - "value": "JustServe" - }, - { - "name": "pmd[description]", - "value": "Just Serve in your community. Find projects in your area on Justserve.org." - }, - { - "name": "pmd[keywords]", - "value": "serve, service, service opportunities, community, projects, service projects, Volunteer, Volunteer opportunities, projects, service projects, JustServe Home, Community Service, volunteerism, Just Serve" - }, - { - "name": "plt", - "value": "416" - }, - { - "name": "it", - "value": "1759597325779" - }, - { - "name": "coo", - "value": "false" - }, - { - "name": "expv2[0]", - "value": "pl1" - }, - { - "name": "expv2[1]", - "value": "el2" - }, - { - "name": "expv2[2]", - "value": "bc3" - }, - { - "name": "rqm", - "value": "GET" - } - ], - "headersSize": 1750 - }, - "response": { - "status": 200, - "statusText": "", - "httpVersion": "HTTP/3", - "headers": [ - { - "name": "content-type", - "value": "text/plain" - }, - { - "name": "access-control-allow-origin", - "value": "" - }, - { - "name": "access-control-allow-credentials", - "value": "true" - }, - { - "name": "strict-transport-security", - "value": "max-age=31536000; includeSubDomains" - }, - { - "name": "cross-origin-resource-policy", - "value": "cross-origin" - }, - { - "name": "content-length", - "value": "0" - }, - { - "name": "server", - "value": "proxygen-bolt" - }, - { - "name": "x-fb-connection-quality", - "value": "EXCELLENT; q=0.9, rtt=28, rtx=0, c=29, mss=1232, tbw=13915, tp=85, tpl=0, uplat=0, ullat=0" - }, - { - "name": "alt-svc", - "value": "h3=\":443\"; ma=86400" - }, - { - "name": "priority", - "value": "u=6,i" - }, - { - "name": "date", - "value": "Sat, 04 Oct 2025 17:01:49 GMT" - } - ], - "cookies": [], - "content": { - "mimeType": "text/plain", - "size": 0, - "text": "" - }, - "redirectURL": "", - "headersSize": 463, - "bodySize": 463 - }, - "cache": {}, - "timings": { - "blocked": 1, - "dns": 0, - "connect": 0, - "ssl": 0, - "send": 0, - "wait": 25, - "receive": 1 - }, - "time": 27, - "_securityState": "secure", - "serverIPAddress": "2a03:2880:f32b:9:face:b00c:0:25de", - "connection": "443", - "pageref": "page_4" - }, - { - "startedDateTime": "2025-10-04T11:02:05.960-06:00", - "request": { - "bodySize": 0, - "method": "GET", - "url": "https://www.justserve.org/api/v1/users/641875c7-c6df-4c15-a6e9-7e796ccc32f1/boundaries/church/0/d6165973-8154-48a1-93cd-4f34f9b31f48/1", - "httpVersion": "HTTP/1.1", - "headers": [ - { - "name": "Host", - "value": "www.justserve.org" - }, - { - "name": "User-Agent", - "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0" - }, - { - "name": "Accept", - "value": "application/json, text/plain, */*" - }, - { - "name": "Accept-Language", - "value": "en-US,en;q=0.5" - }, - { - "name": "Accept-Encoding", - "value": "gzip, deflate, br, zstd" - }, - { - "name": "Referer", - "value": "https://www.justserve.org/admin/users?tab=boundaries&userId=6a1b0bce-27be-4985-b221-a96c5612473c" - }, - { - "name": "Authorization", - "value": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI2NDE4NzVjNy1jNmRmLTRjMTUtYTZlOS03ZTc5NmNjYzMyZjEiLCJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoiNjQxODc1YzctYzZkZi00YzE1LWE2ZTktN2U3OTZjY2MzMmYxIiwianRpIjoiM2Y5ZjhiYjMtYmU0OC00OTJhLWIxZTktY2M4YzdiYTQ1MzEwIiwiZW1haWwiOiJqb25hdGhhbi56b2xsaW5nZXJAY2h1cmNob2ZqZXN1c2NocmlzdC5vcmciLCJleHRlcm5hbF9pZCI6IjY0MTg3NWM3LWM2ZGYtNGMxNS1hNmU5LTdlNzk2Y2NjMzJmMSIsIm5hbWUiOiJKb25hdGhhbiBab2xsaW5nZXIiLCJvcmdhbml6YXRpb25zIjoiQXJlYSBTcGVjaWFsaXN0cywiLCJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL3dzLzIwMDgvMDYvaWRlbnRpdHkvY2xhaW1zL3JvbGUiOiIxOCIsImlzcyI6Imh0dHBzOi8vd3d3Lmp1c3RzZXJ2ZS5vcmcifQ.US5F_y4pQJYBZSKw39IAynHK-Wb3K3QA1sNzL66lQ6w" - }, - { - "name": "Connection", - "value": "keep-alive" - }, - { - "name": "Cookie", - "value": "_fbp=fb.1.1758815969658.680488826508573002; NEXT_LOCALE=en-us; dtCookie=v_4_srv_2_sn_21322B6E90118493E0F96A34F31CA69F_perc_100000_ol_0_mul_1_app-3A8ada1280bee91d29_0_rcs-3Acss_0" - }, - { - "name": "Sec-Fetch-Dest", - "value": "empty" - }, - { - "name": "Sec-Fetch-Mode", - "value": "cors" - }, - { - "name": "Sec-Fetch-Site", - "value": "same-origin" - } - ], - "cookies": [ - { - "name": "_fbp", - "value": "fb.1.1758815969658.680488826508573002" - }, - { - "name": "NEXT_LOCALE", - "value": "en-us" - }, - { - "name": "dtCookie", - "value": "v_4_srv_2_sn_21322B6E90118493E0F96A34F31CA69F_perc_100000_ol_0_mul_1_app-3A8ada1280bee91d29_0_rcs-3Acss_0" - } - ], - "queryString": [], - "headersSize": 1478 - }, - "response": { - "status": 200, - "statusText": "OK", - "httpVersion": "HTTP/1.1", - "headers": [ - { - "name": "Content-Type", - "value": "application/json; charset=utf-8" - }, - { - "name": "Content-Length", - "value": "4987" - }, - { - "name": "Server", - "value": "Kestrel" - }, - { - "name": "Expires", - "value": "Sat, 04 Oct 2025 17:01:49 GMT" - }, - { - "name": "Cache-Control", - "value": "max-age=0, no-cache, no-store" - }, - { - "name": "Pragma", - "value": "no-cache" - }, - { - "name": "Date", - "value": "Sat, 04 Oct 2025 17:01:49 GMT" - }, - { - "name": "Connection", - "value": "keep-alive" - }, - { - "name": "Server-Timing", - "value": "cdn-cache; desc=MISS" - }, - { - "name": "Server-Timing", - "value": "edge; dur=65" - }, - { - "name": "Server-Timing", - "value": "origin; dur=65" - }, - { - "name": "Server-Timing", - "value": "ak_p; desc=\"1759597309664_399924805_70839794_12960_685_62_0_-\";dur=1" - } - ], - "cookies": [], - "content": { - "mimeType": "application/json; charset=utf-8", - "size": 4987, - "text": "[{\"id\":\"2151480\",\"ldsGeographyId\":\"c56edf9f-12be-4500-af3c-2f04d37678df\",\"unitId\":\"2151480\",\"name\":\"Africa Central Area\",\"areaId\":\"2151480\",\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"type\":1,\"manageable\":true},{\"id\":\"790230\",\"ldsGeographyId\":\"6968d631-d050-48c9-ab66-335ee8141d51\",\"unitId\":\"790230\",\"name\":\"Africa South Area\",\"areaId\":\"790230\",\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"type\":1,\"manageable\":true},{\"id\":\"791024\",\"ldsGeographyId\":\"dca64da7-3076-4c2b-b13f-d665d29805ec\",\"unitId\":\"791024\",\"name\":\"Africa West Area\",\"areaId\":\"791024\",\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"type\":1,\"manageable\":true},{\"id\":\"790060\",\"ldsGeographyId\":\"4731b254-6fb9-4ce3-a53d-5921699736c6\",\"unitId\":\"790060\",\"name\":\"Asia Area\",\"areaId\":\"790060\",\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"type\":1,\"manageable\":true},{\"id\":\"790249\",\"ldsGeographyId\":\"7f790f33-0cae-4894-80cb-5bc72a06bda6\",\"unitId\":\"790249\",\"name\":\"Asia North Area\",\"areaId\":\"790249\",\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"type\":1,\"manageable\":true},{\"id\":\"790192\",\"ldsGeographyId\":\"0a7e42e4-94c4-433e-b363-1d5c4ebc67d5\",\"unitId\":\"790192\",\"name\":\"Brazil Area\",\"areaId\":\"790192\",\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"type\":1,\"manageable\":true},{\"id\":\"2288435\",\"ldsGeographyId\":\"ea08c8cb-f53d-400c-b306-27f47e0c1baa\",\"unitId\":\"2288435\",\"name\":\"Canada Area\",\"areaId\":\"2288435\",\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"type\":1,\"manageable\":true},{\"id\":\"780693\",\"ldsGeographyId\":\"c1064ac0-d3f2-46cc-9a8f-9f08672a415c\",\"unitId\":\"780693\",\"name\":\"Caribbean Area\",\"areaId\":\"780693\",\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"type\":1,\"manageable\":true},{\"id\":\"790222\",\"ldsGeographyId\":\"3e57f1a8-d2f2-42fb-9886-9ab1f913ece4\",\"unitId\":\"790222\",\"name\":\"Central America Area\",\"areaId\":\"790222\",\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"type\":1,\"manageable\":true},{\"id\":\"790028\",\"ldsGeographyId\":\"0a1dbbe6-74d9-4312-9bf0-4123d70eca06\",\"unitId\":\"790028\",\"name\":\"Eurasian Area\",\"areaId\":\"790028\",\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"type\":1,\"manageable\":true},{\"id\":\"790257\",\"ldsGeographyId\":\"63fc7138-3041-4239-85e2-0ff665c738f4\",\"unitId\":\"790257\",\"name\":\"Europe Central Area\",\"areaId\":\"790257\",\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"type\":1,\"manageable\":true},{\"id\":\"790176\",\"ldsGeographyId\":\"a76984eb-3785-4437-af61-c6be93866baf\",\"unitId\":\"790176\",\"name\":\"Europe North Area\",\"areaId\":\"790176\",\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"type\":1,\"manageable\":true},{\"id\":\"790079\",\"ldsGeographyId\":\"169e9d19-0253-4827-baf8-557c5aedde5f\",\"unitId\":\"790079\",\"name\":\"México Area\",\"areaId\":\"790079\",\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"type\":1,\"manageable\":true},{\"id\":\"563013\",\"ldsGeographyId\":\"842e66a7-2343-4676-bdc8-6c6fac2b757a\",\"unitId\":\"563013\",\"name\":\"Middle East/Africa North Area\",\"areaId\":\"563013\",\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"type\":1,\"manageable\":true},{\"id\":\"791040\",\"ldsGeographyId\":\"3ead334c-feca-4f39-b84c-3c0ec9e9c443\",\"unitId\":\"791040\",\"name\":\"Pacific Area\",\"areaId\":\"791040\",\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"type\":1,\"manageable\":true},{\"id\":\"790184\",\"ldsGeographyId\":\"4ffdb042-363d-4e22-a771-f2d13d698f1f\",\"unitId\":\"790184\",\"name\":\"Philippines Area\",\"areaId\":\"790184\",\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"type\":1,\"manageable\":true},{\"id\":\"791067\",\"ldsGeographyId\":\"fb1e93ce-6b00-4b07-83b2-65178f033d15\",\"unitId\":\"791067\",\"name\":\"South America Northwest Area\",\"areaId\":\"791067\",\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"type\":1,\"manageable\":true},{\"id\":\"790109\",\"ldsGeographyId\":\"3a40a231-3296-4c07-a19a-3af197e80361\",\"unitId\":\"790109\",\"name\":\"South America South Area\",\"areaId\":\"790109\",\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"type\":1,\"manageable\":true},{\"id\":\"790206\",\"ldsGeographyId\":\"d874c787-b727-4b8d-ba3c-182557866fbb\",\"unitId\":\"790206\",\"name\":\"United States Central Area\",\"areaId\":\"790206\",\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"type\":1,\"manageable\":true},{\"id\":\"790168\",\"ldsGeographyId\":\"9b68ae39-d938-4a39-b629-db311d55dc38\",\"unitId\":\"790168\",\"name\":\"United States Northeast Area\",\"areaId\":\"790168\",\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"type\":1,\"manageable\":true},{\"id\":\"790087\",\"ldsGeographyId\":\"c91a886a-f5e5-42b7-9726-c0bd05afc862\",\"unitId\":\"790087\",\"name\":\"United States Southeast Area\",\"areaId\":\"790087\",\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"type\":1,\"manageable\":true},{\"id\":\"790052\",\"ldsGeographyId\":\"ade016dc-1442-457f-8f43-8172f8806a81\",\"unitId\":\"790052\",\"name\":\"United States Southwest Area\",\"areaId\":\"790052\",\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"type\":1,\"manageable\":true},{\"id\":\"790036\",\"ldsGeographyId\":\"e28e5589-7a36-4b67-aff6-332a35dba5a2\",\"unitId\":\"790036\",\"name\":\"United States West Area\",\"areaId\":\"790036\",\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"type\":1,\"manageable\":true},{\"id\":\"425303\",\"ldsGeographyId\":\"5efa515b-f446-4d33-bef6-1da947997458\",\"unitId\":\"425303\",\"name\":\"Utah Area\",\"areaId\":\"425303\",\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"type\":1,\"manageable\":true}]" - }, - "redirectURL": "", - "headersSize": 407, - "bodySize": 5394 - }, - "cache": {}, - "timings": { - "blocked": 2, - "dns": 0, - "connect": 0, - "ssl": 0, - "send": 0, - "wait": 163, - "receive": 3 - }, - "time": 168, - "_securityState": "secure", - "serverIPAddress": "104.68.113.88", - "connection": "443", - "pageref": "page_4" - }, - { - "startedDateTime": "2025-10-04T11:05:30.811-06:00", - "request": { - "bodySize": 0, - "method": "GET", - "url": "https://c.go-mpulse.net/api/config.json?key=VCRJB-PLDYW-3TQ9X-A6RAQ-XC8PW&d=www.justserve.org&t=5865325&v=1.720.0&if=&sl=1&si=49760a01-c2c4-4720-86c0-4596f80d37b0-t3m9w0&r=&bcn=%2F%2F17de4c1f.akstat.io%2F&acao=&ak.ai=308062", - "httpVersion": "HTTP/3", - "headers": [ - { - "name": "Host", - "value": "c.go-mpulse.net" - }, - { - "name": "User-Agent", - "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0" - }, - { - "name": "Accept", - "value": "*/*" - }, - { - "name": "Accept-Language", - "value": "en-US,en;q=0.5" - }, - { - "name": "Accept-Encoding", - "value": "gzip, deflate, br, zstd" - }, - { - "name": "Referer", - "value": "https://www.justserve.org/" - }, - { - "name": "Origin", - "value": "https://www.justserve.org" - }, - { - "name": "Connection", - "value": "keep-alive" - }, - { - "name": "Sec-Fetch-Dest", - "value": "empty" - }, - { - "name": "Sec-Fetch-Mode", - "value": "cors" - }, - { - "name": "Sec-Fetch-Site", - "value": "cross-site" - }, - { - "name": "TE", - "value": "trailers" - } - ], - "cookies": [], - "queryString": [ - { - "name": "key", - "value": "VCRJB-PLDYW-3TQ9X-A6RAQ-XC8PW" - }, - { - "name": "d", - "value": "www.justserve.org" - }, - { - "name": "t", - "value": "5865325" - }, - { - "name": "v", - "value": "1.720.0" - }, - { - "name": "if", - "value": "" - }, - { - "name": "sl", - "value": "1" - }, - { - "name": "si", - "value": "49760a01-c2c4-4720-86c0-4596f80d37b0-t3m9w0" - }, - { - "name": "r", - "value": "" - }, - { - "name": "bcn", - "value": "//17de4c1f.akstat.io/" - }, - { - "name": "acao", - "value": "" - }, - { - "name": "ak.ai", - "value": "308062" - } - ], - "headersSize": 591 - }, - "response": { - "status": 200, - "statusText": "", - "httpVersion": "HTTP/3", - "headers": [ - { - "name": "access-control-allow-origin", - "value": "*" - }, - { - "name": "cache-control", - "value": "private, max-age=300, stale-while-revalidate=60, stale-if-error=120" - }, - { - "name": "timing-allow-origin", - "value": "*" - }, - { - "name": "content-length", - "value": "126" - }, - { - "name": "date", - "value": "Sat, 04 Oct 2025 17:05:14 GMT" - }, - { - "name": "quic-version", - "value": "0x00000001" - }, - { - "name": "alt-svc", - "value": "h3=\":443\"; ma=93600" - }, - { - "name": "content-type", - "value": "application/json" - } - ], - "cookies": [], - "content": { - "mimeType": "application/json", - "size": 126, - "text": "{\"beacon_url\":\"//17de4c19.akstat.io/\",\"h.t\":1759597514520,\"h.cr\":\"97493cb98a640f0eb4b25c8ad0559b0fc51ff68f-63269391-aa2d0cdd\"}" - }, - "redirectURL": "", - "headersSize": 301, - "bodySize": 427 - }, - "cache": {}, - "timings": { - "blocked": 0, - "dns": 0, - "connect": 0, - "ssl": 0, - "send": 0, - "wait": 41, - "receive": 0 - }, - "time": 41, - "_securityState": "secure", - "serverIPAddress": "2600:1406:3a00:397::11a6", - "connection": "443", - "pageref": "page_4" - } - ] - } -} \ No newline at end of file diff --git a/src/main/resources/put-update-call-jennifer-jonathan b/src/main/resources/put-update-call-jennifer-jonathan deleted file mode 100644 index d24aa48..0000000 --- a/src/main/resources/put-update-call-jennifer-jonathan +++ /dev/null @@ -1,1226 +0,0 @@ -{ - "log": { - "version": "1.2", - "creator": { - "name": "Firefox", - "version": "144.0" - }, - "browser": { - "name": "Firefox", - "version": "144.0" - }, - "pages": [ - { - "id": "page_3", - "pageTimings": { - "onContentLoad": -123510, - "onLoad": -121816 - }, - "startedDateTime": "2025-10-04T11:02:03.954-06:00", - "title": "https://www.justserve.org/admin/users?tab=boundaryEdit&userId=6a1b0bce-27be-4985-b221-a96c5612473c" - } - ], - "entries": [ - { - "startedDateTime": "2025-10-04T11:02:03.954-06:00", - "request": { - "bodySize": 229, - "method": "PUT", - "url": "https://www.justserve.org/api/v1/boundaries/update", - "httpVersion": "HTTP/1.1", - "headers": [ - { - "name": "Host", - "value": "www.justserve.org" - }, - { - "name": "User-Agent", - "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0" - }, - { - "name": "Accept", - "value": "application/json, text/plain, */*" - }, - { - "name": "Accept-Language", - "value": "en-US,en;q=0.5" - }, - { - "name": "Accept-Encoding", - "value": "gzip, deflate, br, zstd" - }, - { - "name": "Referer", - "value": "https://www.justserve.org/admin/users?tab=boundaryEdit&userId=6a1b0bce-27be-4985-b221-a96c5612473c" - }, - { - "name": "Content-Type", - "value": "application/json" - }, - { - "name": "Authorization", - "value": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI2NDE4NzVjNy1jNmRmLTRjMTUtYTZlOS03ZTc5NmNjYzMyZjEiLCJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoiNjQxODc1YzctYzZkZi00YzE1LWE2ZTktN2U3OTZjY2MzMmYxIiwianRpIjoiM2Y5ZjhiYjMtYmU0OC00OTJhLWIxZTktY2M4YzdiYTQ1MzEwIiwiZW1haWwiOiJqb25hdGhhbi56b2xsaW5nZXJAY2h1cmNob2ZqZXN1c2NocmlzdC5vcmciLCJleHRlcm5hbF9pZCI6IjY0MTg3NWM3LWM2ZGYtNGMxNS1hNmU5LTdlNzk2Y2NjMzJmMSIsIm5hbWUiOiJKb25hdGhhbiBab2xsaW5nZXIiLCJvcmdhbml6YXRpb25zIjoiQXJlYSBTcGVjaWFsaXN0cywiLCJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL3dzLzIwMDgvMDYvaWRlbnRpdHkvY2xhaW1zL3JvbGUiOiIxOCIsImlzcyI6Imh0dHBzOi8vd3d3Lmp1c3RzZXJ2ZS5vcmcifQ.US5F_y4pQJYBZSKw39IAynHK-Wb3K3QA1sNzL66lQ6w" - }, - { - "name": "Content-Length", - "value": "229" - }, - { - "name": "Origin", - "value": "https://www.justserve.org" - }, - { - "name": "Connection", - "value": "keep-alive" - }, - { - "name": "Cookie", - "value": "_fbp=fb.1.1758815969658.680488826508573002; NEXT_LOCALE=en-us; dtCookie=v_4_srv_2_sn_21322B6E90118493E0F96A34F31CA69F_perc_100000_ol_0_mul_1_app-3A8ada1280bee91d29_0_rcs-3Acss_0" - }, - { - "name": "Sec-Fetch-Dest", - "value": "empty" - }, - { - "name": "Sec-Fetch-Mode", - "value": "cors" - }, - { - "name": "Sec-Fetch-Site", - "value": "same-origin" - }, - { - "name": "Priority", - "value": "u=0" - } - ], - "cookies": [ - { - "name": "_fbp", - "value": "fb.1.1758815969658.680488826508573002" - }, - { - "name": "NEXT_LOCALE", - "value": "en-us" - }, - { - "name": "dtCookie", - "value": "v_4_srv_2_sn_21322B6E90118493E0F96A34F31CA69F_perc_100000_ol_0_mul_1_app-3A8ada1280bee91d29_0_rcs-3Acss_0" - } - ], - "queryString": [], - "headersSize": 1499, - "postData": { - "mimeType": "application/json", - "params": [], - "text": "{\"boundaryType\":1,\"id\":\"c4ec7291-d6b4-4d29-924d-bd3f4b826d94\",\"updateInfo\":[{\"userId\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"role\":8,\"addCivicGeographyIds\":[\"618a10a1-c47d-453f-9fd0-0fdfce4c1a19\"],\"removeCivicGeographyIds\":[]}]}" - } - }, - "response": { - "status": 200, - "statusText": "OK", - "httpVersion": "HTTP/1.1", - "headers": [ - { - "name": "Content-Length", - "value": "0" - }, - { - "name": "Server", - "value": "Kestrel" - }, - { - "name": "Expires", - "value": "Sat, 04 Oct 2025 17:01:48 GMT" - }, - { - "name": "Cache-Control", - "value": "max-age=0, no-cache, no-store" - }, - { - "name": "Pragma", - "value": "no-cache" - }, - { - "name": "Date", - "value": "Sat, 04 Oct 2025 17:01:48 GMT" - }, - { - "name": "Connection", - "value": "keep-alive" - }, - { - "name": "Server-Timing", - "value": "ak_p; desc=\"1759597307666_399924805_70831533_61448_425_50_0_-\";dur=1" - } - ], - "cookies": [], - "content": { - "mimeType": "text/xml", - "size": 0, - "text": "" - }, - "redirectURL": "", - "headersSize": 305, - "bodySize": 2033 - }, - "cache": {}, - "timings": { - "blocked": 0, - "dns": 0, - "connect": 0, - "ssl": 0, - "send": 0, - "wait": 663, - "receive": 0 - }, - "time": 663, - "_securityState": "secure", - "serverIPAddress": "104.68.113.88", - "connection": "443", - "pageref": "page_3" - }, - { - "startedDateTime": "2025-10-04T11:02:04.718-06:00", - "request": { - "bodySize": 0, - "method": "PUT", - "url": "https://www.justserve.org/api/v1/boundaries/rep/6a1b0bce-27be-4985-b221-a96c5612473c/org/577b00aa-17b4-400c-89ab-41cadf1c6ea3", - "httpVersion": "HTTP/1.1", - "headers": [ - { - "name": "Host", - "value": "www.justserve.org" - }, - { - "name": "User-Agent", - "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0" - }, - { - "name": "Accept", - "value": "application/json, text/plain, */*" - }, - { - "name": "Accept-Language", - "value": "en-US,en;q=0.5" - }, - { - "name": "Accept-Encoding", - "value": "gzip, deflate, br, zstd" - }, - { - "name": "Referer", - "value": "https://www.justserve.org/admin/users?tab=boundaryEdit&userId=6a1b0bce-27be-4985-b221-a96c5612473c" - }, - { - "name": "Authorization", - "value": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI2NDE4NzVjNy1jNmRmLTRjMTUtYTZlOS03ZTc5NmNjYzMyZjEiLCJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoiNjQxODc1YzctYzZkZi00YzE1LWE2ZTktN2U3OTZjY2MzMmYxIiwianRpIjoiM2Y5ZjhiYjMtYmU0OC00OTJhLWIxZTktY2M4YzdiYTQ1MzEwIiwiZW1haWwiOiJqb25hdGhhbi56b2xsaW5nZXJAY2h1cmNob2ZqZXN1c2NocmlzdC5vcmciLCJleHRlcm5hbF9pZCI6IjY0MTg3NWM3LWM2ZGYtNGMxNS1hNmU5LTdlNzk2Y2NjMzJmMSIsIm5hbWUiOiJKb25hdGhhbiBab2xsaW5nZXIiLCJvcmdhbml6YXRpb25zIjoiQXJlYSBTcGVjaWFsaXN0cywiLCJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL3dzLzIwMDgvMDYvaWRlbnRpdHkvY2xhaW1zL3JvbGUiOiIxOCIsImlzcyI6Imh0dHBzOi8vd3d3Lmp1c3RzZXJ2ZS5vcmcifQ.US5F_y4pQJYBZSKw39IAynHK-Wb3K3QA1sNzL66lQ6w" - }, - { - "name": "Origin", - "value": "https://www.justserve.org" - }, - { - "name": "Connection", - "value": "keep-alive" - }, - { - "name": "Cookie", - "value": "_fbp=fb.1.1758815969658.680488826508573002; NEXT_LOCALE=en-us; dtCookie=v_4_srv_2_sn_21322B6E90118493E0F96A34F31CA69F_perc_100000_ol_0_mul_1_app-3A8ada1280bee91d29_0_rcs-3Acss_0" - }, - { - "name": "Sec-Fetch-Dest", - "value": "empty" - }, - { - "name": "Sec-Fetch-Mode", - "value": "cors" - }, - { - "name": "Sec-Fetch-Site", - "value": "same-origin" - }, - { - "name": "Content-Length", - "value": "0" - } - ], - "cookies": [ - { - "name": "_fbp", - "value": "fb.1.1758815969658.680488826508573002" - }, - { - "name": "NEXT_LOCALE", - "value": "en-us" - }, - { - "name": "dtCookie", - "value": "v_4_srv_2_sn_21322B6E90118493E0F96A34F31CA69F_perc_100000_ol_0_mul_1_app-3A8ada1280bee91d29_0_rcs-3Acss_0" - } - ], - "queryString": [], - "headersSize": 1525 - }, - "response": { - "status": 200, - "statusText": "OK", - "httpVersion": "HTTP/1.1", - "headers": [ - { - "name": "Content-Length", - "value": "0" - }, - { - "name": "Server", - "value": "Kestrel" - }, - { - "name": "Expires", - "value": "Sat, 04 Oct 2025 17:01:49 GMT" - }, - { - "name": "Cache-Control", - "value": "max-age=0, no-cache, no-store" - }, - { - "name": "Pragma", - "value": "no-cache" - }, - { - "name": "Date", - "value": "Sat, 04 Oct 2025 17:01:49 GMT" - }, - { - "name": "Connection", - "value": "keep-alive" - }, - { - "name": "Server-Timing", - "value": "ak_p; desc=\"1759597308421_399924805_70839405_94858_588_56_0_-\";dur=1" - } - ], - "cookies": [], - "content": { - "mimeType": "text/xml", - "size": 0, - "text": "" - }, - "redirectURL": "", - "headersSize": 305, - "bodySize": 305 - }, - "cache": {}, - "timings": { - "blocked": 0, - "dns": 0, - "connect": 0, - "ssl": 0, - "send": 0, - "wait": 1040, - "receive": 0 - }, - "time": 1040, - "_securityState": "secure", - "serverIPAddress": "104.68.113.88", - "connection": "443", - "pageref": "page_3" - }, - { - "startedDateTime": "2025-10-04T11:02:05.777-06:00", - "request": { - "bodySize": 0, - "method": "GET", - "url": "https://www.justserve.org/api/v1/users/641875c7-c6df-4c15-a6e9-7e796ccc32f1/boundaries/church/highest", - "httpVersion": "HTTP/1.1", - "headers": [ - { - "name": "Host", - "value": "www.justserve.org" - }, - { - "name": "User-Agent", - "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0" - }, - { - "name": "Accept", - "value": "application/json, text/plain, */*" - }, - { - "name": "Accept-Language", - "value": "en-US,en;q=0.5" - }, - { - "name": "Accept-Encoding", - "value": "gzip, deflate, br, zstd" - }, - { - "name": "Referer", - "value": "https://www.justserve.org/admin/users?tab=boundaryEdit&userId=6a1b0bce-27be-4985-b221-a96c5612473c" - }, - { - "name": "Authorization", - "value": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI2NDE4NzVjNy1jNmRmLTRjMTUtYTZlOS03ZTc5NmNjYzMyZjEiLCJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoiNjQxODc1YzctYzZkZi00YzE1LWE2ZTktN2U3OTZjY2MzMmYxIiwianRpIjoiM2Y5ZjhiYjMtYmU0OC00OTJhLWIxZTktY2M4YzdiYTQ1MzEwIiwiZW1haWwiOiJqb25hdGhhbi56b2xsaW5nZXJAY2h1cmNob2ZqZXN1c2NocmlzdC5vcmciLCJleHRlcm5hbF9pZCI6IjY0MTg3NWM3LWM2ZGYtNGMxNS1hNmU5LTdlNzk2Y2NjMzJmMSIsIm5hbWUiOiJKb25hdGhhbiBab2xsaW5nZXIiLCJvcmdhbml6YXRpb25zIjoiQXJlYSBTcGVjaWFsaXN0cywiLCJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL3dzLzIwMDgvMDYvaWRlbnRpdHkvY2xhaW1zL3JvbGUiOiIxOCIsImlzcyI6Imh0dHBzOi8vd3d3Lmp1c3RzZXJ2ZS5vcmcifQ.US5F_y4pQJYBZSKw39IAynHK-Wb3K3QA1sNzL66lQ6w" - }, - { - "name": "Connection", - "value": "keep-alive" - }, - { - "name": "Cookie", - "value": "_fbp=fb.1.1758815969658.680488826508573002; NEXT_LOCALE=en-us; dtCookie=v_4_srv_2_sn_21322B6E90118493E0F96A34F31CA69F_perc_100000_ol_0_mul_1_app-3A8ada1280bee91d29_0_rcs-3Acss_0" - }, - { - "name": "Sec-Fetch-Dest", - "value": "empty" - }, - { - "name": "Sec-Fetch-Mode", - "value": "cors" - }, - { - "name": "Sec-Fetch-Site", - "value": "same-origin" - } - ], - "cookies": [ - { - "name": "_fbp", - "value": "fb.1.1758815969658.680488826508573002" - }, - { - "name": "NEXT_LOCALE", - "value": "en-us" - }, - { - "name": "dtCookie", - "value": "v_4_srv_2_sn_21322B6E90118493E0F96A34F31CA69F_perc_100000_ol_0_mul_1_app-3A8ada1280bee91d29_0_rcs-3Acss_0" - } - ], - "queryString": [], - "headersSize": 1447 - }, - "response": { - "status": 200, - "statusText": "OK", - "httpVersion": "HTTP/1.1", - "headers": [ - { - "name": "Content-Type", - "value": "application/json; charset=utf-8" - }, - { - "name": "Content-Length", - "value": "192" - }, - { - "name": "Server", - "value": "Kestrel" - }, - { - "name": "Expires", - "value": "Sat, 04 Oct 2025 17:01:49 GMT" - }, - { - "name": "Cache-Control", - "value": "max-age=0, no-cache, no-store" - }, - { - "name": "Pragma", - "value": "no-cache" - }, - { - "name": "Date", - "value": "Sat, 04 Oct 2025 17:01:49 GMT" - }, - { - "name": "Connection", - "value": "keep-alive" - }, - { - "name": "Server-Timing", - "value": "edge; dur=1" - }, - { - "name": "Server-Timing", - "value": "origin; dur=123" - }, - { - "name": "Server-Timing", - "value": "cdn-cache; desc=MISS" - }, - { - "name": "Server-Timing", - "value": "ak_p; desc=\"1759597309485_399924805_70839724_12321_588_63_0_-\";dur=1" - } - ], - "cookies": [], - "content": { - "mimeType": "application/json; charset=utf-8", - "size": 192, - "text": "[{\"id\":\"Global\",\"ldsGeographyId\":\"d6165973-8154-48a1-93cd-4f34f9b31f48\",\"unitId\":\"Global\",\"name\":\"Global\",\"areaId\":null,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"type\":0,\"manageable\":true}]" - }, - "redirectURL": "", - "headersSize": 406, - "bodySize": 598 - }, - "cache": {}, - "timings": { - "blocked": 0, - "dns": 0, - "connect": 0, - "ssl": 0, - "send": 0, - "wait": 161, - "receive": 0 - }, - "time": 161, - "_securityState": "secure", - "serverIPAddress": "104.68.113.88", - "connection": "443", - "pageref": "page_3" - }, - { - "startedDateTime": "2025-10-04T11:02:05.803-06:00", - "request": { - "bodySize": 0, - "method": "GET", - "url": "https://www.justserve.org/api/v1/users/641875c7-c6df-4c15-a6e9-7e796ccc32f1/boundaries/civic/highest", - "httpVersion": "HTTP/1.1", - "headers": [ - { - "name": "Host", - "value": "www.justserve.org" - }, - { - "name": "User-Agent", - "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0" - }, - { - "name": "Accept", - "value": "application/json, text/plain, */*" - }, - { - "name": "Accept-Language", - "value": "en-US,en;q=0.5" - }, - { - "name": "Accept-Encoding", - "value": "gzip, deflate, br, zstd" - }, - { - "name": "Referer", - "value": "https://www.justserve.org/admin/users?tab=boundaryEdit&userId=6a1b0bce-27be-4985-b221-a96c5612473c" - }, - { - "name": "Authorization", - "value": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI2NDE4NzVjNy1jNmRmLTRjMTUtYTZlOS03ZTc5NmNjYzMyZjEiLCJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoiNjQxODc1YzctYzZkZi00YzE1LWE2ZTktN2U3OTZjY2MzMmYxIiwianRpIjoiM2Y5ZjhiYjMtYmU0OC00OTJhLWIxZTktY2M4YzdiYTQ1MzEwIiwiZW1haWwiOiJqb25hdGhhbi56b2xsaW5nZXJAY2h1cmNob2ZqZXN1c2NocmlzdC5vcmciLCJleHRlcm5hbF9pZCI6IjY0MTg3NWM3LWM2ZGYtNGMxNS1hNmU5LTdlNzk2Y2NjMzJmMSIsIm5hbWUiOiJKb25hdGhhbiBab2xsaW5nZXIiLCJvcmdhbml6YXRpb25zIjoiQXJlYSBTcGVjaWFsaXN0cywiLCJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL3dzLzIwMDgvMDYvaWRlbnRpdHkvY2xhaW1zL3JvbGUiOiIxOCIsImlzcyI6Imh0dHBzOi8vd3d3Lmp1c3RzZXJ2ZS5vcmcifQ.US5F_y4pQJYBZSKw39IAynHK-Wb3K3QA1sNzL66lQ6w" - }, - { - "name": "Connection", - "value": "keep-alive" - }, - { - "name": "Cookie", - "value": "_fbp=fb.1.1758815969658.680488826508573002; NEXT_LOCALE=en-us; dtCookie=v_4_srv_2_sn_21322B6E90118493E0F96A34F31CA69F_perc_100000_ol_0_mul_1_app-3A8ada1280bee91d29_0_rcs-3Acss_0" - }, - { - "name": "Sec-Fetch-Dest", - "value": "empty" - }, - { - "name": "Sec-Fetch-Mode", - "value": "cors" - }, - { - "name": "Sec-Fetch-Site", - "value": "same-origin" - } - ], - "cookies": [ - { - "name": "_fbp", - "value": "fb.1.1758815969658.680488826508573002" - }, - { - "name": "NEXT_LOCALE", - "value": "en-us" - }, - { - "name": "dtCookie", - "value": "v_4_srv_2_sn_21322B6E90118493E0F96A34F31CA69F_perc_100000_ol_0_mul_1_app-3A8ada1280bee91d29_0_rcs-3Acss_0" - } - ], - "queryString": [], - "headersSize": 1446 - }, - "response": { - "status": 200, - "statusText": "OK", - "httpVersion": "HTTP/1.1", - "headers": [ - { - "name": "Content-Type", - "value": "application/json; charset=utf-8" - }, - { - "name": "Content-Length", - "value": "5968" - }, - { - "name": "Server", - "value": "Kestrel" - }, - { - "name": "Expires", - "value": "Sat, 04 Oct 2025 17:01:49 GMT" - }, - { - "name": "Cache-Control", - "value": "max-age=0, no-cache, no-store" - }, - { - "name": "Pragma", - "value": "no-cache" - }, - { - "name": "Date", - "value": "Sat, 04 Oct 2025 17:01:49 GMT" - }, - { - "name": "Connection", - "value": "keep-alive" - }, - { - "name": "Server-Timing", - "value": "edge; dur=1" - }, - { - "name": "Server-Timing", - "value": "origin; dur=143" - }, - { - "name": "Server-Timing", - "value": "cdn-cache; desc=MISS" - }, - { - "name": "Server-Timing", - "value": "ak_p; desc=\"1759597309504_399924805_70812050_14261_562_48_0_-\";dur=1" - } - ], - "cookies": [], - "content": { - "mimeType": "application/json; charset=utf-8", - "size": 5968, - "text": "[{\"id\":\"3565052e-97d1-427f-962e-5d9582a69a6d\",\"country\":\"Argentina\",\"countryCode\":\"arg\",\"civicCountryId\":\"3565052e-97d1-427f-962e-5d9582a69a6d\",\"state\":null,\"civicStateId\":null,\"county\":null,\"civicCountyId\":null,\"city\":null,\"civicCityId\":null,\"neighborhood\":null,\"civicNeighborhoodId\":null,\"zipcode\":null,\"type\":5,\"manageable\":true},{\"id\":\"1baddd84-1b4b-4424-89e7-9b486a6e77f4\",\"country\":\"Australia\",\"countryCode\":\"aus\",\"civicCountryId\":\"1baddd84-1b4b-4424-89e7-9b486a6e77f4\",\"state\":null,\"civicStateId\":null,\"county\":null,\"civicCountyId\":null,\"city\":null,\"civicCityId\":null,\"neighborhood\":null,\"civicNeighborhoodId\":null,\"zipcode\":null,\"type\":5,\"manageable\":true},{\"id\":\"125c570e-75de-4293-9993-94b37c8c2ba3\",\"country\":\"Austria\",\"countryCode\":\"aut\",\"civicCountryId\":\"125c570e-75de-4293-9993-94b37c8c2ba3\",\"state\":null,\"civicStateId\":null,\"county\":null,\"civicCountyId\":null,\"city\":null,\"civicCityId\":null,\"neighborhood\":null,\"civicNeighborhoodId\":null,\"zipcode\":null,\"type\":5,\"manageable\":true},{\"id\":\"f4145cb6-1536-4a10-a38c-733c0cca1beb\",\"country\":\"Canada\",\"countryCode\":\"can\",\"civicCountryId\":\"f4145cb6-1536-4a10-a38c-733c0cca1beb\",\"state\":null,\"civicStateId\":null,\"county\":null,\"civicCountyId\":null,\"city\":null,\"civicCityId\":null,\"neighborhood\":null,\"civicNeighborhoodId\":null,\"zipcode\":null,\"type\":5,\"manageable\":true},{\"id\":\"7af718c1-b525-4baf-9cfe-0871ca6637fb\",\"country\":\"Chile\",\"countryCode\":\"chl\",\"civicCountryId\":\"7af718c1-b525-4baf-9cfe-0871ca6637fb\",\"state\":null,\"civicStateId\":null,\"county\":null,\"civicCountyId\":null,\"city\":null,\"civicCityId\":null,\"neighborhood\":null,\"civicNeighborhoodId\":null,\"zipcode\":null,\"type\":5,\"manageable\":true},{\"id\":\"041ffe5f-4de9-4426-96b6-40aabc6e28e6\",\"country\":\"France\",\"countryCode\":\"fra\",\"civicCountryId\":\"041ffe5f-4de9-4426-96b6-40aabc6e28e6\",\"state\":null,\"civicStateId\":null,\"county\":null,\"civicCountyId\":null,\"city\":null,\"civicCityId\":null,\"neighborhood\":null,\"civicNeighborhoodId\":null,\"zipcode\":null,\"type\":5,\"manageable\":true},{\"id\":\"69b65104-c3c2-48b8-927b-6e4d48dedf24\",\"country\":\"Germany\",\"countryCode\":\"deu\",\"civicCountryId\":\"69b65104-c3c2-48b8-927b-6e4d48dedf24\",\"state\":null,\"civicStateId\":null,\"county\":null,\"civicCountyId\":null,\"city\":null,\"civicCityId\":null,\"neighborhood\":null,\"civicNeighborhoodId\":null,\"zipcode\":null,\"type\":5,\"manageable\":true},{\"id\":\"4c247e2d-1a2e-4b31-bf48-4776ef17a121\",\"country\":\"Hungary\",\"countryCode\":\"hun\",\"civicCountryId\":\"4c247e2d-1a2e-4b31-bf48-4776ef17a121\",\"state\":null,\"civicStateId\":null,\"county\":null,\"civicCountyId\":null,\"city\":null,\"civicCityId\":null,\"neighborhood\":null,\"civicNeighborhoodId\":null,\"zipcode\":null,\"type\":5,\"manageable\":true},{\"id\":\"99ae0370-19cd-436b-9b01-df4be5bf7484\",\"country\":\"Ireland\",\"countryCode\":\"irl\",\"civicCountryId\":\"99ae0370-19cd-436b-9b01-df4be5bf7484\",\"state\":null,\"civicStateId\":null,\"county\":null,\"civicCountyId\":null,\"city\":null,\"civicCityId\":null,\"neighborhood\":null,\"civicNeighborhoodId\":null,\"zipcode\":null,\"type\":5,\"manageable\":true},{\"id\":\"e842b2ee-8830-46c2-8748-e7dbbf40d419\",\"country\":\"Mexico\",\"countryCode\":\"mex\",\"civicCountryId\":\"e842b2ee-8830-46c2-8748-e7dbbf40d419\",\"state\":null,\"civicStateId\":null,\"county\":null,\"civicCountyId\":null,\"city\":null,\"civicCityId\":null,\"neighborhood\":null,\"civicNeighborhoodId\":null,\"zipcode\":null,\"type\":5,\"manageable\":true},{\"id\":\"bb9e19b1-cdf7-42a5-9ce3-ddc2d036a948\",\"country\":\"New Zealand\",\"countryCode\":\"nzl\",\"civicCountryId\":\"bb9e19b1-cdf7-42a5-9ce3-ddc2d036a948\",\"state\":null,\"civicStateId\":null,\"county\":null,\"civicCountyId\":null,\"city\":null,\"civicCityId\":null,\"neighborhood\":null,\"civicNeighborhoodId\":null,\"zipcode\":null,\"type\":5,\"manageable\":true},{\"id\":\"e3e76bc5-e28c-487a-a61f-81c18956a59e\",\"country\":\"Philippines\",\"countryCode\":\"phl\",\"civicCountryId\":\"e3e76bc5-e28c-487a-a61f-81c18956a59e\",\"state\":null,\"civicStateId\":null,\"county\":null,\"civicCountyId\":null,\"city\":null,\"civicCityId\":null,\"neighborhood\":null,\"civicNeighborhoodId\":null,\"zipcode\":null,\"type\":5,\"manageable\":true},{\"id\":\"ebe471f6-96c4-469d-89c0-46bb0949f460\",\"country\":\"Portugal\",\"countryCode\":\"prt\",\"civicCountryId\":\"ebe471f6-96c4-469d-89c0-46bb0949f460\",\"state\":null,\"civicStateId\":null,\"county\":null,\"civicCountyId\":null,\"city\":null,\"civicCityId\":null,\"neighborhood\":null,\"civicNeighborhoodId\":null,\"zipcode\":null,\"type\":5,\"manageable\":true},{\"id\":\"52cec000-725f-4179-a109-0d1b3429c3ac\",\"country\":\"Puerto Rico\",\"countryCode\":\"pri\",\"civicCountryId\":\"52cec000-725f-4179-a109-0d1b3429c3ac\",\"state\":null,\"civicStateId\":null,\"county\":null,\"civicCountyId\":null,\"city\":null,\"civicCityId\":null,\"neighborhood\":null,\"civicNeighborhoodId\":null,\"zipcode\":null,\"type\":5,\"manageable\":true},{\"id\":\"3fdba8e9-24e1-40ff-8138-9f7916f5b867\",\"country\":\"Spain\",\"countryCode\":\"esp\",\"civicCountryId\":\"3fdba8e9-24e1-40ff-8138-9f7916f5b867\",\"state\":null,\"civicStateId\":null,\"county\":null,\"civicCountyId\":null,\"city\":null,\"civicCityId\":null,\"neighborhood\":null,\"civicNeighborhoodId\":null,\"zipcode\":null,\"type\":5,\"manageable\":true},{\"id\":\"778c6337-6b31-42be-8d39-a78ca5acf182\",\"country\":\"Switzerland\",\"countryCode\":\"che\",\"civicCountryId\":\"778c6337-6b31-42be-8d39-a78ca5acf182\",\"state\":null,\"civicStateId\":null,\"county\":null,\"civicCountyId\":null,\"city\":null,\"civicCityId\":null,\"neighborhood\":null,\"civicNeighborhoodId\":null,\"zipcode\":null,\"type\":5,\"manageable\":true},{\"id\":\"c44dfc46-0e99-473b-baa8-346834fe98c1\",\"country\":\"United Kingdom\",\"countryCode\":\"gbr\",\"civicCountryId\":\"c44dfc46-0e99-473b-baa8-346834fe98c1\",\"state\":null,\"civicStateId\":null,\"county\":null,\"civicCountyId\":null,\"city\":null,\"civicCityId\":null,\"neighborhood\":null,\"civicNeighborhoodId\":null,\"zipcode\":null,\"type\":5,\"manageable\":true},{\"id\":\"7fc9e505-6232-47b3-ab17-daa4f4073b0b\",\"country\":\"United States\",\"countryCode\":\"usa\",\"civicCountryId\":\"7fc9e505-6232-47b3-ab17-daa4f4073b0b\",\"state\":null,\"civicStateId\":null,\"county\":null,\"civicCountyId\":null,\"city\":null,\"civicCityId\":null,\"neighborhood\":null,\"civicNeighborhoodId\":null,\"zipcode\":null,\"type\":5,\"manageable\":true}]" - }, - "redirectURL": "", - "headersSize": 407, - "bodySize": 6375 - }, - "cache": {}, - "timings": { - "blocked": -1, - "dns": 0, - "connect": 0, - "ssl": 0, - "send": 0, - "wait": 173, - "receive": 2 - }, - "time": 175, - "_securityState": "secure", - "serverIPAddress": "104.68.113.88", - "connection": "443", - "pageref": "page_3" - }, - { - "startedDateTime": "2025-10-04T11:02:05.806-06:00", - "request": { - "bodySize": 0, - "method": "GET", - "url": "https://www.justserve.org/api/v1/users/6a1b0bce-27be-4985-b221-a96c5612473c/bounded", - "httpVersion": "HTTP/1.1", - "headers": [ - { - "name": "Host", - "value": "www.justserve.org" - }, - { - "name": "User-Agent", - "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0" - }, - { - "name": "Accept", - "value": "application/json, text/plain, */*" - }, - { - "name": "Accept-Language", - "value": "en-US,en;q=0.5" - }, - { - "name": "Accept-Encoding", - "value": "gzip, deflate, br, zstd" - }, - { - "name": "Referer", - "value": "https://www.justserve.org/admin/users?tab=boundaryEdit&userId=6a1b0bce-27be-4985-b221-a96c5612473c" - }, - { - "name": "Authorization", - "value": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI2NDE4NzVjNy1jNmRmLTRjMTUtYTZlOS03ZTc5NmNjYzMyZjEiLCJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoiNjQxODc1YzctYzZkZi00YzE1LWE2ZTktN2U3OTZjY2MzMmYxIiwianRpIjoiM2Y5ZjhiYjMtYmU0OC00OTJhLWIxZTktY2M4YzdiYTQ1MzEwIiwiZW1haWwiOiJqb25hdGhhbi56b2xsaW5nZXJAY2h1cmNob2ZqZXN1c2NocmlzdC5vcmciLCJleHRlcm5hbF9pZCI6IjY0MTg3NWM3LWM2ZGYtNGMxNS1hNmU5LTdlNzk2Y2NjMzJmMSIsIm5hbWUiOiJKb25hdGhhbiBab2xsaW5nZXIiLCJvcmdhbml6YXRpb25zIjoiQXJlYSBTcGVjaWFsaXN0cywiLCJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL3dzLzIwMDgvMDYvaWRlbnRpdHkvY2xhaW1zL3JvbGUiOiIxOCIsImlzcyI6Imh0dHBzOi8vd3d3Lmp1c3RzZXJ2ZS5vcmcifQ.US5F_y4pQJYBZSKw39IAynHK-Wb3K3QA1sNzL66lQ6w" - }, - { - "name": "Connection", - "value": "keep-alive" - }, - { - "name": "Cookie", - "value": "_fbp=fb.1.1758815969658.680488826508573002; NEXT_LOCALE=en-us; dtCookie=v_4_srv_2_sn_21322B6E90118493E0F96A34F31CA69F_perc_100000_ol_0_mul_1_app-3A8ada1280bee91d29_0_rcs-3Acss_0" - }, - { - "name": "Sec-Fetch-Dest", - "value": "empty" - }, - { - "name": "Sec-Fetch-Mode", - "value": "cors" - }, - { - "name": "Sec-Fetch-Site", - "value": "same-origin" - } - ], - "cookies": [ - { - "name": "_fbp", - "value": "fb.1.1758815969658.680488826508573002" - }, - { - "name": "NEXT_LOCALE", - "value": "en-us" - }, - { - "name": "dtCookie", - "value": "v_4_srv_2_sn_21322B6E90118493E0F96A34F31CA69F_perc_100000_ol_0_mul_1_app-3A8ada1280bee91d29_0_rcs-3Acss_0" - } - ], - "queryString": [], - "headersSize": 1429 - }, - "response": { - "status": 200, - "statusText": "OK", - "httpVersion": "HTTP/1.1", - "headers": [ - { - "name": "Content-Type", - "value": "application/json; charset=utf-8" - }, - { - "name": "Content-Length", - "value": "52442" - }, - { - "name": "Server", - "value": "Kestrel" - }, - { - "name": "Expires", - "value": "Sat, 04 Oct 2025 17:01:50 GMT" - }, - { - "name": "Cache-Control", - "value": "max-age=0, no-cache, no-store" - }, - { - "name": "Pragma", - "value": "no-cache" - }, - { - "name": "Date", - "value": "Sat, 04 Oct 2025 17:01:50 GMT" - }, - { - "name": "Connection", - "value": "keep-alive" - }, - { - "name": "Server-Timing", - "value": "edge; dur=1" - }, - { - "name": "Server-Timing", - "value": "origin; dur=820" - }, - { - "name": "Server-Timing", - "value": "cdn-cache; desc=MISS" - }, - { - "name": "Server-Timing", - "value": "ak_p; desc=\"1759597309512_399924805_70812231_81800_801_56_0_-\";dur=1" - } - ], - "cookies": [], - "content": { - "mimeType": "application/json; charset=utf-8", - "size": 52442, - "text": "{\"id\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"firstName\":\"Jennifer\",\"lastName\":\"Hale\",\"role\":8,\"isLead\":true,\"email\":\"jennifer.hale@justserve.org\",\"phone\":\"360991799\",\"keywords\":null,\"isActive\":true,\"updatedBy\":{\"name\":\"Zollinger, Jonathan\",\"boundaryName\":\"Des Moines Iowa Mount Pisgah Stake\",\"role\":0,\"isLead\":false,\"updatedDate\":\"2025-10-04T17:01:47.7516540+00:00\"},\"permissions\":[{\"id\":\"4b00d35c-f921-44ee-9688-cbcedcfa22fb\",\"boundary\":\"Des Moines Iowa Mount Pisgah Stake\",\"admins\":[{\"id\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"firstName\":\"Jennifer\",\"lastName\":\"Hale\",\"type\":8}]}],\"civicBoundaries\":[{\"id\":\"618a10a1-c47d-453f-9fd0-0fdfce4c1a19\",\"name\":\"Polk County, Iowa\",\"type\":7,\"civicCountryId\":\"7fc9e505-6232-47b3-ab17-daa4f4073b0b\",\"civicStateId\":\"6a501b77-21ac-45f9-81bf-9a91a64300ea\",\"civicCountyId\":\"618a10a1-c47d-453f-9fd0-0fdfce4c1a19\",\"civicCityId\":null}],\"churchBoundaries\":[{\"id\":\"c4ec7291-d6b4-4d29-924d-bd3f4b826d94\",\"name\":\"Des Moines Iowa Mount Pisgah Stake\",\"type\":4,\"civicCountryId\":null,\"civicStateId\":null,\"civicCountyId\":null,\"civicCityId\":null}],\"organizations\":[{\"id\":\"577b00aa-17b4-400c-89ab-41cadf1c6ea3\",\"endorsements\":[],\"name\":\"Blank Park Zoo\",\"url\":\"blankparkzoo\",\"location\":{\"mapId\":null,\"fullDisplayAddress\":\"7401 Southwest 9th Street Des Moines Iowa 50315-6667 United States\",\"address\":\"7401 Southwest 9th Street\",\"suite\":null,\"city\":\"Des Moines\",\"civicCityId\":\"498d77c9-5f41-4693-8d37-6fbe2106159b\",\"neighborhood\":null,\"county\":\"Polk County\",\"state\":\"Iowa\",\"postal\":\"50315-6667\",\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":41.5197844,\"longitude\":-93.6251551,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":null},\"status\":0,\"isLead\":false,\"type\":1},{\"id\":\"96f61337-2798-4150-8232-678bd17ebf5f\",\"endorsements\":[],\"name\":\"Joppa\",\"url\":\"joppa\",\"location\":{\"mapId\":null,\"fullDisplayAddress\":\"2326 Euclid Avenue Des Moines Iowa 50310 United States\",\"address\":\"2326 Euclid Avenue\",\"suite\":null,\"city\":\"Des Moines\",\"civicCityId\":\"348ea4c2-b55d-4ebc-819d-1f07df04efd9\",\"neighborhood\":null,\"county\":\"Polk County\",\"state\":\"Iowa\",\"postal\":\"50310\",\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":41.62698719999999,\"longitude\":-93.6478323,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":null},\"status\":1,\"isLead\":false,\"type\":1}],\"pendingOrganizations\":[],\"pendingProjects\":[],\"activeProjects\":[{\"id\":\"141ced24-c4cb-4c5d-b7f6-64f2dcd53808\",\"name\":\"Joppa Resource Center Volunteer\",\"projectOwners\":[{\"id\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"ownerType\":1},{\"id\":\"96f61337-2798-4150-8232-678bd17ebf5f\",\"ownerType\":2}],\"locations\":[{\"mapId\":null,\"fullDisplayAddress\":\"2326 Euclid Avenue Des Moines Iowa 50310 United States\",\"address\":\"2326 Euclid Avenue\",\"suite\":null,\"city\":\"Des Moines\",\"civicCityId\":\"348ea4c2-b55d-4ebc-819d-1f07df04efd9\",\"neighborhood\":null,\"county\":\"Polk County\",\"state\":\"Iowa\",\"postal\":\"50310\",\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":41.62698719999999,\"longitude\":-93.6478323,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":\"Central Standard Time\"}],\"status\":1,\"organization\":{\"authorization\":false,\"organizationAuthorization\":true,\"name\":\"Joppa\",\"description\":\"

    To create communities of unconditional love, support, and hope for the homeless, as we work together to prevent and ultimately end homelessness.


    Joppa collaborates with community partners, help homeless people access existing resources, and mobilize private donations from families, churches, and organizations to meet unmet needs in homeless services, housing, and education.


    How We Do It:

    Homeless Services

    Housing Development

    Education Advocacy

    \",\"url\":\"joppa\",\"internalUrl\":null,\"organizationId\":\"96f61337-2798-4150-8232-678bd17ebf5f\",\"reviewedBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"reviewedOn\":\"2024-10-06T16:29:08.7250580+00:00\",\"linked\":false,\"logo\":\"36cc3675-e053-4da7-9041-8876c4395b73.png\"},\"createdBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"cbfName\":\"Hillary\",\"cblName\":\"Nielsen\",\"startDate\":\"2024-10-06T10:00:00.0000000\",\"endDate\":\"2025-10-06T05:00:00.0000000\",\"isActive\":true,\"isUnlistedProject\":false,\"ongoing\":true,\"isDirectlyOwnedOrSponsored\":true,\"isOwnedOrRepresentedViaOrganization\":false,\"volunteersNeeded\":0,\"volunteersAcquired\":0,\"projectOwnerName\":\"Jennifer Hale\",\"projectOwnerUserId\":\"6a1b0bce-27be-4985-b221-a96c5612473c\"},{\"id\":\"41cbc2c8-1484-416b-8278-52701238f294\",\"name\":\"Joppa Second Saturday Work Days\",\"projectOwners\":[{\"id\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"ownerType\":1},{\"id\":\"96f61337-2798-4150-8232-678bd17ebf5f\",\"ownerType\":2}],\"locations\":[{\"mapId\":null,\"fullDisplayAddress\":\"2326 Euclid Avenue Des Moines Iowa 50310 United States\",\"address\":\"2326 Euclid Avenue\",\"suite\":null,\"city\":\"Des Moines\",\"civicCityId\":\"348ea4c2-b55d-4ebc-819d-1f07df04efd9\",\"neighborhood\":null,\"county\":\"Polk County\",\"state\":\"Iowa\",\"postal\":\"50310\",\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":41.62698719999999,\"longitude\":-93.6478323,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":\"Central Standard Time\"}],\"status\":1,\"organization\":{\"authorization\":false,\"organizationAuthorization\":true,\"name\":\"Joppa\",\"description\":\"

    To create communities of unconditional love, support, and hope for the homeless, as we work together to prevent and ultimately end homelessness.


    Joppa collaborates with community partners, help homeless people access existing resources, and mobilize private donations from families, churches, and organizations to meet unmet needs in homeless services, housing, and education.


    How We Do It:

    Homeless Services

    Housing Development

    Education Advocacy

    \",\"url\":\"joppa\",\"internalUrl\":null,\"organizationId\":\"96f61337-2798-4150-8232-678bd17ebf5f\",\"reviewedBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"reviewedOn\":\"2024-10-06T16:14:10.8706590+00:00\",\"linked\":false,\"logo\":\"36cc3675-e053-4da7-9041-8876c4395b73.png\"},\"createdBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"cbfName\":\"Hillary\",\"cblName\":\"Nielsen\",\"startDate\":\"2024-10-06T10:00:00.0000000\",\"endDate\":\"2025-10-06T05:00:00.0000000\",\"isActive\":true,\"isUnlistedProject\":false,\"ongoing\":true,\"isDirectlyOwnedOrSponsored\":true,\"isOwnedOrRepresentedViaOrganization\":false,\"volunteersNeeded\":0,\"volunteersAcquired\":0,\"projectOwnerName\":\"Jennifer Hale\",\"projectOwnerUserId\":\"6a1b0bce-27be-4985-b221-a96c5612473c\"}],\"historicalProjects\":[{\"id\":\"799cd210-b216-47d1-9748-2bb2f55e96e6\",\"name\":\"Volunteer from Home: Food Bank of Iowa DIY T-Shirt Tote Bags\",\"projectOwners\":[{\"id\":\"6345bdb5-8730-476a-8bc0-f53e249e613e\",\"ownerType\":2},{\"id\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"ownerType\":1}],\"locations\":[{\"mapId\":null,\"fullDisplayAddress\":\"2220 East 17th Street Des Moines Iowa 50316-2114 United States\",\"address\":\"2220 East 17th Street\",\"suite\":null,\"city\":\"Des Moines\",\"civicCityId\":\"348ea4c2-b55d-4ebc-819d-1f07df04efd9\",\"neighborhood\":null,\"county\":\"Polk County\",\"state\":\"Iowa\",\"postal\":\"50316-2114\",\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":41.6142723,\"longitude\":-93.592185,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":\"Central Standard Time\"}],\"status\":1,\"organization\":{\"authorization\":false,\"organizationAuthorization\":true,\"name\":\"Food Bank of Iowa\",\"description\":\"Iowa Food Bank acquires food from various donors, retailers, producers, and government programs, etc. to distribute through a network of about 500 partner agencies (pantries, shelters, schools, and others) to serve Iowans in need. These partnerships result in the distribution of 10 million meals per year.\\n\\nVolunteers are needed during the COVID-19 crisis. Please see opportunities below.\",\"url\":\"foodbankofiowa\",\"internalUrl\":null,\"organizationId\":\"6345bdb5-8730-476a-8bc0-f53e249e613e\",\"reviewedBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"reviewedOn\":\"2024-09-06T20:27:57.0038420+00:00\",\"linked\":false,\"logo\":\"7ade9d3f-0991-466a-823b-9761308f3242.png\"},\"createdBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"cbfName\":\"Hillary\",\"cblName\":\"Nielsen\",\"startDate\":\"2024-09-06T05:00:00.0000000\",\"endDate\":\"2025-09-06T05:00:00.0000000\",\"isActive\":false,\"isUnlistedProject\":false,\"ongoing\":true,\"isDirectlyOwnedOrSponsored\":true,\"isOwnedOrRepresentedViaOrganization\":false,\"volunteersNeeded\":0,\"volunteersAcquired\":0,\"projectOwnerName\":\"Jennifer Hale\",\"projectOwnerUserId\":\"6345bdb5-8730-476a-8bc0-f53e249e613e\"},{\"id\":\"8eab3695-c6f7-41bf-87e6-fd78612e4c05\",\"name\":\"Food Bank of Iowa Skills-Based Volunteering\",\"projectOwners\":[{\"id\":\"6345bdb5-8730-476a-8bc0-f53e249e613e\",\"ownerType\":2},{\"id\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"ownerType\":1}],\"locations\":[{\"mapId\":null,\"fullDisplayAddress\":\"2220 East 17th Street Des Moines Iowa 50316-2114 United States\",\"address\":\"2220 East 17th Street\",\"suite\":null,\"city\":\"Des Moines\",\"civicCityId\":\"348ea4c2-b55d-4ebc-819d-1f07df04efd9\",\"neighborhood\":null,\"county\":\"Polk County\",\"state\":\"Iowa\",\"postal\":\"50316-2114\",\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":41.6144081,\"longitude\":-93.5923699,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":\"Central Standard Time\"}],\"status\":1,\"organization\":{\"authorization\":false,\"organizationAuthorization\":true,\"name\":\"Food Bank of Iowa\",\"description\":\"Iowa Food Bank acquires food from various donors, retailers, producers, and government programs, etc. to distribute through a network of about 500 partner agencies (pantries, shelters, schools, and others) to serve Iowans in need. These partnerships result in the distribution of 10 million meals per year.\\n\\nVolunteers are needed during the COVID-19 crisis. Please see opportunities below.\",\"url\":\"foodbankofiowa\",\"internalUrl\":null,\"organizationId\":\"6345bdb5-8730-476a-8bc0-f53e249e613e\",\"reviewedBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"reviewedOn\":\"2024-09-06T20:26:45.5955450+00:00\",\"linked\":false,\"logo\":\"7ade9d3f-0991-466a-823b-9761308f3242.png\"},\"createdBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"cbfName\":\"Hillary\",\"cblName\":\"Nielsen\",\"startDate\":\"2024-09-06T05:00:00.0000000\",\"endDate\":\"2025-09-06T05:00:00.0000000\",\"isActive\":false,\"isUnlistedProject\":false,\"ongoing\":true,\"isDirectlyOwnedOrSponsored\":true,\"isOwnedOrRepresentedViaOrganization\":false,\"volunteersNeeded\":0,\"volunteersAcquired\":0,\"projectOwnerName\":\"Jennifer Hale\",\"projectOwnerUserId\":\"6345bdb5-8730-476a-8bc0-f53e249e613e\"},{\"id\":\"cf02957e-37df-4b05-a434-8f6b9c815c36\",\"name\":\"Food Bank of Iowa Food Sorting\",\"projectOwners\":[{\"id\":\"6345bdb5-8730-476a-8bc0-f53e249e613e\",\"ownerType\":2},{\"id\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"ownerType\":1}],\"locations\":[{\"mapId\":null,\"fullDisplayAddress\":\"2220 East 17th Street Des Moines Iowa 50316-2114 United States\",\"address\":\"2220 East 17th Street\",\"suite\":null,\"city\":\"Des Moines\",\"civicCityId\":\"348ea4c2-b55d-4ebc-819d-1f07df04efd9\",\"neighborhood\":null,\"county\":\"Polk County\",\"state\":\"Iowa\",\"postal\":\"50316-2114\",\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":41.6144081,\"longitude\":-93.5923699,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":\"Central Standard Time\"}],\"status\":1,\"organization\":{\"authorization\":false,\"organizationAuthorization\":true,\"name\":\"Food Bank of Iowa\",\"description\":\"Iowa Food Bank acquires food from various donors, retailers, producers, and government programs, etc. to distribute through a network of about 500 partner agencies (pantries, shelters, schools, and others) to serve Iowans in need. These partnerships result in the distribution of 10 million meals per year.\\n\\nVolunteers are needed during the COVID-19 crisis. Please see opportunities below.\",\"url\":\"foodbankofiowa\",\"internalUrl\":null,\"organizationId\":\"6345bdb5-8730-476a-8bc0-f53e249e613e\",\"reviewedBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"reviewedOn\":\"2024-09-06T20:25:31.9604970+00:00\",\"linked\":false,\"logo\":\"7ade9d3f-0991-466a-823b-9761308f3242.png\"},\"createdBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"cbfName\":\"Hillary\",\"cblName\":\"Nielsen\",\"startDate\":\"2024-09-06T05:00:00.0000000\",\"endDate\":\"2025-09-06T05:00:00.0000000\",\"isActive\":false,\"isUnlistedProject\":false,\"ongoing\":true,\"isDirectlyOwnedOrSponsored\":true,\"isOwnedOrRepresentedViaOrganization\":false,\"volunteersNeeded\":0,\"volunteersAcquired\":0,\"projectOwnerName\":\"Jennifer Hale\",\"projectOwnerUserId\":\"6345bdb5-8730-476a-8bc0-f53e249e613e\"},{\"id\":\"de319b64-f8f5-44ca-94f4-30de42d75b49\",\"name\":\"Volunteer from Home: Food Bank of Iowa BackPack Program Inspiration Cards\",\"projectOwners\":[{\"id\":\"6345bdb5-8730-476a-8bc0-f53e249e613e\",\"ownerType\":2},{\"id\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"ownerType\":1}],\"locations\":[{\"mapId\":null,\"fullDisplayAddress\":\"2220 East 17th Street Des Moines Iowa 50316-2114 United States\",\"address\":\"2220 East 17th Street\",\"suite\":null,\"city\":\"Des Moines\",\"civicCityId\":\"348ea4c2-b55d-4ebc-819d-1f07df04efd9\",\"neighborhood\":null,\"county\":\"Polk County\",\"state\":\"Iowa\",\"postal\":\"50316-2114\",\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":41.6142723,\"longitude\":-93.592185,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":\"Central Standard Time\"}],\"status\":1,\"organization\":{\"authorization\":false,\"organizationAuthorization\":true,\"name\":\"Food Bank of Iowa\",\"description\":\"Iowa Food Bank acquires food from various donors, retailers, producers, and government programs, etc. to distribute through a network of about 500 partner agencies (pantries, shelters, schools, and others) to serve Iowans in need. These partnerships result in the distribution of 10 million meals per year.\\n\\nVolunteers are needed during the COVID-19 crisis. Please see opportunities below.\",\"url\":\"foodbankofiowa\",\"internalUrl\":null,\"organizationId\":\"6345bdb5-8730-476a-8bc0-f53e249e613e\",\"reviewedBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"reviewedOn\":\"2024-09-06T20:24:15.6421430+00:00\",\"linked\":false,\"logo\":\"7ade9d3f-0991-466a-823b-9761308f3242.png\"},\"createdBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"cbfName\":\"Hillary\",\"cblName\":\"Nielsen\",\"startDate\":\"2024-09-06T05:00:00.0000000\",\"endDate\":\"2025-09-06T05:00:00.0000000\",\"isActive\":false,\"isUnlistedProject\":false,\"ongoing\":true,\"isDirectlyOwnedOrSponsored\":true,\"isOwnedOrRepresentedViaOrganization\":false,\"volunteersNeeded\":0,\"volunteersAcquired\":0,\"projectOwnerName\":\"Jennifer Hale\",\"projectOwnerUserId\":\"6345bdb5-8730-476a-8bc0-f53e249e613e\"},{\"id\":\"103fbc43-bf4d-45ac-8307-69d7aaa2aa08\",\"name\":\"Greater Des Moines Habitat For Humanity- Construction Volunteer\",\"projectOwners\":[{\"id\":\"14076712-c8a6-4702-ab5b-fcdab9d2b000\",\"ownerType\":2},{\"id\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"ownerType\":1}],\"locations\":[{\"mapId\":null,\"fullDisplayAddress\":\"2200 East Euclid Avenue Des Moines Iowa 50317-3607 United States\",\"address\":\"2200 East Euclid Avenue\",\"suite\":null,\"city\":\"Des Moines\",\"civicCityId\":\"348ea4c2-b55d-4ebc-819d-1f07df04efd9\",\"neighborhood\":null,\"county\":\"Polk County\",\"state\":\"Iowa\",\"postal\":\"50317-3607\",\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":41.628495,\"longitude\":-93.578398,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":\"Central Standard Time\"}],\"status\":1,\"organization\":{\"authorization\":false,\"organizationAuthorization\":true,\"name\":\"Greater Des Moines Habitat For Humanity\",\"description\":\"Our Mission: Seeking to put God's love into action, Habitat for Humanity brings people together to build homes, communities, and hope.\",\"url\":\"greaterdesmoineshabitatforhumanity\",\"internalUrl\":null,\"organizationId\":\"14076712-c8a6-4702-ab5b-fcdab9d2b000\",\"reviewedBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"reviewedOn\":\"2024-09-06T00:18:26.9984680+00:00\",\"linked\":false,\"logo\":\"728cb415-0585-4d51-9c47-19463a119c9f.png\"},\"createdBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"cbfName\":\"Hillary\",\"cblName\":\"Nielsen\",\"startDate\":\"2024-09-05T05:00:00.0000000\",\"endDate\":\"2025-09-05T05:00:00.0000000\",\"isActive\":false,\"isUnlistedProject\":false,\"ongoing\":true,\"isDirectlyOwnedOrSponsored\":true,\"isOwnedOrRepresentedViaOrganization\":false,\"volunteersNeeded\":0,\"volunteersAcquired\":0,\"projectOwnerName\":\"Jennifer Hale\",\"projectOwnerUserId\":\"14076712-c8a6-4702-ab5b-fcdab9d2b000\"},{\"id\":\"21d67d6b-ede6-4592-9dc8-6ad8b6c5ba5b\",\"name\":\"United Nations: Online Volunteering\",\"projectOwners\":[{\"id\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"ownerType\":1}],\"locations\":[{\"mapId\":null,\"fullDisplayAddress\":\"United States\",\"address\":null,\"suite\":null,\"city\":\"\",\"civicCityId\":null,\"neighborhood\":null,\"county\":null,\"state\":null,\"postal\":null,\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":0.0,\"longitude\":0.0,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":null}],\"status\":1,\"organization\":null,\"createdBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"cbfName\":\"Hillary\",\"cblName\":\"Nielsen\",\"startDate\":\"2024-09-05T05:00:00.0000000\",\"endDate\":\"2025-09-05T05:00:00.0000000\",\"isActive\":false,\"isUnlistedProject\":false,\"ongoing\":true,\"isDirectlyOwnedOrSponsored\":true,\"isOwnedOrRepresentedViaOrganization\":false,\"volunteersNeeded\":0,\"volunteersAcquired\":0,\"projectOwnerName\":\"Jennifer Hale\",\"projectOwnerUserId\":\"6a1b0bce-27be-4985-b221-a96c5612473c\"},{\"id\":\"32352b4a-1f84-4c4e-9b06-a24080cf91a5\",\"name\":\"Be My Eyes\",\"projectOwners\":[{\"id\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"ownerType\":1}],\"locations\":[{\"mapId\":null,\"fullDisplayAddress\":\"United States\",\"address\":null,\"suite\":null,\"city\":\"\",\"civicCityId\":null,\"neighborhood\":null,\"county\":null,\"state\":null,\"postal\":null,\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":0.0,\"longitude\":0.0,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":null}],\"status\":1,\"organization\":null,\"createdBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"cbfName\":\"Hillary\",\"cblName\":\"Nielsen\",\"startDate\":\"2024-09-05T05:00:00.0000000\",\"endDate\":\"2025-09-05T05:00:00.0000000\",\"isActive\":false,\"isUnlistedProject\":false,\"ongoing\":true,\"isDirectlyOwnedOrSponsored\":true,\"isOwnedOrRepresentedViaOrganization\":false,\"volunteersNeeded\":0,\"volunteersAcquired\":0,\"projectOwnerName\":\"Jennifer Hale\",\"projectOwnerUserId\":\"6a1b0bce-27be-4985-b221-a96c5612473c\"},{\"id\":\"9f1fe203-b3a8-460c-8699-cb96b58a3d54\",\"name\":\"Smithsonian Digital Volunteers\",\"projectOwners\":[{\"id\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"ownerType\":1}],\"locations\":[{\"mapId\":null,\"fullDisplayAddress\":\"United States\",\"address\":null,\"suite\":null,\"city\":\"\",\"civicCityId\":null,\"neighborhood\":null,\"county\":null,\"state\":null,\"postal\":null,\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":0.0,\"longitude\":0.0,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":null}],\"status\":1,\"organization\":null,\"createdBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"cbfName\":\"Hillary\",\"cblName\":\"Nielsen\",\"startDate\":\"2024-09-05T05:00:00.0000000\",\"endDate\":\"2025-09-05T05:00:00.0000000\",\"isActive\":false,\"isUnlistedProject\":false,\"ongoing\":true,\"isDirectlyOwnedOrSponsored\":true,\"isOwnedOrRepresentedViaOrganization\":false,\"volunteersNeeded\":0,\"volunteersAcquired\":0,\"projectOwnerName\":\"Jennifer Hale\",\"projectOwnerUserId\":\"6a1b0bce-27be-4985-b221-a96c5612473c\"},{\"id\":\"ae714f2b-e1d7-4296-a5f8-b2e152544d81\",\"name\":\"Many Hands Thrift Market Volunteer\",\"projectOwners\":[{\"id\":\"242a580a-db94-43a5-81ab-452f7e074d07\",\"ownerType\":2},{\"id\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"ownerType\":1}],\"locations\":null,\"status\":1,\"organization\":{\"authorization\":false,\"organizationAuthorization\":true,\"name\":\"Many Hands Thrift Market\",\"description\":\"Many Hands for Haiti is a non-profit organization based out of Pella, IA. We currently have a campus in Pignon, Haiti where we run programs for Education, Agronomy and Feeding, Leadership Development, Safe Homes and Medical Assistance.\\n\\nOur approach is an inch wide and mile deep. We focus on a specific area and go deep into the community to transform the path of poverty.\",\"url\":\"manyhandsthriftmarket\",\"internalUrl\":null,\"organizationId\":\"242a580a-db94-43a5-81ab-452f7e074d07\",\"reviewedBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"reviewedOn\":\"2024-09-06T00:00:29.2050070+00:00\",\"linked\":false,\"logo\":\"d10f82a3-2ba5-4ef6-a0a3-fd695b0e628c.png\"},\"createdBy\":\"9042ebe1-070f-4c95-82eb-79bc9362bc9f\",\"cbfName\":\"Emily\",\"cblName\":\"Van Gent\",\"startDate\":\"2024-09-05T05:00:00.0000000\",\"endDate\":\"2025-09-05T05:00:00.0000000\",\"isActive\":false,\"isUnlistedProject\":false,\"ongoing\":true,\"isDirectlyOwnedOrSponsored\":true,\"isOwnedOrRepresentedViaOrganization\":false,\"volunteersNeeded\":0,\"volunteersAcquired\":0,\"projectOwnerName\":\"Jennifer Hale\",\"projectOwnerUserId\":\"242a580a-db94-43a5-81ab-452f7e074d07\"},{\"id\":\"e1b13000-ea38-4276-add6-c658f41d8552\",\"name\":\"Greater Des Moines Habitat For Humanity- Core Crew Volunteer\",\"projectOwners\":[{\"id\":\"14076712-c8a6-4702-ab5b-fcdab9d2b000\",\"ownerType\":2},{\"id\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"ownerType\":1}],\"locations\":[{\"mapId\":null,\"fullDisplayAddress\":\"2200 East Euclid Avenue Des Moines Iowa 50317 United States\",\"address\":\"2200 East Euclid Avenue\",\"suite\":null,\"city\":\"Des Moines\",\"civicCityId\":\"348ea4c2-b55d-4ebc-819d-1f07df04efd9\",\"neighborhood\":null,\"county\":\"Polk County\",\"state\":\"Iowa\",\"postal\":\"50317\",\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":41.6285015,\"longitude\":-93.5783894,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":\"Central Standard Time\"}],\"status\":1,\"organization\":{\"authorization\":false,\"organizationAuthorization\":true,\"name\":\"Greater Des Moines Habitat For Humanity\",\"description\":\"Our Mission: Seeking to put God's love into action, Habitat for Humanity brings people together to build homes, communities, and hope.\",\"url\":\"greaterdesmoineshabitatforhumanity\",\"internalUrl\":null,\"organizationId\":\"14076712-c8a6-4702-ab5b-fcdab9d2b000\",\"reviewedBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"reviewedOn\":\"2024-09-06T00:15:47.8386230+00:00\",\"linked\":false,\"logo\":\"728cb415-0585-4d51-9c47-19463a119c9f.png\"},\"createdBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"cbfName\":\"Hillary\",\"cblName\":\"Nielsen\",\"startDate\":\"2024-09-05T05:00:00.0000000\",\"endDate\":\"2025-09-05T05:00:00.0000000\",\"isActive\":false,\"isUnlistedProject\":false,\"ongoing\":true,\"isDirectlyOwnedOrSponsored\":true,\"isOwnedOrRepresentedViaOrganization\":false,\"volunteersNeeded\":0,\"volunteersAcquired\":0,\"projectOwnerName\":\"Jennifer Hale\",\"projectOwnerUserId\":\"14076712-c8a6-4702-ab5b-fcdab9d2b000\"},{\"id\":\"e1f2dd3d-1338-4133-a903-7c28f8e52c83\",\"name\":\"Operation Gratitude - Write letters or make care package items to be sent to Deployed Troops and First Responders\",\"projectOwners\":[{\"id\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"ownerType\":1}],\"locations\":[{\"mapId\":null,\"fullDisplayAddress\":\"United States\",\"address\":null,\"suite\":null,\"city\":\"\",\"civicCityId\":null,\"neighborhood\":null,\"county\":null,\"state\":null,\"postal\":null,\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":0.0,\"longitude\":0.0,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":null}],\"status\":1,\"organization\":null,\"createdBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"cbfName\":\"Hillary\",\"cblName\":\"Nielsen\",\"startDate\":\"2024-09-05T05:00:00.0000000\",\"endDate\":\"2025-09-05T05:00:00.0000000\",\"isActive\":false,\"isUnlistedProject\":false,\"ongoing\":true,\"isDirectlyOwnedOrSponsored\":true,\"isOwnedOrRepresentedViaOrganization\":false,\"volunteersNeeded\":0,\"volunteersAcquired\":0,\"projectOwnerName\":\"Jennifer Hale\",\"projectOwnerUserId\":\"6a1b0bce-27be-4985-b221-a96c5612473c\"},{\"id\":\"ee4815bd-4305-4d25-81e3-5988df0de62c\",\"name\":\"Greater Des Moines Habitat For Humanity- ReStore Volunteer\",\"projectOwners\":[{\"id\":\"14076712-c8a6-4702-ab5b-fcdab9d2b000\",\"ownerType\":2},{\"id\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"ownerType\":1}],\"locations\":null,\"status\":1,\"organization\":{\"authorization\":false,\"organizationAuthorization\":true,\"name\":\"Greater Des Moines Habitat For Humanity\",\"description\":\"Our Mission: Seeking to put God's love into action, Habitat for Humanity brings people together to build homes, communities, and hope.\",\"url\":\"greaterdesmoineshabitatforhumanity\",\"internalUrl\":null,\"organizationId\":\"14076712-c8a6-4702-ab5b-fcdab9d2b000\",\"reviewedBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"reviewedOn\":\"2024-09-06T00:19:17.4192780+00:00\",\"linked\":false,\"logo\":\"728cb415-0585-4d51-9c47-19463a119c9f.png\"},\"createdBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"cbfName\":\"Hillary\",\"cblName\":\"Nielsen\",\"startDate\":\"2024-09-05T05:00:00.0000000\",\"endDate\":\"2025-09-05T05:00:00.0000000\",\"isActive\":false,\"isUnlistedProject\":false,\"ongoing\":true,\"isDirectlyOwnedOrSponsored\":true,\"isOwnedOrRepresentedViaOrganization\":false,\"volunteersNeeded\":0,\"volunteersAcquired\":0,\"projectOwnerName\":\"Jennifer Hale\",\"projectOwnerUserId\":\"14076712-c8a6-4702-ab5b-fcdab9d2b000\"},{\"id\":\"fac57724-65f2-4dd5-82f7-e01217638912\",\"name\":\"Greater Des Moines Habitat For Humanity- Home Repair Volunteer (Rock the Block)\",\"projectOwners\":[{\"id\":\"14076712-c8a6-4702-ab5b-fcdab9d2b000\",\"ownerType\":2},{\"id\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"ownerType\":1}],\"locations\":[{\"mapId\":null,\"fullDisplayAddress\":\"2200 East Euclid Avenue Des Moines Iowa 50317-3607 United States\",\"address\":\"2200 East Euclid Avenue\",\"suite\":null,\"city\":\"Des Moines\",\"civicCityId\":\"348ea4c2-b55d-4ebc-819d-1f07df04efd9\",\"neighborhood\":null,\"county\":\"Polk County\",\"state\":\"Iowa\",\"postal\":\"50317-3607\",\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":41.628495,\"longitude\":-93.578398,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":\"Central Standard Time\"}],\"status\":1,\"organization\":{\"authorization\":false,\"organizationAuthorization\":true,\"name\":\"Greater Des Moines Habitat For Humanity\",\"description\":\"Our Mission: Seeking to put God's love into action, Habitat for Humanity brings people together to build homes, communities, and hope.\",\"url\":\"greaterdesmoineshabitatforhumanity\",\"internalUrl\":null,\"organizationId\":\"14076712-c8a6-4702-ab5b-fcdab9d2b000\",\"reviewedBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"reviewedOn\":\"2024-09-06T00:16:51.6321710+00:00\",\"linked\":false,\"logo\":\"728cb415-0585-4d51-9c47-19463a119c9f.png\"},\"createdBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"cbfName\":\"Hillary\",\"cblName\":\"Nielsen\",\"startDate\":\"2024-09-05T05:00:00.0000000\",\"endDate\":\"2025-09-05T05:00:00.0000000\",\"isActive\":false,\"isUnlistedProject\":false,\"ongoing\":true,\"isDirectlyOwnedOrSponsored\":true,\"isOwnedOrRepresentedViaOrganization\":false,\"volunteersNeeded\":0,\"volunteersAcquired\":0,\"projectOwnerName\":\"Jennifer Hale\",\"projectOwnerUserId\":\"14076712-c8a6-4702-ab5b-fcdab9d2b000\"},{\"id\":\"a37f3b76-3f95-4b0b-ab79-081d108ba7f1\",\"name\":\"Light the World- Baby Kits for Refugees\",\"projectOwners\":[{\"id\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"ownerType\":1}],\"locations\":[{\"mapId\":null,\"fullDisplayAddress\":\"400 Southeast Pleasant View Drive Waukee Iowa 50263 United States\",\"address\":\"400 Southeast Pleasant View Drive\",\"suite\":null,\"city\":\"Waukee\",\"civicCityId\":\"cca7ce9b-ebfc-4981-add3-f6ddd1de02ed\",\"neighborhood\":null,\"county\":\"Dallas County\",\"state\":\"Iowa\",\"postal\":\"50263\",\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":41.5934003,\"longitude\":-93.8654998,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":\"Central Standard Time\"},{\"mapId\":null,\"fullDisplayAddress\":\"400 Southeast Pleasant View Drive Waukee Iowa 50263 United States\",\"address\":\"400 Southeast Pleasant View Drive\",\"suite\":null,\"city\":\"Waukee\",\"civicCityId\":\"cca7ce9b-ebfc-4981-add3-f6ddd1de02ed\",\"neighborhood\":null,\"county\":\"Dallas County\",\"state\":\"Iowa\",\"postal\":\"50263\",\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":41.5934003,\"longitude\":-93.8654998,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":\"Central Standard Time\"}],\"status\":1,\"organization\":null,\"createdBy\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"cbfName\":\"Jennifer\",\"cblName\":\"Hale\",\"startDate\":\"2024-11-26T04:44:43.3860000\",\"endDate\":\"2024-12-15T08:00:00.0000000\",\"isActive\":false,\"isUnlistedProject\":false,\"ongoing\":true,\"isDirectlyOwnedOrSponsored\":true,\"isOwnedOrRepresentedViaOrganization\":false,\"volunteersNeeded\":0,\"volunteersAcquired\":0,\"projectOwnerName\":\"Jennifer Hale\",\"projectOwnerUserId\":\"6a1b0bce-27be-4985-b221-a96c5612473c\"},{\"id\":\"8f23c27b-761c-462e-a234-b72fca3a0fac\",\"name\":\"Coat Drive Benefiting LSI (Lutheran Services of Iowa)\",\"projectOwners\":[{\"id\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"ownerType\":1}],\"locations\":[{\"mapId\":null,\"fullDisplayAddress\":\"400 Southeast Pleasant View Drive Waukee Iowa 50263 United States\",\"address\":\"400 Southeast Pleasant View Drive\",\"suite\":null,\"city\":\"Waukee\",\"civicCityId\":\"cca7ce9b-ebfc-4981-add3-f6ddd1de02ed\",\"neighborhood\":null,\"county\":\"Dallas County\",\"state\":\"Iowa\",\"postal\":\"50263\",\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":41.5934003,\"longitude\":-93.8654998,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":\"Central Standard Time\"}],\"status\":1,\"organization\":null,\"createdBy\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"cbfName\":\"Jennifer\",\"cblName\":\"Hale\",\"startDate\":\"2024-10-04T07:40:48.3180000\",\"endDate\":\"2024-10-31T15:00:00.0000000\",\"isActive\":false,\"isUnlistedProject\":false,\"ongoing\":true,\"isDirectlyOwnedOrSponsored\":true,\"isOwnedOrRepresentedViaOrganization\":false,\"volunteersNeeded\":0,\"volunteersAcquired\":0,\"projectOwnerName\":\"Jennifer Hale\",\"projectOwnerUserId\":\"6a1b0bce-27be-4985-b221-a96c5612473c\"},{\"id\":\"e2803d1e-7603-44c3-aee1-1da535043326\",\"name\":\"IRC Welcome Kits\",\"projectOwners\":[{\"id\":\"0f0d1121-db98-4253-992b-a84744beca0b\",\"ownerType\":2},{\"id\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"ownerType\":1}],\"locations\":[{\"mapId\":null,\"fullDisplayAddress\":\"108 Southwest 3rd Street Des Moines Iowa 50309 United States\",\"address\":\"108 Southwest 3rd Street\",\"suite\":null,\"city\":\"Des Moines\",\"civicCityId\":\"348ea4c2-b55d-4ebc-819d-1f07df04efd9\",\"neighborhood\":null,\"county\":\"Polk County\",\"state\":\"Iowa\",\"postal\":\"50309\",\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":41.584199,\"longitude\":-93.6202491,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":\"Central Standard Time\"}],\"status\":1,\"organization\":{\"authorization\":false,\"organizationAuthorization\":true,\"name\":\"International Rescue Committee Des Moines, Iowa\",\"description\":\"

    The International Rescue Committee provides opportunities for refugees, asylees, victims of human trafficking, survivors of torture, and other immigrants to thrive in America. Each year, thousands of people, forced to flee violence and persecution, are welcomed by the people of the United States into the safety and freedom of America. These individuals have survived against incredible odds. The IRC works with government bodies, civil society actors, and local volunteers to help them translate their past experiences into assets that are valuable to their new communities. In Des Moines and other offices across the country, the IRC helps them to rebuild their lives.

    \",\"url\":\"internationalrescuecommitteedesmoinesiowa\",\"internalUrl\":null,\"organizationId\":\"0f0d1121-db98-4253-992b-a84744beca0b\",\"reviewedBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"reviewedOn\":\"2023-10-19T14:46:58.9417540+00:00\",\"linked\":false,\"logo\":\"7923bce4-fd63-46e0-affb-0f6211855f1e.png\"},\"createdBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"cbfName\":\"Hillary\",\"cblName\":\"Nielsen\",\"startDate\":\"2023-10-19T00:00:00.0000000\",\"endDate\":\"2024-10-20T23:59:59.0000000\",\"isActive\":false,\"isUnlistedProject\":false,\"ongoing\":true,\"isDirectlyOwnedOrSponsored\":true,\"isOwnedOrRepresentedViaOrganization\":false,\"volunteersNeeded\":0,\"volunteersAcquired\":0,\"projectOwnerName\":\"Jennifer Hale\",\"projectOwnerUserId\":\"0f0d1121-db98-4253-992b-a84744beca0b\"},{\"id\":\"fc3dd5e1-b3dd-4853-98ca-260a4206c213\",\"name\":\"IRC Housing Set Up Volunteers\",\"projectOwners\":[{\"id\":\"0f0d1121-db98-4253-992b-a84744beca0b\",\"ownerType\":2},{\"id\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"ownerType\":1}],\"locations\":[{\"mapId\":null,\"fullDisplayAddress\":\"108 Southwest 3rd Street Des Moines Iowa 50309 United States\",\"address\":\"108 Southwest 3rd Street\",\"suite\":null,\"city\":\"Des Moines\",\"civicCityId\":\"348ea4c2-b55d-4ebc-819d-1f07df04efd9\",\"neighborhood\":null,\"county\":\"Polk County\",\"state\":\"Iowa\",\"postal\":\"50309\",\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":41.584199,\"longitude\":-93.6202491,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":\"Central Standard Time\"}],\"status\":1,\"organization\":{\"authorization\":false,\"organizationAuthorization\":true,\"name\":\"International Rescue Committee Des Moines, Iowa\",\"description\":\"

    The International Rescue Committee provides opportunities for refugees, asylees, victims of human trafficking, survivors of torture, and other immigrants to thrive in America. Each year, thousands of people, forced to flee violence and persecution, are welcomed by the people of the United States into the safety and freedom of America. These individuals have survived against incredible odds. The IRC works with government bodies, civil society actors, and local volunteers to help them translate their past experiences into assets that are valuable to their new communities. In Des Moines and other offices across the country, the IRC helps them to rebuild their lives.

    \",\"url\":\"internationalrescuecommitteedesmoinesiowa\",\"internalUrl\":null,\"organizationId\":\"0f0d1121-db98-4253-992b-a84744beca0b\",\"reviewedBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"reviewedOn\":\"2023-10-19T13:50:41.6929150+00:00\",\"linked\":false,\"logo\":\"7923bce4-fd63-46e0-affb-0f6211855f1e.png\"},\"createdBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"cbfName\":\"Hillary\",\"cblName\":\"Nielsen\",\"startDate\":\"2023-10-19T00:00:00.0000000\",\"endDate\":\"2024-10-20T23:59:59.0000000\",\"isActive\":false,\"isUnlistedProject\":false,\"ongoing\":true,\"isDirectlyOwnedOrSponsored\":true,\"isOwnedOrRepresentedViaOrganization\":false,\"volunteersNeeded\":0,\"volunteersAcquired\":0,\"projectOwnerName\":\"Jennifer Hale\",\"projectOwnerUserId\":\"0f0d1121-db98-4253-992b-a84744beca0b\"},{\"id\":\"bf4917c8-8ca3-4208-92fe-cb42d10a6778\",\"name\":\"IRC Hygiene & Cleaning Supplies\",\"projectOwners\":[{\"id\":\"0f0d1121-db98-4253-992b-a84744beca0b\",\"ownerType\":2},{\"id\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"ownerType\":1}],\"locations\":[{\"mapId\":null,\"fullDisplayAddress\":\"108 Southwest 3rd Street Des Moines Iowa 50309 United States\",\"address\":\"108 Southwest 3rd Street\",\"suite\":null,\"city\":\"Des Moines\",\"civicCityId\":\"348ea4c2-b55d-4ebc-819d-1f07df04efd9\",\"neighborhood\":null,\"county\":\"Polk County\",\"state\":\"Iowa\",\"postal\":\"50309\",\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":41.584199,\"longitude\":-93.6202491,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":\"Central Standard Time\"}],\"status\":1,\"organization\":{\"authorization\":false,\"organizationAuthorization\":true,\"name\":\"International Rescue Committee Des Moines, Iowa\",\"description\":\"

    The International Rescue Committee provides opportunities for refugees, asylees, victims of human trafficking, survivors of torture, and other immigrants to thrive in America. Each year, thousands of people, forced to flee violence and persecution, are welcomed by the people of the United States into the safety and freedom of America. These individuals have survived against incredible odds. The IRC works with government bodies, civil society actors, and local volunteers to help them translate their past experiences into assets that are valuable to their new communities. In Des Moines and other offices across the country, the IRC helps them to rebuild their lives.

    \",\"url\":\"internationalrescuecommitteedesmoinesiowa\",\"internalUrl\":null,\"organizationId\":\"0f0d1121-db98-4253-992b-a84744beca0b\",\"reviewedBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"reviewedOn\":\"2023-10-19T14:40:10.9242700+00:00\",\"linked\":false,\"logo\":\"7923bce4-fd63-46e0-affb-0f6211855f1e.png\"},\"createdBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"cbfName\":\"Hillary\",\"cblName\":\"Nielsen\",\"startDate\":\"2023-10-19T00:00:00.0000000\",\"endDate\":\"2024-10-19T23:59:59.0000000\",\"isActive\":false,\"isUnlistedProject\":false,\"ongoing\":true,\"isDirectlyOwnedOrSponsored\":true,\"isOwnedOrRepresentedViaOrganization\":false,\"volunteersNeeded\":0,\"volunteersAcquired\":0,\"projectOwnerName\":\"Jennifer Hale\",\"projectOwnerUserId\":\"0f0d1121-db98-4253-992b-a84744beca0b\"},{\"id\":\"37b5a4ad-bfa3-4830-8926-1931f0b44730\",\"name\":\"Sporting Clay Fundraising Event\",\"projectOwners\":[{\"id\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"ownerType\":1}],\"locations\":[{\"mapId\":null,\"fullDisplayAddress\":\"31454 312th Place Waukee Iowa 50263 United States\",\"address\":\"31454 312th Place\",\"suite\":null,\"city\":\"Waukee\",\"civicCityId\":\"cca7ce9b-ebfc-4981-add3-f6ddd1de02ed\",\"neighborhood\":null,\"county\":\"Dallas County\",\"state\":\"Iowa\",\"postal\":\"50263\",\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":41.5826,\"longitude\":-93.873471,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":\"Central Standard Time\"}],\"status\":1,\"organization\":null,\"createdBy\":\"d2c0ff95-7c67-4343-95c5-6b5296c4226e\",\"cbfName\":\"Volunteer\",\"cblName\":\"Coordinator\",\"startDate\":\"2024-09-27T06:30:00.0000000\",\"endDate\":\"2024-09-27T16:30:00.0000000\",\"isActive\":false,\"isUnlistedProject\":false,\"ongoing\":false,\"isDirectlyOwnedOrSponsored\":true,\"isOwnedOrRepresentedViaOrganization\":false,\"volunteersNeeded\":0,\"volunteersAcquired\":0,\"projectOwnerName\":\"Jennifer Hale\",\"projectOwnerUserId\":\"6a1b0bce-27be-4985-b221-a96c5612473c\"},{\"id\":\"457f4ab0-4260-4256-a816-c921f8b0e58c\",\"name\":\"WACS Community Garden Volunteer\",\"projectOwners\":[{\"id\":\"3504645e-a82e-4000-89f5-e6ec2d0b809f\",\"ownerType\":2},{\"id\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"ownerType\":1}],\"locations\":[{\"mapId\":null,\"fullDisplayAddress\":\"1155 Boone Drive Waukee Iowa 50263-8253 United States\",\"address\":\"1155 Boone Drive\",\"suite\":null,\"city\":\"Waukee\",\"civicCityId\":\"cca7ce9b-ebfc-4981-add3-f6ddd1de02ed\",\"neighborhood\":null,\"county\":\"Dallas County\",\"state\":\"Iowa\",\"postal\":\"50263-8253\",\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":41.601801,\"longitude\":-93.8318976,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":\"Central Standard Time\"}],\"status\":1,\"organization\":{\"authorization\":false,\"organizationAuthorization\":true,\"name\":\"Waukee Area Christian Services\",\"description\":\"

    Waukee Area Christian Services (WACS) provides compassionate, practical care to greater Des Moines' west side, offering food and medical assistance to those struggling to make ends meet. Supported by area churches, businesses and community organizations, WACS includes a food pantry, free medical clinic, and community garden.

    \",\"url\":\"waukeeareachristianservices\",\"internalUrl\":null,\"organizationId\":\"3504645e-a82e-4000-89f5-e6ec2d0b809f\",\"reviewedBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"reviewedOn\":\"2019-10-04T17:55:01.6050320+00:00\",\"linked\":false,\"logo\":\"c119ae7c-3bee-4253-b294-a9e5f41530c6.png\"},\"createdBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"cbfName\":\"Hillary\",\"cblName\":\"Nielsen\",\"startDate\":\"2023-08-16T00:00:00.0000000\",\"endDate\":\"2024-08-16T23:59:59.0000000\",\"isActive\":false,\"isUnlistedProject\":true,\"ongoing\":true,\"isDirectlyOwnedOrSponsored\":true,\"isOwnedOrRepresentedViaOrganization\":false,\"volunteersNeeded\":0,\"volunteersAcquired\":0,\"projectOwnerName\":\"Jennifer Hale\",\"projectOwnerUserId\":\"3504645e-a82e-4000-89f5-e6ec2d0b809f\"},{\"id\":\"ff59276b-48c6-43f6-875f-f2f86f1042c9\",\"name\":\"WACS Free Health Clinic Volunteer\",\"projectOwners\":[{\"id\":\"3504645e-a82e-4000-89f5-e6ec2d0b809f\",\"ownerType\":2},{\"id\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"ownerType\":1}],\"locations\":[{\"mapId\":null,\"fullDisplayAddress\":\"1155 Boone Drive Waukee Iowa 50263-8253 United States\",\"address\":\"1155 Boone Drive\",\"suite\":null,\"city\":\"Waukee\",\"civicCityId\":\"cca7ce9b-ebfc-4981-add3-f6ddd1de02ed\",\"neighborhood\":null,\"county\":\"Dallas County\",\"state\":\"Iowa\",\"postal\":\"50263-8253\",\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":41.601801,\"longitude\":-93.8318976,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":\"Central Standard Time\"}],\"status\":1,\"organization\":{\"authorization\":false,\"organizationAuthorization\":true,\"name\":\"Waukee Area Christian Services\",\"description\":\"

    Waukee Area Christian Services (WACS) provides compassionate, practical care to greater Des Moines' west side, offering food and medical assistance to those struggling to make ends meet. Supported by area churches, businesses and community organizations, WACS includes a food pantry, free medical clinic, and community garden.

    \",\"url\":\"waukeeareachristianservices\",\"internalUrl\":null,\"organizationId\":\"3504645e-a82e-4000-89f5-e6ec2d0b809f\",\"reviewedBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"reviewedOn\":\"2019-10-04T18:08:49.1091100+00:00\",\"linked\":false,\"logo\":\"c119ae7c-3bee-4253-b294-a9e5f41530c6.png\"},\"createdBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"cbfName\":\"Hillary\",\"cblName\":\"Nielsen\",\"startDate\":\"2023-08-16T00:00:00.0000000\",\"endDate\":\"2024-08-16T23:59:59.0000000\",\"isActive\":false,\"isUnlistedProject\":false,\"ongoing\":true,\"isDirectlyOwnedOrSponsored\":true,\"isOwnedOrRepresentedViaOrganization\":false,\"volunteersNeeded\":0,\"volunteersAcquired\":0,\"projectOwnerName\":\"Jennifer Hale\",\"projectOwnerUserId\":\"3504645e-a82e-4000-89f5-e6ec2d0b809f\"},{\"id\":\"9241fa7c-047a-4a89-a475-4b20c1a63548\",\"name\":\"Clive Community Services- Free Clinic Volunteer\",\"projectOwners\":[{\"id\":\"661e6d03-1d95-4a04-90cd-8cc60fb73a0e\",\"ownerType\":2},{\"id\":\"6a1b0bce-27be-4985-b221-a96c5612473c\",\"ownerType\":1}],\"locations\":[{\"mapId\":null,\"fullDisplayAddress\":\"2190 Northwest 82nd Street Clive Iowa 50325 United States\",\"address\":\"2190 Northwest 82nd Street\",\"suite\":null,\"city\":\"Clive\",\"civicCityId\":\"9086595d-ac45-4bb2-8c74-2874796e96c9\",\"neighborhood\":null,\"county\":\"Polk County\",\"state\":\"Iowa\",\"postal\":\"50325\",\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":41.6137519,\"longitude\":-93.7322828,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":\"Central Standard Time\"}],\"status\":1,\"organization\":{\"authorization\":false,\"organizationAuthorization\":true,\"name\":\"Clive Community Services\",\"description\":\"

    This organization is established to provide support to families and individuals in need by providing assistance and linking them with resources that will enable them to become healthier in mind, body, and spirit. We do this by: Providing food to meet the short term needs of hungry people. Providing clothing and personal care items for families Providing opportunities and resources that will teach people how to create their own healthy and balanced lifestyle Providing opportunities and resources for medical care

    \",\"url\":\"clivecommunityservices\",\"internalUrl\":null,\"organizationId\":\"661e6d03-1d95-4a04-90cd-8cc60fb73a0e\",\"reviewedBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"reviewedOn\":\"2020-02-24T20:30:56.9978830+00:00\",\"linked\":false,\"logo\":\"314ea41b-f293-4886-a3b3-7c01738990c8.png\"},\"createdBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"cbfName\":\"Hillary\",\"cblName\":\"Nielsen\",\"startDate\":\"2023-08-09T00:00:00.0000000\",\"endDate\":\"2024-08-10T23:59:59.0000000\",\"isActive\":false,\"isUnlistedProject\":false,\"ongoing\":true,\"isDirectlyOwnedOrSponsored\":true,\"isOwnedOrRepresentedViaOrganization\":false,\"volunteersNeeded\":0,\"volunteersAcquired\":0,\"projectOwnerName\":\"Jennifer Hale\",\"projectOwnerUserId\":\"661e6d03-1d95-4a04-90cd-8cc60fb73a0e\"},{\"id\":\"13f51902-0357-48a8-ad86-daed13b9e65c\",\"name\":\"Joppa Community Garden Volunteer\",\"projectOwners\":[{\"id\":\"96f61337-2798-4150-8232-678bd17ebf5f\",\"ownerType\":2},{\"id\":\"fecf6ca8-9a21-4b9d-aaec-91530f70c185\",\"ownerType\":1}],\"locations\":[{\"mapId\":null,\"fullDisplayAddress\":\"1000 East 13th Street Des Moines Iowa 50316-3430 United States\",\"address\":\"1000 East 13th Street\",\"suite\":null,\"city\":\"Des Moines\",\"civicCityId\":\"348ea4c2-b55d-4ebc-819d-1f07df04efd9\",\"neighborhood\":null,\"county\":\"Polk County\",\"state\":\"Iowa\",\"postal\":\"50316-3430\",\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":41.5981289,\"longitude\":-93.6025563,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":\"Central Standard Time\"}],\"status\":6,\"organization\":{\"authorization\":false,\"organizationAuthorization\":true,\"name\":\"Joppa\",\"description\":\"

    To create communities of unconditional love, support, and hope for the homeless, as we work together to prevent and ultimately end homelessness.


    Joppa collaborates with community partners, help homeless people access existing resources, and mobilize private donations from families, churches, and organizations to meet unmet needs in homeless services, housing, and education.


    How We Do It:

    Homeless Services

    Housing Development

    Education Advocacy

    \",\"url\":\"joppa\",\"internalUrl\":null,\"organizationId\":\"96f61337-2798-4150-8232-678bd17ebf5f\",\"reviewedBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"reviewedOn\":\"2021-04-15T19:47:54.9819700+00:00\",\"linked\":false,\"logo\":\"36cc3675-e053-4da7-9041-8876c4395b73.png\"},\"createdBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"cbfName\":\"Hillary\",\"cblName\":\"Nielsen\",\"startDate\":\"2023-07-19T00:00:00.0000000\",\"endDate\":\"2024-07-19T23:59:59.0000000\",\"isActive\":false,\"isUnlistedProject\":false,\"ongoing\":true,\"isDirectlyOwnedOrSponsored\":false,\"isOwnedOrRepresentedViaOrganization\":false,\"volunteersNeeded\":0,\"volunteersAcquired\":0,\"projectOwnerName\":\"Linda Wilson\",\"projectOwnerUserId\":\"96f61337-2798-4150-8232-678bd17ebf5f\"},{\"id\":\"428fe20a-c9af-432b-a40e-6d2acc5bdb93\",\"name\":\"BPZ Special Event Volunteer\",\"projectOwners\":[{\"id\":\"577b00aa-17b4-400c-89ab-41cadf1c6ea3\",\"ownerType\":2},{\"id\":\"fecf6ca8-9a21-4b9d-aaec-91530f70c185\",\"ownerType\":1}],\"locations\":[{\"mapId\":null,\"fullDisplayAddress\":\"7401 Southwest 9th Street Des Moines Iowa 50315-6667 United States\",\"address\":\"7401 Southwest 9th Street\",\"suite\":null,\"city\":\"Des Moines\",\"civicCityId\":\"498d77c9-5f41-4693-8d37-6fbe2106159b\",\"neighborhood\":null,\"county\":\"Polk County\",\"state\":\"Iowa\",\"postal\":\"50315-6667\",\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":41.5197844,\"longitude\":-93.6251551,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":\"Central Standard Time\"}],\"status\":1,\"organization\":{\"authorization\":false,\"organizationAuthorization\":true,\"name\":\"Blank Park Zoo\",\"description\":\"The mission of the Blank Park Zoo is to inspire an appreciation of the natural world through conservation, education, research and recreation and has been a part of the Des Moines metro community since 1963\",\"url\":\"blankparkzoo\",\"internalUrl\":null,\"organizationId\":\"577b00aa-17b4-400c-89ab-41cadf1c6ea3\",\"reviewedBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"reviewedOn\":\"2019-09-19T20:32:45.4026300+00:00\",\"linked\":false,\"logo\":\"ed71aaf0-e9d4-4a52-9384-168636d30580.png\"},\"createdBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"cbfName\":\"Hillary\",\"cblName\":\"Nielsen\",\"startDate\":\"2019-09-19T05:00:00.0000000\",\"endDate\":\"2020-09-18T05:00:00.0000000\",\"isActive\":false,\"isUnlistedProject\":false,\"ongoing\":true,\"isDirectlyOwnedOrSponsored\":false,\"isOwnedOrRepresentedViaOrganization\":true,\"volunteersNeeded\":0,\"volunteersAcquired\":0,\"projectOwnerName\":\"Linda Wilson\",\"projectOwnerUserId\":\"577b00aa-17b4-400c-89ab-41cadf1c6ea3\"},{\"id\":\"43b532d1-1809-4fbe-b2a8-242c7406d6d6\",\"name\":\"Ruby Reader Volunteer\",\"projectOwners\":[{\"id\":\"577b00aa-17b4-400c-89ab-41cadf1c6ea3\",\"ownerType\":2},{\"id\":\"fecf6ca8-9a21-4b9d-aaec-91530f70c185\",\"ownerType\":1}],\"locations\":[{\"mapId\":null,\"fullDisplayAddress\":\"7401 Southwest 9th Street Des Moines Iowa 50315-6667 United States\",\"address\":\"7401 Southwest 9th Street\",\"suite\":null,\"city\":\"Des Moines\",\"civicCityId\":\"498d77c9-5f41-4693-8d37-6fbe2106159b\",\"neighborhood\":null,\"county\":\"Polk County\",\"state\":\"Iowa\",\"postal\":\"50315-6667\",\"country\":\"United States\",\"countryCode\":null,\"locationVisibilityId\":0,\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"areaId\":null,\"latitude\":41.5197844,\"longitude\":-93.6251551,\"maxLatitude\":999.0,\"minLatitude\":999.0,\"maxLongitude\":999.0,\"minLongitude\":999.0,\"geoCodeOverride\":false,\"timezone\":\"Central Standard Time\"}],\"status\":1,\"organization\":{\"authorization\":false,\"organizationAuthorization\":true,\"name\":\"Blank Park Zoo\",\"description\":\"The mission of the Blank Park Zoo is to inspire an appreciation of the natural world through conservation, education, research and recreation and has been a part of the Des Moines metro community since 1963\",\"url\":\"blankparkzoo\",\"internalUrl\":null,\"organizationId\":\"577b00aa-17b4-400c-89ab-41cadf1c6ea3\",\"reviewedBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"reviewedOn\":\"2019-09-19T21:35:38.6062420+00:00\",\"linked\":false,\"logo\":\"ed71aaf0-e9d4-4a52-9384-168636d30580.png\"},\"createdBy\":\"9e1ec785-290f-4e09-b469-d8f2b8a5c337\",\"cbfName\":\"Hillary\",\"cblName\":\"Nielsen\",\"startDate\":\"2019-09-19T05:00:00.0000000\",\"endDate\":\"2020-09-18T05:00:00.0000000\",\"isActive\":false,\"isUnlistedProject\":false,\"ongoing\":true,\"isDirectlyOwnedOrSponsored\":false,\"isOwnedOrRepresentedViaOrganization\":true,\"volunteersNeeded\":0,\"volunteersAcquired\":0,\"projectOwnerName\":\"Linda Wilson\",\"projectOwnerUserId\":\"577b00aa-17b4-400c-89ab-41cadf1c6ea3\"}],\"draftProjects\":[],\"templateProjects\":[]}" - }, - "redirectURL": "", - "headersSize": 408, - "bodySize": 52850 - }, - "cache": {}, - "timings": { - "blocked": -1, - "dns": 0, - "connect": 0, - "ssl": 0, - "send": 0, - "wait": 856, - "receive": 29 - }, - "time": 885, - "_securityState": "secure", - "serverIPAddress": "104.68.113.88", - "connection": "443", - "pageref": "page_3" - }, - { - "startedDateTime": "2025-10-04T11:02:05.826-06:00", - "request": { - "bodySize": 0, - "method": "GET", - "url": "https://www.facebook.com/tr/?id=251409689078404&ev=PageView&dl=https%3A%2F%2Fwww.justserve.org%2Fadmin%2Fusers%3Ftab%3Dboundaries%26userId%3D6a1b0bce-27be-4985-b221-a96c5612473c&rl=&if=false&ts=1759597325783&sw=1408&sh=880&cudff[em]=********.****%40*********.***&cudff[zp]=%23%23%23%23%23&ncudff[em]=********.****%40*********.***&udff[em]=e4eb98c32760ed013a7a016c86f598068572c55fd8ff8758dd583b10211b7c4f&ncudff[zp]=%23%23%23%23%23&udff[zp]=7863ea3f80774c60835b1e09debfdd54d1f353b3a15f12c312b34e9213e500fd&audff[em]=e4eb98c32760ed013a7a016c86f598068572c55fd8ff8758dd583b10211b7c4f&audff[zp]=7863ea3f80774c60835b1e09debfdd54d1f353b3a15f12c312b34e9213e500fd&v=2.9.233&r=stable&ec=15&o=14366&fbp=fb.1.1758815969658.680488826508573002&cs_est=true&ler=empty&pmd[title]=JustServe&pmd[description]=Just%20Serve%20in%20your%20community.%20Find%20projects%20in%20your%20area%20on%20Justserve.org.&pmd[keywords]=serve%2C%20service%2C%20service%20opportunities%2C%20community%2C%20projects%2C%20service%20projects%2C%20Volunteer%2C%20Volunteer%20opportunities%2C%20projects%2C%20service%20projects%2C%20JustServe%20Home%2C%20Community%20Service%2C%20volunteerism%2C%20Just%20Serve&plt=416&it=1759597325779&coo=false&expv2[0]=pl1&expv2[1]=el2&expv2[2]=bc3&rqm=GET", - "httpVersion": "HTTP/3", - "headers": [ - { - "name": "Host", - "value": "www.facebook.com" - }, - { - "name": "User-Agent", - "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0" - }, - { - "name": "Accept", - "value": "image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5" - }, - { - "name": "Accept-Language", - "value": "en-US,en;q=0.5" - }, - { - "name": "Accept-Encoding", - "value": "gzip, deflate, br, zstd" - }, - { - "name": "Referer", - "value": "https://www.justserve.org/" - }, - { - "name": "Alt-Used", - "value": "www.facebook.com" - }, - { - "name": "Connection", - "value": "keep-alive" - }, - { - "name": "Cookie", - "value": "fr=0yPQnjyD5dLwhF3Jb..Bo1wQP...1.0.Bo1wQP." - }, - { - "name": "Sec-Fetch-Dest", - "value": "image" - }, - { - "name": "Sec-Fetch-Mode", - "value": "no-cors" - }, - { - "name": "Sec-Fetch-Site", - "value": "cross-site" - }, - { - "name": "Priority", - "value": "u=6, i" - } - ], - "cookies": [ - { - "name": "fr", - "value": "0yPQnjyD5dLwhF3Jb..Bo1wQP...1.0.Bo1wQP." - } - ], - "queryString": [ - { - "name": "id", - "value": "251409689078404" - }, - { - "name": "ev", - "value": "PageView" - }, - { - "name": "dl", - "value": "https://www.justserve.org/admin/users?tab=boundaries&userId=6a1b0bce-27be-4985-b221-a96c5612473c" - }, - { - "name": "rl", - "value": "" - }, - { - "name": "if", - "value": "false" - }, - { - "name": "ts", - "value": "1759597325783" - }, - { - "name": "sw", - "value": "1408" - }, - { - "name": "sh", - "value": "880" - }, - { - "name": "cudff[em]", - "value": "********.****@*********.***" - }, - { - "name": "cudff[zp]", - "value": "#####" - }, - { - "name": "ncudff[em]", - "value": "********.****@*********.***" - }, - { - "name": "udff[em]", - "value": "e4eb98c32760ed013a7a016c86f598068572c55fd8ff8758dd583b10211b7c4f" - }, - { - "name": "ncudff[zp]", - "value": "#####" - }, - { - "name": "udff[zp]", - "value": "7863ea3f80774c60835b1e09debfdd54d1f353b3a15f12c312b34e9213e500fd" - }, - { - "name": "audff[em]", - "value": "e4eb98c32760ed013a7a016c86f598068572c55fd8ff8758dd583b10211b7c4f" - }, - { - "name": "audff[zp]", - "value": "7863ea3f80774c60835b1e09debfdd54d1f353b3a15f12c312b34e9213e500fd" - }, - { - "name": "v", - "value": "2.9.233" - }, - { - "name": "r", - "value": "stable" - }, - { - "name": "ec", - "value": "15" - }, - { - "name": "o", - "value": "14366" - }, - { - "name": "fbp", - "value": "fb.1.1758815969658.680488826508573002" - }, - { - "name": "cs_est", - "value": "true" - }, - { - "name": "ler", - "value": "empty" - }, - { - "name": "pmd[title]", - "value": "JustServe" - }, - { - "name": "pmd[description]", - "value": "Just Serve in your community. Find projects in your area on Justserve.org." - }, - { - "name": "pmd[keywords]", - "value": "serve, service, service opportunities, community, projects, service projects, Volunteer, Volunteer opportunities, projects, service projects, JustServe Home, Community Service, volunteerism, Just Serve" - }, - { - "name": "plt", - "value": "416" - }, - { - "name": "it", - "value": "1759597325779" - }, - { - "name": "coo", - "value": "false" - }, - { - "name": "expv2[0]", - "value": "pl1" - }, - { - "name": "expv2[1]", - "value": "el2" - }, - { - "name": "expv2[2]", - "value": "bc3" - }, - { - "name": "rqm", - "value": "GET" - } - ], - "headersSize": 1750 - }, - "response": { - "status": 200, - "statusText": "", - "httpVersion": "HTTP/3", - "headers": [ - { - "name": "content-type", - "value": "text/plain" - }, - { - "name": "access-control-allow-origin", - "value": "" - }, - { - "name": "access-control-allow-credentials", - "value": "true" - }, - { - "name": "strict-transport-security", - "value": "max-age=31536000; includeSubDomains" - }, - { - "name": "cross-origin-resource-policy", - "value": "cross-origin" - }, - { - "name": "content-length", - "value": "0" - }, - { - "name": "server", - "value": "proxygen-bolt" - }, - { - "name": "x-fb-connection-quality", - "value": "EXCELLENT; q=0.9, rtt=28, rtx=0, c=29, mss=1232, tbw=13915, tp=85, tpl=0, uplat=0, ullat=0" - }, - { - "name": "alt-svc", - "value": "h3=\":443\"; ma=86400" - }, - { - "name": "priority", - "value": "u=6,i" - }, - { - "name": "date", - "value": "Sat, 04 Oct 2025 17:01:49 GMT" - } - ], - "cookies": [], - "content": { - "mimeType": "text/plain", - "size": 0, - "text": "" - }, - "redirectURL": "", - "headersSize": 463, - "bodySize": 463 - }, - "cache": {}, - "timings": { - "blocked": 1, - "dns": 0, - "connect": 0, - "ssl": 0, - "send": 0, - "wait": 25, - "receive": 1 - }, - "time": 27, - "_securityState": "secure", - "serverIPAddress": "2a03:2880:f32b:9:face:b00c:0:25de", - "connection": "443", - "pageref": "page_3" - }, - { - "startedDateTime": "2025-10-04T11:02:05.960-06:00", - "request": { - "bodySize": 0, - "method": "GET", - "url": "https://www.justserve.org/api/v1/users/641875c7-c6df-4c15-a6e9-7e796ccc32f1/boundaries/church/0/d6165973-8154-48a1-93cd-4f34f9b31f48/1", - "httpVersion": "HTTP/1.1", - "headers": [ - { - "name": "Host", - "value": "www.justserve.org" - }, - { - "name": "User-Agent", - "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0" - }, - { - "name": "Accept", - "value": "application/json, text/plain, */*" - }, - { - "name": "Accept-Language", - "value": "en-US,en;q=0.5" - }, - { - "name": "Accept-Encoding", - "value": "gzip, deflate, br, zstd" - }, - { - "name": "Referer", - "value": "https://www.justserve.org/admin/users?tab=boundaries&userId=6a1b0bce-27be-4985-b221-a96c5612473c" - }, - { - "name": "Authorization", - "value": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI2NDE4NzVjNy1jNmRmLTRjMTUtYTZlOS03ZTc5NmNjYzMyZjEiLCJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoiNjQxODc1YzctYzZkZi00YzE1LWE2ZTktN2U3OTZjY2MzMmYxIiwianRpIjoiM2Y5ZjhiYjMtYmU0OC00OTJhLWIxZTktY2M4YzdiYTQ1MzEwIiwiZW1haWwiOiJqb25hdGhhbi56b2xsaW5nZXJAY2h1cmNob2ZqZXN1c2NocmlzdC5vcmciLCJleHRlcm5hbF9pZCI6IjY0MTg3NWM3LWM2ZGYtNGMxNS1hNmU5LTdlNzk2Y2NjMzJmMSIsIm5hbWUiOiJKb25hdGhhbiBab2xsaW5nZXIiLCJvcmdhbml6YXRpb25zIjoiQXJlYSBTcGVjaWFsaXN0cywiLCJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL3dzLzIwMDgvMDYvaWRlbnRpdHkvY2xhaW1zL3JvbGUiOiIxOCIsImlzcyI6Imh0dHBzOi8vd3d3Lmp1c3RzZXJ2ZS5vcmcifQ.US5F_y4pQJYBZSKw39IAynHK-Wb3K3QA1sNzL66lQ6w" - }, - { - "name": "Connection", - "value": "keep-alive" - }, - { - "name": "Cookie", - "value": "_fbp=fb.1.1758815969658.680488826508573002; NEXT_LOCALE=en-us; dtCookie=v_4_srv_2_sn_21322B6E90118493E0F96A34F31CA69F_perc_100000_ol_0_mul_1_app-3A8ada1280bee91d29_0_rcs-3Acss_0" - }, - { - "name": "Sec-Fetch-Dest", - "value": "empty" - }, - { - "name": "Sec-Fetch-Mode", - "value": "cors" - }, - { - "name": "Sec-Fetch-Site", - "value": "same-origin" - } - ], - "cookies": [ - { - "name": "_fbp", - "value": "fb.1.1758815969658.680488826508573002" - }, - { - "name": "NEXT_LOCALE", - "value": "en-us" - }, - { - "name": "dtCookie", - "value": "v_4_srv_2_sn_21322B6E90118493E0F96A34F31CA69F_perc_100000_ol_0_mul_1_app-3A8ada1280bee91d29_0_rcs-3Acss_0" - } - ], - "queryString": [], - "headersSize": 1478 - }, - "response": { - "status": 200, - "statusText": "OK", - "httpVersion": "HTTP/1.1", - "headers": [ - { - "name": "Content-Type", - "value": "application/json; charset=utf-8" - }, - { - "name": "Content-Length", - "value": "4987" - }, - { - "name": "Server", - "value": "Kestrel" - }, - { - "name": "Expires", - "value": "Sat, 04 Oct 2025 17:01:49 GMT" - }, - { - "name": "Cache-Control", - "value": "max-age=0, no-cache, no-store" - }, - { - "name": "Pragma", - "value": "no-cache" - }, - { - "name": "Date", - "value": "Sat, 04 Oct 2025 17:01:49 GMT" - }, - { - "name": "Connection", - "value": "keep-alive" - }, - { - "name": "Server-Timing", - "value": "cdn-cache; desc=MISS" - }, - { - "name": "Server-Timing", - "value": "edge; dur=65" - }, - { - "name": "Server-Timing", - "value": "origin; dur=65" - }, - { - "name": "Server-Timing", - "value": "ak_p; desc=\"1759597309664_399924805_70839794_12960_685_62_0_-\";dur=1" - } - ], - "cookies": [], - "content": { - "mimeType": "application/json; charset=utf-8", - "size": 4987, - "text": "[{\"id\":\"2151480\",\"ldsGeographyId\":\"c56edf9f-12be-4500-af3c-2f04d37678df\",\"unitId\":\"2151480\",\"name\":\"Africa Central Area\",\"areaId\":\"2151480\",\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"type\":1,\"manageable\":true},{\"id\":\"790230\",\"ldsGeographyId\":\"6968d631-d050-48c9-ab66-335ee8141d51\",\"unitId\":\"790230\",\"name\":\"Africa South Area\",\"areaId\":\"790230\",\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"type\":1,\"manageable\":true},{\"id\":\"791024\",\"ldsGeographyId\":\"dca64da7-3076-4c2b-b13f-d665d29805ec\",\"unitId\":\"791024\",\"name\":\"Africa West Area\",\"areaId\":\"791024\",\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"type\":1,\"manageable\":true},{\"id\":\"790060\",\"ldsGeographyId\":\"4731b254-6fb9-4ce3-a53d-5921699736c6\",\"unitId\":\"790060\",\"name\":\"Asia Area\",\"areaId\":\"790060\",\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"type\":1,\"manageable\":true},{\"id\":\"790249\",\"ldsGeographyId\":\"7f790f33-0cae-4894-80cb-5bc72a06bda6\",\"unitId\":\"790249\",\"name\":\"Asia North Area\",\"areaId\":\"790249\",\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"type\":1,\"manageable\":true},{\"id\":\"790192\",\"ldsGeographyId\":\"0a7e42e4-94c4-433e-b363-1d5c4ebc67d5\",\"unitId\":\"790192\",\"name\":\"Brazil Area\",\"areaId\":\"790192\",\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"type\":1,\"manageable\":true},{\"id\":\"2288435\",\"ldsGeographyId\":\"ea08c8cb-f53d-400c-b306-27f47e0c1baa\",\"unitId\":\"2288435\",\"name\":\"Canada Area\",\"areaId\":\"2288435\",\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"type\":1,\"manageable\":true},{\"id\":\"780693\",\"ldsGeographyId\":\"c1064ac0-d3f2-46cc-9a8f-9f08672a415c\",\"unitId\":\"780693\",\"name\":\"Caribbean Area\",\"areaId\":\"780693\",\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"type\":1,\"manageable\":true},{\"id\":\"790222\",\"ldsGeographyId\":\"3e57f1a8-d2f2-42fb-9886-9ab1f913ece4\",\"unitId\":\"790222\",\"name\":\"Central America Area\",\"areaId\":\"790222\",\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"type\":1,\"manageable\":true},{\"id\":\"790028\",\"ldsGeographyId\":\"0a1dbbe6-74d9-4312-9bf0-4123d70eca06\",\"unitId\":\"790028\",\"name\":\"Eurasian Area\",\"areaId\":\"790028\",\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"type\":1,\"manageable\":true},{\"id\":\"790257\",\"ldsGeographyId\":\"63fc7138-3041-4239-85e2-0ff665c738f4\",\"unitId\":\"790257\",\"name\":\"Europe Central Area\",\"areaId\":\"790257\",\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"type\":1,\"manageable\":true},{\"id\":\"790176\",\"ldsGeographyId\":\"a76984eb-3785-4437-af61-c6be93866baf\",\"unitId\":\"790176\",\"name\":\"Europe North Area\",\"areaId\":\"790176\",\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"type\":1,\"manageable\":true},{\"id\":\"790079\",\"ldsGeographyId\":\"169e9d19-0253-4827-baf8-557c5aedde5f\",\"unitId\":\"790079\",\"name\":\"México Area\",\"areaId\":\"790079\",\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"type\":1,\"manageable\":true},{\"id\":\"563013\",\"ldsGeographyId\":\"842e66a7-2343-4676-bdc8-6c6fac2b757a\",\"unitId\":\"563013\",\"name\":\"Middle East/Africa North Area\",\"areaId\":\"563013\",\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"type\":1,\"manageable\":true},{\"id\":\"791040\",\"ldsGeographyId\":\"3ead334c-feca-4f39-b84c-3c0ec9e9c443\",\"unitId\":\"791040\",\"name\":\"Pacific Area\",\"areaId\":\"791040\",\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"type\":1,\"manageable\":true},{\"id\":\"790184\",\"ldsGeographyId\":\"4ffdb042-363d-4e22-a771-f2d13d698f1f\",\"unitId\":\"790184\",\"name\":\"Philippines Area\",\"areaId\":\"790184\",\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"type\":1,\"manageable\":true},{\"id\":\"791067\",\"ldsGeographyId\":\"fb1e93ce-6b00-4b07-83b2-65178f033d15\",\"unitId\":\"791067\",\"name\":\"South America Northwest Area\",\"areaId\":\"791067\",\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"type\":1,\"manageable\":true},{\"id\":\"790109\",\"ldsGeographyId\":\"3a40a231-3296-4c07-a19a-3af197e80361\",\"unitId\":\"790109\",\"name\":\"South America South Area\",\"areaId\":\"790109\",\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"type\":1,\"manageable\":true},{\"id\":\"790206\",\"ldsGeographyId\":\"d874c787-b727-4b8d-ba3c-182557866fbb\",\"unitId\":\"790206\",\"name\":\"United States Central Area\",\"areaId\":\"790206\",\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"type\":1,\"manageable\":true},{\"id\":\"790168\",\"ldsGeographyId\":\"9b68ae39-d938-4a39-b629-db311d55dc38\",\"unitId\":\"790168\",\"name\":\"United States Northeast Area\",\"areaId\":\"790168\",\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"type\":1,\"manageable\":true},{\"id\":\"790087\",\"ldsGeographyId\":\"c91a886a-f5e5-42b7-9726-c0bd05afc862\",\"unitId\":\"790087\",\"name\":\"United States Southeast Area\",\"areaId\":\"790087\",\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"type\":1,\"manageable\":true},{\"id\":\"790052\",\"ldsGeographyId\":\"ade016dc-1442-457f-8f43-8172f8806a81\",\"unitId\":\"790052\",\"name\":\"United States Southwest Area\",\"areaId\":\"790052\",\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"type\":1,\"manageable\":true},{\"id\":\"790036\",\"ldsGeographyId\":\"e28e5589-7a36-4b67-aff6-332a35dba5a2\",\"unitId\":\"790036\",\"name\":\"United States West Area\",\"areaId\":\"790036\",\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"type\":1,\"manageable\":true},{\"id\":\"425303\",\"ldsGeographyId\":\"5efa515b-f446-4d33-bef6-1da947997458\",\"unitId\":\"425303\",\"name\":\"Utah Area\",\"areaId\":\"425303\",\"missionId\":null,\"ccId\":null,\"stakeId\":null,\"type\":1,\"manageable\":true}]" - }, - "redirectURL": "", - "headersSize": 407, - "bodySize": 5394 - }, - "cache": {}, - "timings": { - "blocked": 2, - "dns": 0, - "connect": 0, - "ssl": 0, - "send": 0, - "wait": 163, - "receive": 3 - }, - "time": 168, - "_securityState": "secure", - "serverIPAddress": "104.68.113.88", - "connection": "443", - "pageref": "page_3" - } - ] - } -} \ No newline at end of file diff --git a/src/test/groovy/org/justserve/cli/command/UnReassignProjectsSpec.groovy b/src/test/groovy/org/justserve/cli/command/UnReassignProjectsSpec.groovy deleted file mode 100644 index a680f2d..0000000 --- a/src/test/groovy/org/justserve/cli/command/UnReassignProjectsSpec.groovy +++ /dev/null @@ -1,65 +0,0 @@ -package org.justserve.cli.command - -import io.micronaut.core.io.ResourceResolver -import io.micronaut.test.extensions.spock.annotation.MicronautTest -import jakarta.inject.Inject -import org.justserve.util.EmailParser -import spock.lang.Execution -import spock.lang.Shared - -import java.util.stream.Collectors -import java.util.stream.Stream - -import static org.spockframework.runtime.model.parallel.ExecutionMode.SAME_THREAD - -@Execution(SAME_THREAD) -@MicronautTest -class UnReassignProjectsSpec extends BaseCommandSpec { - - @Inject - @Shared - ResourceResolver resourceResolver - - @Shared - File tempEmlFile - - @Shared - Map testEmails - - def setupSpec() { - testEmails = new HashMap<>() - Stream.of("sara-anderson-email.eml", "test-with-automated-email.eml", "test-without-automated-email.eml").forEach { file -> - def resource = resourceResolver.getResourceAsStream("classpath:$file") - resource.ifPresent { stream -> - try (BufferedReader reader = new BufferedReader(new InputStreamReader(stream))) { - testEmails.put(file.replace(".eml", ""), reader.lines().collect(Collectors.joining(System.lineSeparator()))) - } catch (IOException e) { - throw new RuntimeException("Failed to read test file: $file", e) - } - } - } - } - - def "can make reassignments from #title to a user"(String title, String fileContent) { - given: - if (title.contains("without")) { - return - } - String testFile = new File(resourceResolver.getResource("classpath:${title}.eml").get().toURI()).absolutePath - def args = ["unReassignProjects", "-u", readOnlyUser.uuid.toString(), "-f", testFile] - def projectCount = EmailParser.getProjects(fileContent).values().flatten().size() - - when: - def (outputStream, errorStream) = executeCommand(ctx, args as String[]) - - then: - errorStream.matches(blankRegex) - projects.each { project -> - outputStream.contains(project.id.toString()) - } - outputStream.contains("Successfully reassigned ${projectCount} projects to user ${readOnlyUser.uuid}") - - where: - [title, fileContent] << testEmails.collect { key, value -> [key, value] } - } -} diff --git a/src/test/groovy/org/justserve/client/UserClientSpec.groovy b/src/test/groovy/org/justserve/client/UserClientSpec.groovy deleted file mode 100644 index f8f36bd..0000000 --- a/src/test/groovy/org/justserve/client/UserClientSpec.groovy +++ /dev/null @@ -1,63 +0,0 @@ -package org.justserve.client - -import io.micronaut.http.client.exceptions.HttpClientResponseException -import net.datafaker.Faker -import org.justserve.JustServeSpec -import org.justserve.TestUser -import org.justserve.model.UserHashRequestByEmail - -import static io.micronaut.http.HttpStatus.UNAUTHORIZED - -class UserClientSpec extends JustServeSpec { - - def "create user #{user.firstname} #{user.lastname} #{user.email} #{user.password} #{user.postal} #{user.locale} #{user.country} #{user.countryCode}"() { - when: - TestUser user = new TestUser(new Faker(Locale.of("en-us"))) - then: - createUser(client, user) - - where: - client | _ - userClient | _ - noAuthUserClient | _ - } - - def "get admin context for a generated user with as an admin"() { - //todo: add user with admin context to testing - when: - def response = client.getAdminContext(readOnlyUser.uuid) - - then: - if (!expectedError) { - response.body() != null - return - } - def exception = thrown(HttpClientResponseException) - exception.status == expectedError - - where: - expectedError | client | _ - null | userClient | _ - UNAUTHORIZED | noAuthUserClient | _ - - } - - def "get tempPassword for a previously created user"() { - given: - when: - def response = client.getTempPassword(new UserHashRequestByEmail(readOnlyUser.email)) - - then: - if (!expectedError) { - response.body() != null - return - } - def exception = thrown(HttpClientResponseException) - exception.status == expectedError - - where: - expectedError | client | _ - null | userClient | _ - UNAUTHORIZED | noAuthUserClient | _ - } -} diff --git a/src/test/groovy/org/justserve/util/TestEmailGenerator.groovy b/src/test/groovy/org/justserve/util/TestEmailGenerator.groovy deleted file mode 100644 index dfa67a0..0000000 --- a/src/test/groovy/org/justserve/util/TestEmailGenerator.groovy +++ /dev/null @@ -1,128 +0,0 @@ -package org.justserve.util - -import net.datafaker.Faker -import org.justserve.TestUser -import org.justserve.model.ProjectCard - -class TestEmailGenerator { - - static String generateMockEmlContent(List projects, TestUser recipient) { - StringBuilder sb = new StringBuilder() - sb.append("From: JustServe \n") - sb.append("To: " + recipient.firstName + " " + recipient.lastName + " <" + recipient.email + ">\n") - sb.append("Subject: Project Reassignment\n") - sb.append("Content-Type: text/html; charset=\"UTF-8\"\n") - sb.append("Content-Transfer-Encoding: 8bit\n\n") - - String recipientName = recipient.firstName + " " + recipient.lastName - String recipientEmail = recipient.email - Faker faker = new Faker() - String senderName = faker.name().fullName() - - String htmlTemplateStart = """
    Here you go.  Thx for your help.  

    ---------- Forwarded message ---------
    From: JustServe.org <noreply-js@mail.justserve.org>
    Date: Tue, Dec 16, 2025 at 8:27 AM
    Subject: Project Reassignment
    To: <${recipientEmail}>


    - - - - -
    - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - -
    - Logo Title -
    - - - - - - - - - - -
    Project Reassignment
    -

    - - The following projects have been reassigned from ${senderName}, to ${recipientName}, by ${senderName}: - -

    -
      """ - - String htmlTemplateEnd = """
    -

    - - ${recipientName} can now access these projects in their manage projects page for editing. - -

    -
    -
    -
    - - - - - - - - - - - - - - -
    -

    JustServe.org is provided as a service by The Church of Jesus Christ of Latter-day Saints.

    -

    © 2020 by Intellectual Reserve, Inc. All rights reserved.

    -

    50 East North Temple, Salt Lake City, Utah, 84150

    -

    Terms of Use (Updated 8/12/2021) | Privacy Notice (Updated 10/12/2022)

    -

    This email was sent to: ${recipientEmail}

    -

    If you would like to stop receiving these types of emails you may unsubscribe from your account settings page.

    -
    -
    - -
    -


    --
    ${recipientName}
    JustServe Assistant Area Director
    Northern California 
    925-699-1395  Cell and Text



    -""" - - sb.append(htmlTemplateStart) - - projects.each { project -> - String uglyUrl = "https://urldefense.com/v3/__https://v6q93rxd.r.us-east-1.awstrack.me/L0/https:*2F*2Fwww.justserve.org*2Fprojects*2F" + project.id + "/1/0100019b27fd352e-a7b03409-4c41-4863-b76a-524b7f84f180-000000/DNbIEdheshbb39W79A1Ru2ox05c=3D457__;JSUlJQ!!Oz_3W2l6Vjs!5dejAA5tmpGXmMs_vdlbrwn4wHWu5ytbEcsfO4rx9OUup3ka-dRHFZEinoeDKzwDHUqRP5WvSOsZ5sS1l875dafyqVS6\$" - sb.append("
  • ").append(project.title).append("
  • ") - } - - sb.append(htmlTemplateEnd) - return sb.toString() - } -}