Archived
Private
Public Access
1
0
This repository has been archived on 2026-02-04. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
ProjectManager/ProjectManager.Frontend/src/app/services/project.service.ts
2022-12-18 13:30:02 +01:00

59 lines
2.0 KiB
TypeScript

import { Injectable } from '@angular/core';
import {CrudService} from "./crud.service";
import {Project} from "../entities/project";
@Injectable({
providedIn: 'root'
})
export class ProjectService {
public projects: Project[] = []
constructor(private crud: CrudService) {
crud.onUserUpdate.push(this.loadProjects.bind(this));
}
public async loadProjects() {
this.projects = [];
const result = (await this.crud.sendGetRequest<{projects: Project[], running: boolean[]}>("projects")).content;
for (let i = 0; i < result.projects.length; i++) {
this.projects[i] = result.projects[i];
this.projects[i].running = result.running[i];
}
}
public async getProject(projectId: string): Promise<Project> {
const response = await this.crud.sendGetRequest<Project>("projects/" + projectId);
return response.content;
}
public async addProject(name: string): Promise<string> {
const response = await this.crud.sendPostRequest<{projectId: string}>("projects", {name});
return response.content?.projectId;
}
public async editProject(projectId: string, name: string): Promise<boolean> {
const response = await this.crud.sendPutRequest("projects/" + projectId, {name});
return response.success;
}
public async deleteProject(projectId: string): Promise<boolean> {
const response = await this.crud.sendDeleteRequest("projects/" + projectId);
return response.success;
}
public async startProject(projectId: string): Promise<boolean> {
const response = await this.crud.sendGetRequest("projects/" + projectId + "/start");
return response.success;
}
public async stopProject(projectId: string): Promise<boolean> {
const response = await this.crud.sendGetRequest("projects/" + projectId + "/stop");
return response.success;
}
public async isProjectRunning(projectId: string): Promise<boolean> {
const response = await this.crud.sendGetRequest<{started: boolean}>("projects/" + projectId + "/status");
return response.content?.started;
}
}