• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Clinical-Genomics / arnold / 7114672788

06 Dec 2023 12:43PM UTC coverage: 0.0%. Remained the same
7114672788

push

github

web-flow
add(bioinfo models) (#49) (patch)

## Added
Adds Bioinfo models to arnold

## Changed
Renamed "Sample" model to "LimsSample" to make a better distinction between LAB and BIOINFO related metrics.
Not sure if this will persist later on or these will me merged in some way.

0 of 190 new or added lines in 18 files covered. (0.0%)

2 existing lines in 1 file now uncovered.

0 of 862 relevant lines covered (0.0%)

0.0 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/arnold/api/api_v1/endpoints/sample.py
1
from arnold.adapter import ArnoldAdapter
×
2
from arnold.crud import create, update
×
3
from arnold.crud.read.sample import find_sample, find_all_samples
×
4
from arnold.crud.read.step import find_sample_fields
×
NEW
5
from arnold.models.database import LimsSample
×
6
from typing import List
×
7
from fastapi import APIRouter, Depends, status
×
8
from fastapi.responses import JSONResponse
×
9
import logging
×
10
import arnold.crud.read.sample
×
11
from arnold.settings import get_arnold_adapter
×
12

13
LOG = logging.getLogger(__name__)
×
14

15
router = APIRouter()
×
16

17

18
@router.get("/sample/fields")
×
19
def get_sample_fields(
×
20
    adapter: ArnoldAdapter = Depends(get_arnold_adapter),
21
):
22
    """Get sample fields"""
23
    return find_sample_fields(adapter=adapter)
×
24

25

NEW
26
@router.get("/sample/{sample_id}", response_model=LimsSample)
×
27
def get_sample(
×
28
    sample_id: str,
29
    adapter: ArnoldAdapter = Depends(get_arnold_adapter),
30
):
31
    """fetch a sample by sample id"""
NEW
32
    sample: LimsSample = find_sample(sample_id=sample_id, adapter=adapter)
×
33
    return sample
×
34

35

NEW
36
@router.get("/samples/", response_model=List[LimsSample])
×
37
def get_samples(
×
38
    adapter: ArnoldAdapter = Depends(get_arnold_adapter),
39
):
40
    """Get all samples"""
NEW
41
    samples: List[LimsSample] = find_all_samples(adapter=adapter)
×
42

43
    return samples
×
44

45

46
@router.post("/sample/")
×
47
def create_sample(
×
48
    sample: LimsSample, adapter: ArnoldAdapter = Depends(get_arnold_adapter)
49
) -> JSONResponse:
50
    if arnold.crud.read.sample.find_sample(sample_id=sample.sample_id, adapter=adapter):
×
51
        return JSONResponse(
×
52
            status_code=status.HTTP_405_METHOD_NOT_ALLOWED,
53
            content=f"Sample: sample.sample_id is already in database",
54
        )
55
    try:
×
56
        create.create_sample(adapter=adapter, sample=sample)
×
57
    except Exception as e:
×
58
        return JSONResponse(
×
59
            status_code=status.HTTP_405_METHOD_NOT_ALLOWED,
60
            content=f"exception {e} ",
61
        )
62

63
    return JSONResponse(
×
64
        status_code=status.HTTP_200_OK,
65
        content=f"Sample: {sample.sample_id} inserted to database",
66
    )
67

68

69
@router.post("/samples/")
×
70
def create_samples(
×
71
    samples: List[LimsSample], adapter: ArnoldAdapter = Depends(get_arnold_adapter)
72
) -> JSONResponse:
73
    try:
×
74
        create.create_samples(adapter=adapter, samples=samples)
×
75
    except Exception as e:
×
76
        return JSONResponse(
×
77
            status_code=status.HTTP_405_METHOD_NOT_ALLOWED,
78
            content=f"exception {e} ",
79
        )
80
    return JSONResponse(status_code=status.HTTP_200_OK, content="Samples inserted to db")
×
81

82

83
@router.put("/sample/")
×
84
def update_sample(
×
85
    sample: LimsSample, adapter: ArnoldAdapter = Depends(get_arnold_adapter)
86
) -> JSONResponse:
87
    try:
×
88
        update.update_sample(adapter=adapter, sample=sample)
×
89
    except Exception as e:
×
90
        return JSONResponse(
×
91
            status_code=status.HTTP_405_METHOD_NOT_ALLOWED,
92
            content=f"exception {e} ",
93
        )
94

95
    return JSONResponse(
×
96
        status_code=status.HTTP_200_OK,
97
        content=f"Sample: {sample.sample_id} inserted to database",
98
    )
99

100

101
@router.put("/samples/")
×
102
def update_samples(
×
103
    samples: List[LimsSample], adapter: ArnoldAdapter = Depends(get_arnold_adapter)
104
) -> JSONResponse:
105
    try:
×
106
        update.update_samples(adapter=adapter, samples=samples)
×
107
    except Exception as e:
×
108
        return JSONResponse(
×
109
            status_code=status.HTTP_405_METHOD_NOT_ALLOWED,
110
            content=f"exception {e} ",
111
        )
112
    return JSONResponse(status_code=status.HTTP_200_OK, content="Samples inserted to db")
×
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc