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

Clinical-Genomics / arnold / 7088148978

04 Dec 2023 02:37PM UTC coverage: 0.0%. First build
7088148978

Pull #45

github

ChrOertlin
fix depoy script
Pull Request #45: Poetry support,fix workflows, update python

0 of 699 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
×
5
from arnold.models.database import Sample
×
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

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

35

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

43
    return samples
×
44

45

46
@router.post("/sample/")
×
47
def create_sample(
×
48
    sample: Sample, 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, content="Sample already in database"
53
        )
54
    try:
×
55
        create.create_sample(adapter=adapter, sample=sample)
×
56
    except Exception as e:
×
57
        return JSONResponse(
×
58
            status_code=status.HTTP_405_METHOD_NOT_ALLOWED,
59
            content=f"exception {e} ",
60
        )
61

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

66

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

80

81
@router.put("/sample/")
×
82
def update_sample(
×
83
    sample: Sample, adapter: ArnoldAdapter = Depends(get_arnold_adapter)
84
) -> JSONResponse:
85

86
    try:
×
87
        update.update_sample(adapter=adapter, sample=sample)
×
88
    except Exception as e:
×
89
        return JSONResponse(
×
90
            status_code=status.HTTP_405_METHOD_NOT_ALLOWED,
91
            content=f"exception {e} ",
92
        )
93

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

98

99
@router.put("/samples/")
×
100
def update_samples(
×
101
    samples: List[Sample], adapter: ArnoldAdapter = Depends(get_arnold_adapter)
102
) -> JSONResponse:
103

104
    try:
×
105
        update.update_samples(adapter=adapter, samples=samples)
×
106
    except Exception as e:
×
107
        return JSONResponse(
×
108
            status_code=status.HTTP_405_METHOD_NOT_ALLOWED,
109
            content=f"exception {e} ",
110
        )
111
    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