--
作業日報一覧を取得するAPI
指定日を含む週のログインユーザーの日報と日程データを全て取得する
| date | string 日付をyyyy-MM-dd形式で指定 |
[- {
- "date": "2022-07-04",
- "youbi": "月",
- "is_koukyu": false,
- "is_locked": false,
- "nittei": [
- {
- "id": "2433dfca-3b49-45cd-bc40-09e8a3e6d17a",
- "date": "2022-07-04",
- "created_at": "2022-07-04 17:00:00",
- "updated_at": "2022-07-04 17:00:00",
- "has_error": false,
- "type": "jisseki",
- "start_at": "2022-07-04 08:00:00",
- "end_at": "2022-07-04 17:00:00",
- "title": "ダクト工事",
- "comment": null,
- "kouji_id": null,
- "kyakusaki": "AAAA(株)"
}, - {
- "id": "9754bgka-3v59-77ca-gc40-97e6c3a6d17f",
- "date": "2022-07-04",
- "created_at": "2022-07-05 01:00:00",
- "updated_at": "2022-07-05 01:00:00",
- "has_error": false,
- "type": "jisseki",
- "start_at": "2022-07-04 18:00:00",
- "end_at": "2022-07-05 01:00:00",
- "title": "配管工事",
- "comment": null,
- "kouji_id": null,
- "kyakusaki": "AAAA(株)"
}
]
}, - {
- "date": "2022-07-05",
- "youbi": "火",
- "is_koukyu": false,
- "is_locked": false,
- "nittei": [ ]
}, - {
- "date": "2022-07-06",
- "youbi": "水",
- "is_koukyu": false,
- "is_locked": false,
- "nittei": [ ]
}, - {
- "date": "2022-07-07",
- "youbi": "木",
- "is_koukyu": false,
- "is_locked": false,
- "nittei": [ ]
}, - {
- "date": "2022-07-08",
- "youbi": "金",
- "is_koukyu": false,
- "is_locked": false,
- "nittei": [ ]
}, - {
- "date": "2022-07-09",
- "youbi": "土",
- "is_koukyu": false,
- "is_locked": false,
- "nittei": [ ]
}, - {
- "date": "2022-07-10",
- "youbi": "日",
- "is_koukyu": false,
- "is_locked": false,
- "nittei": [ ]
}
]--
予定または実績の登録を行う
社員IDはログイン中ユーザーのIDを使用する
| type required | string Enum: "yotei" "jisseki" 日程タイプ yotei または jisseki |
| date required | string <date> 日付(yyyy-MM-dd) |
| start_at required | string <date-time> 開始時間(yyyy-MM-dd hh:mm:ss) |
| end_at required | string <date-time> 終了時間(yyyy-MM-dd hh:mm:ss) |
| title required | string タイトルまたは作業内容 |
| comment | string or null コメント |
| kouji_id | string or null <= 15 characters [A-Z]{2}[0-9]{2}-[0-9]+(-[0-9A-Z]+){0,1} 工事番号(工事ID) |
| kyakusaki | string or null 客先名 |
{- "type": "yotei",
- "date": "2022-06-01",
- "start_at": "2022-06-01 08:00:00",
- "end_at": "2022-06-01 12:00:00",
- "title": "現場A",
- "comment": "aaa\nbbb\nccc",
- "kouji_id": "AZ09-09-09AZ",
- "kyakusaki": "AAAA(株)"
}{- "message": "リクエストの内容が不正です",
- "errors": {
- "type": [
- "必ず指定してください。",
- "選択されたタイプは正しくありません。"
], - "date": [
- "必ず指定してください。"
], - "start_at": [
- "必ず指定してください。"
], - "end_at": [
- "必ず指定してください。",
- "開始日時より後の時間を指定してください。"
], - "title": [
- "必ず指定してください。",
- "40文字以下で指定してください。"
], - "kouji_id": [
- "15文字以下で指定してください。",
- "正しい形式を指定してください。"
], - "kyakusaki": [
- "160文字以下で指定してください。"
]
}
}日程IDに一致する予定または実績のデータを取得する
| id required | string Example: 2433dfca-3b49-45cd-bc40-09e8a3e6d17a 日程ID |
{- "type": "yotei",
- "date": "2022-07-01",
- "start_at": "2022-07-01 08:00:00",
- "end_at": "2022-07-01 12:00:00",
- "kouji_id": null,
- "kyakusaki": null,
- "title": "現場AAA",
- "comment": null,
- "is_locked": false
}日程ID(@path)に一致する日程データを更新する
nittei.type が jisseki だった場合は nippou を更新
ロックされている日報を変更する場合 管理者かつ日程編集権限のある部署に所属している場合編集可能とする
| id required | string Example: 2433dfca-3b49-45cd-bc40-09e8a3e6d17a 日程ID |
| type required | string Enum: "yotei" "jisseki" 日程タイプ yotei または jisseki |
| date required | string <date> 日付(yyyy-MM-dd) |
| start_at required | string <date-time> 開始時間(yyyy-MM-dd hh:mm:ss) |
| end_at required | string <date-time> 終了時間(yyyy-MM-dd hh:mm:ss) |
| title required | string タイトルまたは作業内容 |
| comment | string or null コメント |
| kouji_id | string or null <= 15 characters [A-Z]{2}[0-9]{2}-[0-9]+(-[0-9A-Z]+){0,1} 工事番号(工事ID) |
| kyakusaki | string or null 客先名 |
{- "type": "yotei",
- "date": "2022-06-01",
- "start_at": "2022-06-01 08:00:00",
- "end_at": "2022-06-01 12:00:00",
- "title": "現場A",
- "comment": "aaa\nbbb\nccc",
- "kouji_id": "AZ09-09-09AZ",
- "kyakusaki": "株式会社AAA"
}{ }--
日程IDに一致する日程を削除する
jisseki が削除された場合は同日の日報データの timecard を修正する
※jisseki が1件しか存在せず、そのjissekiを削除する場合は日報も削除するようにしてください。
| id required | string Example: 2433dfca-3b49-45cd-bc40-09e8a3e6d17a 日程ID |
{ }--
busho_id(@path)に一致する busho の日程フォーム項目に関連するフラグを返却する
| busho_id required | integer 部署ID |
{- "nittei_show_kouji_id": true,
- "nittei_show_kyakusaki": false,
- "nittei_can_multi_line_input_title": false
}--
Request を基に nittei に登録する
| date required | string <date> 日付(yyyy-MM-dd) |
| nittei_type required | string Enum: "yotei" "jisseki" 日程タイプ |
| kyuka_type required | string Enum: "kekkin" "yuukyu" "daikyu" "dokyu" "koukyu" "tokubetu" 休暇タイプ |
| time_type required | string Enum: "zenkyu" "gozenkyu" "gogokyu" 休暇時間タイプ |
| comment | string or null |
{- "date": "2022-07-04",
- "nittei_type": "yotei",
- "kyuka_type": "yuukyu",
- "time_type": "zenkyu",
- "comment": "通院のため"
}{ }--
工事番号一覧を取得するAPI
jutyuubiの最新50件分+固定の工事番号を返却する
display_text: 「id kokyaku_name name」
search_text: 「id,kokyaku_name,name,kokyaku_name_kana」
[- {
- "id": "AB12-012-A",
- "name": "工事名テスト",
- "kokyaku_name": "顧客名テスト",
- "kokyaku_name_kana": "コキャクメイテスト",
- "display_text": "AB12-012-A 顧客名テスト 工事名テスト",
- "search_text": "AB12-012-A,顧客名テスト,工事名テスト,コキャクメイテスト"
}, - {
- "id": "AB12-012-B",
- "name": "工事名テスト2",
- "kokyaku_name": "顧客名テスト2",
- "kokyaku_name_kana": "コキャクメイテストニ",
- "display_text": "AB12-012-B 顧客名テスト2 工事名テスト2",
- "search_text": "AB12-012-B,顧客名テスト2,工事名テスト2,コキャクメイテストニ"
}
]--
条件に一致する社員の指定日の日報データを返却する
ログインユーザーの部署が総務の場合: retired が 0(false) の社員全員分の日報を返却する
総務以外の場合: retired が 0(false) かつログインユーザーと同じ部署の社員全員分の日報を返却する
ソート※フロントのソートでも使用するかもしれないので、この要素はレスポンスにも含む
※日報が存在しない場合でも該当社員全員分の配列を返却する
※date(@param)の指定がない場合は当日とみなす
| date | string 取得したい日報の対象日 |
[- {
- "id": null,
- "shain_id": 2,
- "busho_id": 2,
- "busho_name": "購買製造課",
- "display_order": 50,
- "last_name": "佐藤",
- "first_name": "花子",
- "kana": "さとうはなこ",
- "timecard_in": null,
- "timecard_out": null,
- "is_sent": false
}, - {
- "id": "64e4a9ed-a0a0-494e-9f89-b9062aab316e",
- "shain_id": 1,
- "busho_id": 1,
- "busho_name": "技術本部",
- "display_order": 100,
- "last_name": "山田",
- "first_name": "太郎",
- "kana": "やまだたろう",
- "timecard_in": "2022-04-18 08:00:00",
- "timecard_out": "2022-04-18 17:00:00",
- "is_sent": true
}
]--
社員IDに一致する実績日程情報を対象日から対象日6日前までの7日間分を取得
※date(@param)の指定がない場合は当日とみなす
kouji: kouji_id が kouji テーブルに存在するかしないかで値が変わる
存在する場合は(koujiテーブルの)「id kokyaku_name name」
存在しない場合は nittei の kouji_id
| shain_id required | string Example: 1 社員ID |
| date | string 取得したい日程の対象日 |
[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "start_at": "2022-08-24 08:00:00",
- "end_at": "2022-08-24 12:00:00",
- "kouji": "AA00-000-A0 株式会社AAA 現場A",
- "kyakusaki": null,
- "title": "配管工事",
- "comment": null
}, - {
- "id": "581f8bae-4751-5018-cbeb-96cbcaba5f58",
- "start_at": "2022-08-24 13:00:00",
- "end_at": "2022-08-24 17:00:00",
- "kouji": null,
- "kyakusaki": null,
- "title": "特別休暇",
- "comment": "新型コロナワクチン接種のため"
}
]--
shain テーブルから retired が 0(false) の社員を取得
以下の条件でソートして返却する
[- {
- "id": 3,
- "busho_id": 8,
- "busho_name": "総務本部",
- "display_order": 80,
- "first_name": "花子",
- "last_name": "斎藤",
- "kana": "さいとうはなこ",
- "email": "saitou@example.com",
- "is_administrator": true,
- "is_mh_list_target": false
}, - {
- "id": 2,
- "busho_id": 8,
- "busho_name": "総務本部",
- "display_order": 80,
- "first_name": "次郎",
- "last_name": "鈴木",
- "kana": "すずきじろう",
- "email": "suzuki@example.com",
- "is_administrator": true,
- "is_mh_list_target": false
}, - {
- "id": 1,
- "busho_id": 7,
- "busho_name": "技術本部",
- "display_order": 100,
- "first_name": "太郎",
- "last_name": "山田",
- "kana": "やまだたろう",
- "email": "yamada@example.com",
- "is_administrator": false,
- "is_mh_list_target": true
}
]--
※メール送信に失敗した場合はDBをロールバックしてください。
| last_name required | string 姓 |
| first_name required | string 名 |
| short_name | string or null 氏名(略称) |
| kana required | string^[\u3040-\u309F]+$ 氏名(かな) |
| email required | string メールアドレス |
| password required | string パスワード |
| password_confirmation required | string パスワード確認 |
| busho_id required | integer 部署ID |
| is_administrator required | boolean 管理者を選択した場合true |
| is_mh_list_target required | boolean 作業時間集計対象フラグ |
{- "last_name": "山田",
- "first_name": "太郎",
- "short_name": "山田(太)",
- "kana": "やまだたろう",
- "email": "yamada@gmail.com",
- "password": "4gHErv4iVECs",
- "password_confirmation": "4gHErv4iVECs",
- "busho_id": 1,
- "is_administrator": false,
- "is_mh_list_target": true
}{- "message": "リクエストの内容が不正です",
- "errors": {
- "last_name": [
- "必ず指定してください。",
- "45文字以下で指定してください。"
], - "first_name": [
- "必ず指定してください。",
- "45文字以下で指定してください。"
], - "short_name": [
- "40文字以下で指定してください。"
], - "kana": [
- "必ず指定してください。",
- "40文字以下で指定してください。",
- "ひらがなで指定してください。"
], - "email": [
- "必ず指定してください。",
- "255文字以下で指定してください。",
- "有効なメールアドレスを指定してください。",
- "同じメールアドレスが既に登録されています。"
], - "password": [
- "必ず指定してください。"
], - "password_confirmation": [
- "パスワードが一致していません。"
], - "busho_id": [
- "選択された部署は正しくありません。"
], - "is_administrator": [
- "選択された権限は正しくありません。"
], - "is_mh_list_target": [
- "選択された作業時間集計は正しくありません。"
]
}
}--
| id required | integer Example: 1 社員ID |
{- "id": 1,
- "last_name": "山田",
- "first_name": "太郎",
- "short_name": "山田(太)",
- "kana": "やまだたろう",
- "email": "yamada@gmail.com",
- "busho_id": 1,
- "is_administrator": false,
- "is_mh_list_target": true
}--
メールアドレスの重複は同一idのメールアドレスを除く
パスワードは入力されている場合のみ更新する
また、パスワードが入力されている場合はパスワード確認も必ず入力され、一致している必要がある
| id required | integer Example: 1 社員ID |
| last_name required | string |
| first_name required | string |
| short_name | string or null |
| kana required | string^[\u3040-\u309F]+$ |
| email required | string |
| password | string or null |
| password_confirmation | string or null |
| busho_id required | integer |
| is_administrator required | boolean |
| is_mh_list_target required | boolean |
{- "last_name": "山田",
- "first_name": "太郎",
- "short_name": "山田(太)",
- "kana": "やまだたろう",
- "email": "yamada@gmail.com",
- "password": "4gHErv4iVECs",
- "password_confirmation": "4gHErv4iVECs",
- "busho_id": 1,
- "is_administrator": false,
- "is_mh_list_target": true
}{ }[- {
- "id": 5,
- "name": "営業課"
}, - {
- "id": 3,
- "name": "設計課"
}, - {
- "id": 4,
- "name": "氷温事業室"
}, - {
- "id": 6,
- "name": "購買製造課"
}, - {
- "id": 1,
- "name": "青森メンテナンス"
}, - {
- "id": 2,
- "name": "八戸メンテナンス"
}, - {
- "id": 8,
- "name": "総務本部"
}, - {
- "id": 7,
- "name": "技術本部"
}
]--
パスワード再設定画面のリンクを記載したメールを送信する
※メール送信に失敗した場合はすべての処理を最初からやり直すためDBもロールバックしてください。
| email required | string <email> |
{- "email": "user@example.com"
}{ }--
※パスワードの強度は要確認
| token required | string パスワード再設定トークン |
| password required | string |
| password_confirmation required | string |
{- "password": "ryh9QyqxPAP8",
- "password_confirmation": "ryh9QyqxPAP8"
}{ }--
ログイン中のユーザー本人が設定からパスワードを変更する場合に実行するAPI
※管理者が変更する場合はユーザー更新APIで変更する ※パスワードの強度は要確認
| shain_id required | integer 社員ID |
| current_password required | string |
| new_password required | string |
{- "current_password": "4gHErv4iVECs",
- "new_password": "ryh9QyqxPAP8"
}{ }--
認証に成功した場合ログインしたユーザーの情報を返却する
※ログイン保持の期間を長め(1か月くらい)にしておく
| email required | string メールアドレス |
| password required | string パスワード |
{- "email": "sample@gmail.com",
- "password": "4gHErv4iVECs"
}{- "id": 1,
- "busho_id": 1,
- "first_name": "太郎",
- "last_name": "山田",
- "email": "yamada@gmail.com",
- "retired": false,
- "is_administrator": true,
- "can_edit_nippou": false
}