Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(page-services): add jobs #392

Merged
merged 10 commits into from
Nov 28, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
10 changes: 5 additions & 5 deletions libs/domains/application/src/lib/slices/application.actions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import {
ContainerActionsApi,
ContainerMainCallsApi,
} from 'qovery-typescript-axios'
import { ServiceTypeEnum } from '@qovery/shared/enums'
import { ServiceTypeEnum, isContainer } from '@qovery/shared/enums'
import { ToastEnum, toast } from '@qovery/shared/toast'
import { fetchApplicationDeployments, fetchApplicationsStatus } from './applications.slice'

Expand All @@ -21,7 +21,7 @@ export const postApplicationActionsRestart = createAsyncThunk<
>('applicationActions/restart', async (data, { dispatch }) => {
try {
let response
if (data.serviceType === ServiceTypeEnum.CONTAINER) {
if (isContainer(data.serviceType)) {
response = await containerActionApi.restartContainer(data.applicationId)
} else {
response = await applicationActionApi.restartApplication(data.applicationId)
Expand Down Expand Up @@ -56,7 +56,7 @@ export const postApplicationActionsDeploy = createAsyncThunk<
>('applicationActions/deploy', async (data, { dispatch }) => {
try {
let response
if (data.serviceType === ServiceTypeEnum.CONTAINER) {
if (isContainer(data.serviceType)) {
response = await containerActionApi.restartContainer(data.applicationId)
} else {
response = await applicationActionApi.restartApplication(data.applicationId)
Expand Down Expand Up @@ -113,7 +113,7 @@ export const postApplicationActionsStop = createAsyncThunk<
>('applicationActions/stop', async (data, { dispatch }) => {
try {
let response
if (data.serviceType === ServiceTypeEnum.CONTAINER) {
if (isContainer(data.serviceType)) {
response = await containerActionApi.stopContainer(data.applicationId)
} else {
response = await applicationActionApi.stopApplication(data.applicationId)
Expand Down Expand Up @@ -148,7 +148,7 @@ export const deleteApplicationAction = createAsyncThunk<
>('applicationActions/delete', async (data, { dispatch }) => {
try {
let response
if (data.serviceType === ServiceTypeEnum.CONTAINER) {
if (isContainer(data.serviceType)) {
response = await containerMainCallsApi.deleteContainer(data.applicationId)
} else {
response = await applicationMainCallsApi.deleteApplication(data.applicationId)
Expand Down
37 changes: 27 additions & 10 deletions libs/domains/application/src/lib/slices/applications.slice.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,15 +27,18 @@ import {
ContainersApi,
DeploymentHistoryApplication,
Instance,
JobDeploymentHistoryApi,
JobsApi,
Link,
Status,
} from 'qovery-typescript-axios'
import { ServiceTypeEnum } from '@qovery/shared/enums'
import { ServiceTypeEnum, isContainer, isJob } from '@qovery/shared/enums'
import {
ApplicationEntity,
ApplicationsState,
ContainerApplicationEntity,
GitApplicationEntity,
JobApplicationEntity,
LoadingStatus,
ServiceRunningStatus,
} from '@qovery/shared/interfaces'
Expand Down Expand Up @@ -65,6 +68,9 @@ const containerMetricsApi = new ContainerMetricsApi()
const containerDeploymentsApi = new ContainerDeploymentHistoryApi()
const containerConfigurationApi = new ContainerConfigurationApi()

const jobsApi = new JobsApi()
const jobsDeploymentsApi = new JobDeploymentHistoryApi()

export const fetchApplications = createAsyncThunk<
Application[] | ContainerResponse[],
{ environmentId: string; withoutStatus?: boolean }
Expand All @@ -74,6 +80,8 @@ export const fetchApplications = createAsyncThunk<
applicationsApi.listApplication(data.environmentId),
// fetch Container applications
containersApi.listContainer(data.environmentId),
// fetch Jobs applications
jobsApi.listJobs(data.environmentId),
])

if (!data.withoutStatus) {
Expand All @@ -83,6 +91,7 @@ export const fetchApplications = createAsyncThunk<
return [
...(result[0].data.results as GitApplicationEntity[]),
...(result[1].data.results as ContainerApplicationEntity[]),
...(result[2].data.results as JobApplicationEntity[]),
] as ApplicationEntity[]
})

Expand All @@ -94,9 +103,15 @@ export const fetchApplicationsStatus = createAsyncThunk<Status[], { environmentI
applicationsApi.getEnvironmentApplicationStatus(data.environmentId),
// fetch status Container applications
containersApi.getEnvironmentContainerStatus(data.environmentId),
// fetch status Jobs applications
jobsApi.getEnvironmentJobStatus(data.environmentId),
])

return [...(result[0].data.results as Status[]), ...(result[1].data.results as Status[])]
return [
...(result[0].data.results as Status[]),
...(result[1].data.results as Status[]),
...(result[2].data.results as Status[]),
]
}
)

Expand All @@ -110,7 +125,7 @@ export const editApplication = createAsyncThunk(
silentToaster?: boolean
}) => {
let response
if (payload.serviceType === ServiceTypeEnum.CONTAINER) {
if (isContainer(payload.serviceType)) {
const cloneApplication = Object.assign({}, refactoContainerApplicationPayload(payload.data))
response = await containerMainCallsApi.editContainer(payload.applicationId, cloneApplication as ContainerRequest)
} else {
Expand All @@ -133,7 +148,7 @@ export const createApplication = createAsyncThunk(
serviceType: ServiceTypeEnum
}) => {
let response
if (payload.serviceType === ServiceTypeEnum.CONTAINER) {
if (isContainer(payload.serviceType)) {
response = await containersApi.createContainer(payload.environmentId, payload.data as ContainerRequest)
} else {
response = await applicationsApi.createApplication(payload.environmentId, payload.data as ApplicationRequest)
Expand All @@ -148,7 +163,7 @@ export const fetchApplicationLinks = createAsyncThunk<Link[], { applicationId: s
async (data) => {
let response

if (data.serviceType === ServiceTypeEnum.CONTAINER) {
if (isContainer(data.serviceType)) {
response = await containerMainCallsApi.listContainerLinks(data.applicationId)
} else {
response = await applicationMainCallsApi.listApplicationLinks(data.applicationId)
Expand All @@ -163,7 +178,7 @@ export const fetchApplicationInstances = createAsyncThunk<
>('application/instances', async (data) => {
let response

if (data.serviceType === ServiceTypeEnum.CONTAINER) {
if (isContainer(data.serviceType)) {
response = await containerMetricsApi.getContainerCurrentInstance(data.applicationId)
} else {
response = await applicationMetricsApi.getApplicationCurrentInstance(data.applicationId)
Expand All @@ -184,8 +199,10 @@ export const fetchApplicationDeployments = createAsyncThunk<
{ applicationId: string; serviceType?: ServiceTypeEnum; silently?: boolean }
>('application/deployments', async (data) => {
let response
if (data.serviceType === ServiceTypeEnum.CONTAINER) {
if (isContainer(data.serviceType)) {
response = (await containerDeploymentsApi.listContainerDeploymentHistory(data.applicationId)) as any
} else if (isJob(data.serviceType)) {
response = await jobsDeploymentsApi.listJobDeploymentHistory()
} else {
response = await applicationDeploymentsApi.listApplicationDeploymentHistory(data.applicationId)
}
Expand All @@ -197,7 +214,7 @@ export const fetchApplicationStatus = createAsyncThunk<
{ applicationId: string; serviceType?: ServiceTypeEnum }
>('application/status', async (data) => {
let response
if (data.serviceType === ServiceTypeEnum.CONTAINER) {
if (isContainer(data.serviceType)) {
response = await containerMainCallsApi.getContainerStatus(data.applicationId)
} else {
response = await applicationMainCallsApi.getApplicationStatus(data.applicationId)
Expand All @@ -211,7 +228,7 @@ export const fetchApplicationAdvancedSettings = createAsyncThunk<
{ applicationId: string; serviceType: ServiceTypeEnum }
>('application/advancedSettings', async (data) => {
let response
if (data.serviceType === ServiceTypeEnum.CONTAINER) {
if (isContainer(data.serviceType)) {
response = await containerConfigurationApi.getContainerAdvancedSettings(data.applicationId)
} else {
response = await applicationConfigurationApi.getAdvancedSettings(data.applicationId)
Expand All @@ -229,7 +246,7 @@ export const editApplicationAdvancedSettings = createAsyncThunk<
}
>('application/advancedSettings/edit', async (data) => {
let response
if (data.serviceType === ServiceTypeEnum.CONTAINER) {
if (isContainer(data.serviceType)) {
response = await containerConfigurationApi.editContainerAdvancedSettings(
data.applicationId,
data.settings as ContainerAdvancedSettings[]
Expand Down
10 changes: 5 additions & 5 deletions libs/domains/application/src/lib/slices/custom-domain.slice.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { createAsyncThunk, createEntityAdapter, createSelector, createSlice } from '@reduxjs/toolkit'
import { ContainerCustomDomainApi, CustomDomain, CustomDomainApi } from 'qovery-typescript-axios'
import { ServiceTypeEnum } from '@qovery/shared/enums'
import { ServiceTypeEnum, isContainer } from '@qovery/shared/enums'
import { CustomDomainsState } from '@qovery/shared/interfaces'
import { ToastEnum, toast, toastError } from '@qovery/shared/toast'
import { addOneToManyRelation, getEntitiesByIds, removeOneToManyRelation } from '@qovery/shared/utils'
Expand All @@ -17,7 +17,7 @@ export const fetchCustomDomains = createAsyncThunk(
'customDomains/fetch',
async (payload: { applicationId: string; serviceType: ServiceTypeEnum }) => {
let response
if (payload.serviceType === ServiceTypeEnum.CONTAINER) {
if (isContainer(payload.serviceType)) {
response = await customDomainContainerApi.listContainerCustomDomain(payload.applicationId)
} else {
response = await customDomainApplicationApi.listApplicationCustomDomain(payload.applicationId)
Expand All @@ -36,7 +36,7 @@ export const createCustomDomain = createAsyncThunk(
toasterCallback: () => void
}) => {
let response
if (payload.serviceType === ServiceTypeEnum.CONTAINER) {
if (isContainer(payload.serviceType)) {
response = await customDomainContainerApi.createContainerCustomDomain(payload.applicationId, {
domain: payload.domain,
})
Expand All @@ -60,7 +60,7 @@ export const editCustomDomain = createAsyncThunk(
toasterCallback: () => void
}) => {
let response
if (payload.serviceType === ServiceTypeEnum.CONTAINER) {
if (isContainer(payload.serviceType)) {
response = await customDomainContainerApi.editContainerCustomDomain(
payload.applicationId,
payload.customDomain.id,
Expand All @@ -81,7 +81,7 @@ export const editCustomDomain = createAsyncThunk(
export const deleteCustomDomain = createAsyncThunk(
'customDomains/delete',
async (payload: { applicationId: string; customDomain: CustomDomain; serviceType: ServiceTypeEnum }) => {
if (payload.serviceType === ServiceTypeEnum.CONTAINER) {
if (isContainer(payload.serviceType)) {
return await customDomainContainerApi.deleteContainerCustomDomain(payload.applicationId, payload.customDomain.id)
} else {
return await customDomainApplicationApi.deleteCustomDomain(payload.applicationId, payload.customDomain.id)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import {
VariableImportRequestVars,
} from 'qovery-typescript-axios'
import { Key } from 'qovery-typescript-axios/api'
import { ServiceTypeEnum } from '@qovery/shared/enums'
import { ServiceTypeEnum, isContainer } from '@qovery/shared/enums'
import { EnvironmentVariableEntity, EnvironmentVariablesState } from '@qovery/shared/interfaces'
import { ToastEnum, toast, toastError } from '@qovery/shared/toast'
import { addOneToManyRelation, getEntitiesByIds, removeOneToManyRelation } from '@qovery/shared/utils'
Expand All @@ -29,7 +29,7 @@ export const fetchEnvironmentVariables = createAsyncThunk(
'environmentVariables/list',
async (payload: { applicationId: string; serviceType: ServiceTypeEnum }) => {
let response
if (payload.serviceType === ServiceTypeEnum.CONTAINER) {
if (isContainer(payload.serviceType)) {
response = await containerEnvironmentVariableApi.listContainerEnvironmentVariable(payload.applicationId)
} else {
response = await applicationEnvironmentVariableApi.listApplicationEnvironmentVariable(payload.applicationId)
Expand All @@ -48,7 +48,7 @@ export const importEnvironmentVariables = createAsyncThunk(
serviceType: ServiceTypeEnum
}) => {
let response
if (payload.serviceType === ServiceTypeEnum.CONTAINER) {
if (isContainer(payload.serviceType)) {
response = await containerEnvironmentVariableApi.importContainerEnvironmentVariable(payload.applicationId, {
overwrite: payload.overwriteEnabled,
vars: payload.vars,
Expand Down Expand Up @@ -89,7 +89,7 @@ export const createEnvironmentVariablePayloadCreator = async (payload: {
break
case APIVariableScopeEnum.APPLICATION:
default:
if (payload.serviceType === ServiceTypeEnum.CONTAINER) {
if (isContainer(payload.serviceType)) {
response = await containerEnvironmentVariableApi.createContainerEnvironmentVariable(
payload.entityId,
payload.environmentVariableRequest
Expand Down Expand Up @@ -138,7 +138,7 @@ export const createOverrideEnvironmentVariablesPayloadCreator = async (payload:
break
case APIVariableScopeEnum.APPLICATION:
default:
if (payload.serviceType === ServiceTypeEnum.CONTAINER) {
if (isContainer(payload.serviceType)) {
response = await containerEnvironmentVariableApi.createContainerEnvironmentVariableOverride(
entityId,
environmentVariableId,
Expand Down Expand Up @@ -192,7 +192,7 @@ export const createAliasEnvironmentVariables = createAsyncThunk(
break
case APIVariableScopeEnum.APPLICATION:
default:
if (payload.serviceType === ServiceTypeEnum.CONTAINER) {
if (isContainer(payload.serviceType)) {
response = await containerEnvironmentVariableApi.createContainerEnvironmentVariableAlias(
entityId,
environmentVariableId,
Expand Down Expand Up @@ -241,7 +241,7 @@ export const editEnvironmentVariables = createAsyncThunk(
break
case APIVariableScopeEnum.APPLICATION:
default:
if (payload.serviceType === ServiceTypeEnum.CONTAINER) {
if (isContainer(payload.serviceType)) {
response = await containerEnvironmentVariableApi.editContainerEnvironmentVariable(
payload.entityId,
payload.environmentVariableId,
Expand Down Expand Up @@ -286,7 +286,7 @@ export const deleteEnvironmentVariable = createAsyncThunk(
break
case APIVariableScopeEnum.APPLICATION:
default:
if (payload.serviceType === ServiceTypeEnum.CONTAINER) {
if (isContainer(payload.serviceType)) {
response = await containerEnvironmentVariableApi.deleteContainerEnvironmentVariable(
payload.entityId,
payload.environmentVariableId
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import {
Value,
} from 'qovery-typescript-axios'
import { Key } from 'qovery-typescript-axios/api'
import { ServiceTypeEnum } from '@qovery/shared/enums'
import { ServiceTypeEnum, isContainer } from '@qovery/shared/enums'
import { SecretEnvironmentVariableEntity, SecretEnvironmentVariablesState } from '@qovery/shared/interfaces'
import { ToastEnum, toast, toastError } from '@qovery/shared/toast'
import { addOneToManyRelation, getEntitiesByIds } from '@qovery/shared/utils'
Expand All @@ -28,7 +28,7 @@ export const fetchSecretEnvironmentVariables = createAsyncThunk(
'secretEnvironmentVariables/list',
async (payload: { applicationId: string; serviceType: ServiceTypeEnum }) => {
let response
if (payload.serviceType === ServiceTypeEnum.CONTAINER) {
if (isContainer(payload.serviceType)) {
response = await containerSecretApi.listContainerSecrets(payload.applicationId)
} else {
response = await applicationSecretApi.listApplicationSecrets(payload.applicationId)
Expand Down Expand Up @@ -62,7 +62,7 @@ export const createSecret = createAsyncThunk(
break
case APIVariableScopeEnum.APPLICATION:
default:
if (payload.serviceType === ServiceTypeEnum.CONTAINER) {
if (isContainer(payload.serviceType)) {
response = await containerSecretApi.createContainerSecret(
payload.entityId,
payload.environmentVariableRequest
Expand Down Expand Up @@ -109,7 +109,7 @@ export const createOverrideSecret = createAsyncThunk(
break
case APIVariableScopeEnum.APPLICATION:
default:
if (payload.serviceType === ServiceTypeEnum.CONTAINER) {
if (isContainer(payload.serviceType)) {
response = await containerSecretApi.createContainerSecretOverride(
entityId,
environmentVariableId,
Expand Down Expand Up @@ -159,7 +159,7 @@ export const createAliasSecret = createAsyncThunk(
break
case APIVariableScopeEnum.APPLICATION:
default:
if (payload.serviceType === ServiceTypeEnum.CONTAINER) {
if (isContainer(payload.serviceType)) {
response = await containerSecretApi.createContainerSecretAlias(
entityId,
environmentVariableId,
Expand Down Expand Up @@ -208,7 +208,7 @@ export const editSecret = createAsyncThunk(
break
case APIVariableScopeEnum.APPLICATION:
default:
if (payload.serviceType === ServiceTypeEnum.CONTAINER) {
if (isContainer(payload.serviceType)) {
response = await containerSecretApi.editContainerSecret(
payload.entityId,
payload.environmentVariableId,
Expand Down Expand Up @@ -247,7 +247,7 @@ export const deleteSecret = createAsyncThunk(
break
case APIVariableScopeEnum.APPLICATION:
default:
if (payload.serviceType === ServiceTypeEnum.CONTAINER) {
if (isContainer(payload.serviceType)) {
response = await containerSecretApi.deleteContainerSecret(payload.entityId, payload.environmentVariableId)
} else {
response = await applicationSecretApi.deleteApplicationSecret(payload.entityId, payload.environmentVariableId)
Expand Down