vault backup: 2026-05-25 21:15:05

This commit is contained in:
Dmitry
2026-05-25 21:15:05 +03:00
parent fbe6bccd6d
commit 96f867cba5
5 changed files with 588 additions and 431 deletions
@@ -0,0 +1,74 @@
---
status: seed
type: guide
tags:
- programming
- ruby-on-rails
- api
created: 2026-05-25
updated: 2026-05-25
title: API импорт в Rails через runner
source: "[[Работа с API для проекта Attendance Mephi]]"
---
# API импорт в Rails через runner
Памятка по ручному запуску импортов в [[Ruby On Rails]]-проекте Attendance Mephi для [[НИР]].
## Контекст
Импорт запускается через `bin/rails runner`:
```sh
/home/ada/.local/bin/mise exec ruby -- bin/rails runner '...'
```
Актуальный семестр берется из `Term.actual`. Для старта `2026-02-07` код семестра: `20252`.
## Credentials
```yaml
api:
home_mephi:
host:
code:
token:
students_mephi:
host:
username:
password:
```
См. также: [[Rails credentials edit не открывает редактор]].
## Endpoints
```text
GET {home_mephi.host}/study_groups.json?term_code=20252&code=...&token=...
GET {home_mephi.host}/tutors.json?term_code=20252&code=...&token=...
GET {students_mephi.host}/get_list_by_group_name?group=...&term=20252
GET {home_mephi.host}/tutors/{staff_id}/schedules.json?term_code=20252&date=YYYY-MM-DD&code=...&token=...
```
`students_mephi` использует Basic Auth: `username/password`.
## Ручная загрузка
```sh
/home/ada/.local/bin/mise exec ruby -- bin/rails runner 'ImportGroupsService.execute'
/home/ada/.local/bin/mise exec ruby -- bin/rails runner 'ImportTutorsService.execute'
/home/ada/.local/bin/mise exec ruby -- bin/rails runner 'ImportStudentsService.execute'
/home/ada/.local/bin/mise exec ruby -- bin/rails runner 'term = Term.actual; ImportDisciplineService.execute(nil, term)'
```
Расписание на сегодня:
```sh
/home/ada/.local/bin/mise exec ruby -- bin/rails runner 'term = Term.actual; ImportScheduleService.execute(Date.today, term)'
```
Расписание за весь семестр до сегодня:
```sh
/home/ada/.local/bin/mise exec ruby -- bin/rails runner 'term = Term.actual; finish = [term.get_finish_date, Date.today].min; (term.start_date..finish).each { |date| ImportScheduleService.execute(date, term) unless date.wday == 0 }'
```
@@ -13,6 +13,7 @@ title: Ruby On Rails
%% Begin Waypoint %%
- [[Active Storage]]
- [[API импорт в Rails через runner]]
- [[Rails credentials edit не открывает редактор]]
- [[Sidekiq - основа работы]]