import { ApiRootLinkRel, ApiRootResource, ApiRootService } from '@alfa-client/api-root-shared';
import {
  ApiResourceService,
  ResourceRepository,
  ResourceServiceConfig,
} from '@alfa-client/tech-shared';
import { ConfigurationResource } from './configuration.model';

export class ConfigurationResourceService extends ApiResourceService<
  ApiRootResource,
  ConfigurationResource
> {}

export function createConfigurationResourceService(
  repository: ResourceRepository,
  apiRootService: ApiRootService,
) {
  return new ApiResourceService(buildConfig(apiRootService), repository);
}

function buildConfig(apiRootService: ApiRootService): ResourceServiceConfig<ApiRootResource> {
  return {
    resource: apiRootService.getApiRoot(),
    getLinkRel: ApiRootLinkRel.CONFIGURATION,
  };
}