gisaf-frontend/src/app/admin/admin-basket/data.service.ts

225 lines
6.5 KiB
TypeScript
Raw Normal View History

2024-02-17 12:35:03 +05:30
import { Injectable } from '@angular/core'
import { Observable, of as observableOf } from 'rxjs'
2024-02-17 12:35:03 +05:30
import { map } from 'rxjs/operators'
// import { Apollo, gql } from 'apollo-angular'
2024-02-17 12:35:03 +05:30
import { AdminService, AdminBasket, BasketNameOnly, Project } from '../../openapi'
2024-02-17 12:35:03 +05:30
export class AdminBasketFile {
constructor(
public id: number,
public dir: string,
public name: string,
public url: string,
public md5: string,
public time: Date,
public comment: string,
public status: string,
public store: string,
public project: string,
public surveyor: string,
public equipment: string,
public import_result?: string,
) {}
}
2024-03-25 17:21:39 +05:30
// export class AdminBasket {
// constructor(
// public name: string,
// public files?: AdminBasketFile[],
// public columns?: string[],
// public uploadFields?: string[],
// public projects?: Project[],
// ) {}
// }
2024-02-17 12:35:03 +05:30
export class BasketImportResult {
constructor(
public time: Date,
public message: string,
public details?: string,
) {}
}
export class AdminBasketUploadFieldData {
constructor(
public stores: string[],
public statuses: string[],
public projects: string[],
public surveyors: string[],
public equipments: string[],
) {}
}
// const getAdminBasketsQuery = gql`
// query admin_baskets {
// admin_baskets {
// name
// }
// }
// `
// const getAdminBasketUploadFieldDataQuery = gql`
// query admin_basket_upload_field_data {
// admin_basket_upload_field_data {
// store
// status
// project
// surveyor
// equipment
// }
// }
// `
// const getAdminBasketQuery = gql`
// query admin_basket ($name: String!) {
// admin_basket (name: $name) {
// name
// files {
// id
// name
// dir
// url
// md5
// time
// comment
// status
// store
// project
// surveyor
// equipment
// }
// columns
// uploadFields
// projects
// }
// }
// `
// const deleteAdminBasketItemMutation = gql`
// mutation deleteBasketItem ($basket: String!, $id: Int!) {
// deleteBasketItem (basket: $basket, id: $id) {
// result
// }
// }
// `
// const importAdminBasketItemMutation = gql`
// mutation importBasketItem ($basket: String!, $id: Int!, $dryRun: Boolean) {
// importBasketItem (basket: $basket, id: $id, dryRun: $dryRun) {
// result {
// message
// time
// details
// }
// }
// }
// `
2024-02-17 12:35:03 +05:30
@Injectable()
export class AdminBasketDataService {
constructor(
// private apollo: Apollo,
2024-03-25 17:21:39 +05:30
public adminService: AdminService,
2024-02-17 12:35:03 +05:30
) {}
2024-03-25 17:21:39 +05:30
getBaskets(): Observable<BasketNameOnly[]> {
2024-02-17 12:35:03 +05:30
// Get the list a basket names
2024-03-25 17:21:39 +05:30
return this.adminService.getBasketsApiAdminBasketGet()
2024-02-17 12:35:03 +05:30
}
getBasketUploadFieldData(): Observable<AdminBasketUploadFieldData> {
// Get the list a basket names
console.warn('Migrate Graphql')
return observableOf()
// return this.apollo.query({
// query: getAdminBasketUploadFieldDataQuery,
// }).pipe(map(
// res => res['data']['admin_basket_upload_field_data'].map(
// (data: object) => new AdminBasketUploadFieldData(
// data['store'],
// data['status'],
// data['project'],
// data['surveyor'],
// data['equipment'],
// )
// )
// ))
2024-02-17 12:35:03 +05:30
}
getBasket(name: string): Observable<AdminBasket> {
// Get all info and content of a basket
2024-03-25 17:21:39 +05:30
return this.adminService.getBasketApiAdminBasketNameGet(name)
console.warn('Migrate Graphql')
return observableOf()
// return this.apollo.query({
// query: getAdminBasketQuery,
// variables: {
// name: name
// }
// }).pipe(map(
// res => {
// let data = res['data']['admin_basket']
// return new AdminBasket(
// data['name'],
// data['files'].map(file => new AdminBasketFile(
// file['id'],
// file['dir'],
// file['name'],
// file['url'],
// file['md5'],
// new Date(file['time']),
// file['comment'],
// file['status'],
// file['store'],
// file['project'],
// file['surveyor'],
// file['equipment'],
// )),
// data['columns'],
// data['uploadFields'],
// // XXX: the proejct id isn't actually used in the UI,
// // but required in class definition
// data['projects'] && data['projects'].map(
// (projectName: string) => new Project(undefined, projectName)
// ),
// )
// }
// ))
2024-02-17 12:35:03 +05:30
}
importItem(basket: string, id: number, dryRun: boolean=false): Observable<BasketImportResult> {
console.warn('Migrate Graphql')
return observableOf()
// return this.apollo.mutate({
// mutation: importAdminBasketItemMutation,
// variables: {
// basket: basket,
// id: id,
// dryRun: dryRun
// }
// }).pipe(map(
// resp => new BasketImportResult(
// resp['data']['importBasketItem']['result']['time'],
// resp['data']['importBasketItem']['result']['message'],
// JSON.parse(resp['data']['importBasketItem']['result']['details']),
// )
// ))
2024-02-17 12:35:03 +05:30
}
deleteItem(basket: string, id: number) {
console.warn('Migrate Graphql')
return observableOf()
// return this.apollo.mutate({
// mutation: deleteAdminBasketItemMutation,
// variables: {
// basket: basket,
// id: id,
// }
// }).pipe(map(
// resp => resp['data']['deleteBasketItem']['result']
// ))
2024-02-17 12:35:03 +05:30
}
}