sanger/sequencescape

View on GitHub
app/api/io/project.rb

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
# frozen_string_literal: true
# Controls API V1 IO for Project
class Io::Project < Core::Io::Base
  set_model_for_input(::Project)
  set_json_root(:project)
  set_eager_loading { |model| model.include_project_metadata.include_roles }

  define_attribute_and_json_mapping(
    '
                                              name  => name
                                          approved  => approved
                                             state  => state

             project_metadata.project_manager.name  => project_manager
                project_metadata.project_cost_code  => cost_code
                 project_metadata.funding_comments  => funding_comments
                    project_metadata.collaborators  => collaborators
          project_metadata.external_funding_source  => external_funding_source
       project_metadata.budget_division.name        => budget_division
    project_metadata.sequencing_budget_cost_centre  => budget_cost_centre
            project_metadata.project_funding_model  => funding_model

                                     roles_as_json  => roles
  '
  )
end