SpeciesFileGroup/taxonworks

View on GitHub
app/javascript/vue/routes/endpoints/CollectingEvents.js

Summary

Maintainability
A
1 hr
Test Coverage
import baseCRUD, { annotations } from './base'
import AjaxCall from '@/helpers/ajaxCall'

const controller = 'collecting_events'
const permitParams = {
  collecting_event: {
    id: Number,
    verbatim_label: String,
    print_label: String,
    print_label_number_to_print: String,
    document_label: String,
    verbatim_locality: String,
    verbatim_date: String,
    verbatim_longitude: String,
    verbatim_latitude: String,
    verbatim_geolocation_uncertainty: String,
    verbatim_field_number: String,
    verbatim_collectors: String,
    verbatim_method: String,
    geographic_area_id: String,
    minimum_elevation: String,
    maximum_elevation: String,
    elevation_precision: String,
    time_start_hour: String,
    time_start_minute: String,
    time_start_second: String,
    time_end_hour: String,
    time_end_minute: String,
    time_end_second: String,
    start_date_day: String,
    start_date_month: String,
    start_date_year: String,
    end_date_day: String,
    end_date_month: String,
    group: String,
    member: String,
    formation: String,
    lithology: String,
    max_ma: String,
    min_ma: String,
    end_date_year: String,
    verbatim_habitat: String,
    field_notes: String,
    verbatim_datum: String,
    verbatim_elevation: String,
    meta_prioritize_geographic_area: Boolean,
    roles_attributes: {
      id: Number,
      _destroy: Boolean,
      type: String,
      person_id: Number,
      position: Number,
      person_attributes: {
        last_name: String,
        first_name: String,
        suffix: String,
        prefix: String
      }
    },
    identifiers_attributes: {
      id: Number,
      namespace_id: Number,
      identifier: String,
      type: String,
      _destroy: Boolean
    },
    data_attributes_attributes: {
      id: Number,
      _destroy: Boolean,
      controlled_vocabulary_term_id: Number,
      type: String,
      attribute_subject_id: Number,
      attribute_subject_type: String,
      value: String
    }
  }
}

export const CollectingEvent = {
  ...baseCRUD(controller, permitParams),
  ...annotations(controller),

  attributes: () => AjaxCall('get', `/${controller}/attributes`),

  clone: (id, params) => AjaxCall('post', `/${controller}/${id}/clone`, params),

  filter: (params) => AjaxCall('post', `/${controller}/filter.json`, params),

  navigation: (id) => AjaxCall('get', `/${controller}/${id}/navigation`),

  parseVerbatimLabel: (params) =>
    AjaxCall('get', '/collecting_events/parse_verbatim_label', { params }),

  batchUpdate: (params) =>
    AjaxCall('patch', `/${controller}/batch_update `, params),

  stepwiseCollectors: (params) =>
    AjaxCall(
      'get',
      '/tasks/collecting_events/stepwise/collectors/data.json',
      { params }
    ),
}