byeongkeunahn / the-camp-lib

๐Ÿ“ฎ Unofficial library for THE CAMP, an army communication service

Home Page:https://www.npmjs.com/package/the-camp-lib

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

THE CAMP Unofficial Library

npm downloads npm version npm license

๋Œ€๊ตญ๋ฏผ ๊ตญ๊ตฐ ์†Œํ†ต ์„œ๋น„์Šค ๋” ์บ ํ”„๋ฅผ ์‚ฌ์ดํŠธ ์™ธ๋ถ€์—์„œ ์ด์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“  ๋น„๊ณต์‹ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ ์ธํ„ฐ๋„ท ํŽธ์ง€ ๋ฐœ์†ก์„ ์ค‘์‹ฌ์œผ๋กœ ๊ตฌํ˜„๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

Installation

$ npm install the-camp-lib --save

Usage

const thecamp = require('the-camp-lib');
// or
import * as thecamp from 'the-camp-lib';

async function main() {
  const cookies = await thecamp.login('user@email.com', 'password');
  const [group] = await thecamp.fetchGroups(cookies, '00์—ฐ๋Œ€', '20190829');

  const trainee = {
    traineeName: '๋ฐ•๋ซ„๋ซ„',
    birth: '19981129',
    unitCode: group.unitCode,
    groupId: group.groupId,
    relationship: thecamp.Relationship.FRIEND,
  };

  const message = {
    title: '์ œ๋ชฉ',
    content: '๋‚ด์šฉ',
  };

  await thecamp.sendMessage(cookies, trainee, message);
}

๋” ์บ ํ”„๋Š” ๋กœ๊ทธ์ธํ•  ๋•Œ ์ƒ์„ฑํ•œ ์ฟ ํ‚ค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์„ธ์…˜์„ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค. ๋กœ๊ทธ์ธ์ด ํ•„์š”ํ•œ ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•˜๋ ค๋ฉด HTTP ์š”์ฒญ ํ—ค๋”์— ๋กœ๊ทธ์ธ ์‹œ ์ƒ์„ฑ๋œ ์ฟ ํ‚ค๋ฅผ ํฌํ•จํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Development

์ €์žฅ์†Œ๋ฅผ ํด๋ก ํ•˜๊ณ  ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

$ git clone https://github.com/ParkSB/the-camp-lib.git
$ cd the-camp-lib
$ npm install

๋ชจ๋“  ์ฝ”๋“œ๋Š” src ๋””๋ ‰ํ† ๋ฆฌ ์•„๋ž˜์— ์žˆ์Šต๋‹ˆ๋‹ค. ์ฐจํ›„ ์œ ๋‹› ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. ๊ทธ ์ „๊นŒ์ง€๋Š” test/interaration ๋””๋ ‰ํ† ๋ฆฌ ํ•˜์œ„์— ํ…Œ์ŠคํŠธํ•  ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ts-node filename.ts๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ํ…Œ์ŠคํŠธ ํ•ฉ๋‹ˆ๋‹ค.

์‰˜์—์„œ npm run build๋ฅผ ์‹คํ–‰ํ•˜๋ฉด dist ๋””๋ ‰ํ† ๋ฆฌ์— ๋นŒ๋“œ๋œ ํŒŒ์ผ์ด ๋งŒ๋“ค์–ด์ง‘๋‹ˆ๋‹ค. test ๋””๋ ‰ํ† ๋ฆฌ ํ•˜์œ„์— ์˜ˆ์‹œ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋งŒ๋“  ๋’ค ์‰˜์—์„œ npm init, npm install ../../ --save๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ํ•ด๋‹น ๋””๋ ‰ํ† ๋ฆฌ์— ํŒจํ‚ค์ง€๊ฐ€ ์„ค์น˜๋ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋กœ์ปฌ์—์„œ ๋ฐฐํฌ ๋ฒ„์ „์„ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Specifications

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ๋” ์บ ํ”„์— ๊ฐ€์ž…๋œ ๊ณ„์ •์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

Models

interface Cookie

์„ธ์…˜ ์‹๋ณ„์„ ์œ„ํ•œ ์ฟ ํ‚ค.

  • scouter: stirng
  • jsessionid: string

interface Trainee

ํ›ˆ๋ จ๋ณ‘ ์ •๋ณด.

  • unitCode: string - ํ›ˆ๋ จ๋ณ‘์ด ์†Œ์†๋œ ์—ฐ๋Œ€/์‚ฌ๋‹จ ์‹๋ณ„ ์ฝ”๋“œ
  • groupId: string - ํ›ˆ๋ จ๋ณ‘์ด ์†Œ์†๋œ ์นดํŽ˜ ์‹๋ณ„ ์ฝ”๋“œ
  • traineeName: string - ํ›ˆ๋ จ๋ณ‘ ์ด๋ฆ„ (ex. ๋ฐ•๋ซ„๋ซ„)
  • birth: number - ํ›ˆ๋ จ๋ณ‘ ์ƒ๋…„ ์›”์ผ (ex. 19981129)
  • relationship: Relationship - ํ›ˆ๋ จ๋ณ‘๊ณผ์˜ ๊ด€๊ณ„

enum Relationship

ํ›ˆ๋ จ๋ณ‘๊ณผ์˜ ๊ด€๊ณ„.

  • MOTHER = '์–ด๋จธ๋‹ˆ'
  • FATHER = '์•„๋ฒ„์ง€'
  • SPOUSE = '๋ฐฐ์šฐ์ž'
  • GRANDPARENTS = '์กฐ๋ถ€๋ชจ'
  • SIBLING = 'ํ˜•์ œ/๋‚จ๋งค'
  • FRIEND = '์นœ๊ตฌ'
  • LOVER = '์• ์ธ'
  • RELATIVE = '์นœ์ฒ™'

interface Message

์ธํ„ฐ๋„ท ํŽธ์ง€ ์ •๋ณด.

  • title: string - ํŽธ์ง€ ์ œ๋ชฉ
  • content: string - ํŽธ์ง€ ๋‚ด์šฉ (2000์ž ์ดํ•˜)
  • boardId?: string
  • fileInfo?: any[] - ์ฒจ๋ถ€ ํŒŒ์ผ ์ •๋ณด (๊ตฌํ˜„ ์˜ˆ์ •)

interface Group

๊ฐ€์ž… ์นดํŽ˜ ์ •๋ณด.

  • unitName: string - ์—ฐ๋Œ€/์‚ฌ๋‹จ ์ด๋ฆ„ (ex. 00์—ฐ๋Œ€, 00์‚ฌ๋‹จ)
  • fullName: string - ์นดํŽ˜ ์ „์ฒด ์ด๋ฆ„ (ex. 00์—ฐ๋Œ€ 0๊ต์œก๋Œ€ 00์ค‘๋Œ€)
  • enterDate: string - ํ›ˆ๋ จ๋ณ‘ ์ž…์†Œ ๋‚ ์งœ (ex. 20190829)
  • groupId: string - ์นดํŽ˜ ์‹๋ณ„ ์ฝ”๋“œ
  • groupName: string - ์นดํŽ˜ ์ด๋ฆ„ (ex. 0๊ต์œก๋Œ€ 00์ค‘๋Œ€)
  • groupImage: string - ์นดํŽ˜ ๋Œ€ํ‘œ ์ด๋ฏธ์ง€
  • accessDate: string - ์š”์ฒญ ๋‚ ์งœ
  • unitCode: string - ์—ฐ๋Œ€/์‚ฌ๋‹จ ์‹๋ณ„ ์ฝ”๋“œ
  • unitType: number - ์œก๊ตฐํ›ˆ๋ จ์†Œ(1)/์‚ฌ๋‹จ์‹ ๊ต๋Œ€(2) ์—ฌ๋ถ€
  • grade: number

Services

login(id: string, password: string)

๋” ์บ ํ”„์— ๋กœ๊ทธ์ธํ•ด ์„ธ์…˜ ์ฟ ํ‚ค๋ฅผ ์–ป๋Š”๋‹ค.

  • Parameters
    • id: string - ๋” ์บ ํ”„ ๊ณ„์ • ์ด๋ฉ”์ผ
    • password: string - ๋” ์บ ํ”„ ๊ณ„์ • ๋น„๋ฐ€๋ฒˆํ˜ธ
  • Return value
    • Promise<Cookie> - ์„ธ์…˜ ์‹๋ณ„์„ ์œ„ํ•œ ์ฟ ํ‚ค

fetchGroups(cookies: Cookie, unitName?: string, enterDate?: string)

๊ฐ€์ž… ์นดํŽ˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค.

  • Parameters
    • cookies: Cookie - ์„ธ์…˜ ์‹๋ณ„์„ ์œ„ํ•œ ์ฟ ํ‚ค
    • unitName?: string (Optional) - ํ›ˆ๋ จ๋ณ‘์ด ์†Œ์†๋œ ์—ฐ๋Œ€/์‚ฌ๋‹จ ์ด๋ฆ„ (ex. 00์—ฐ๋Œ€, 00์‚ฌ๋‹จ)
    • enterDate?: string (Optional) - ํ›ˆ๋ จ๋ณ‘ ์ž…์†Œ ๋‚ ์งœ (ex. 20190829)
  • Retrun value
    • Promise<Group[]> - ๊ฐ€์ž…ํ•œ ์นดํŽ˜ ๋ชฉ๋ก. unitName ๋˜๋Š” enterDate๊ฐ€ ์ฃผ์–ด์ง€๋ฉด ํ•ด๋‹น ํ›ˆ๋ จ๋ณ‘์ด ์†Œ์†๋œ ์นดํŽ˜๋งŒ Group[] ํƒ€์ž…์œผ๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

sendMessage(cookies: Cookie, trainee: Trainee, message: Message)

์ธํ„ฐ๋„ท ํŽธ์ง€๋ฅผ ์ „์†กํ•œ๋‹ค.

  • Parameters
    • cookies: Cookie - ์„ธ์…˜ ์‹๋ณ„์„ ์œ„ํ•œ ์ฟ ํ‚ค
    • trainee: Trainee - ํ›ˆ๋ จ๋ณ‘ ์ •๋ณด
    • message: Message - ์ธํ„ฐ๋„ท ํŽธ์ง€ ์ •๋ณด. message.boardId ๋˜๋Š” message.fileInfo๊ฐ€ ์ฃผ์–ด์ง€์ง€ ์•Š์œผ๋ฉด ๊ฐ๊ฐ ๋นˆ ๋ฌธ์ž์—ด๊ณผ ๋นˆ ๋ฐฐ์—ด์„ ํ• ๋‹นํ•œ๋‹ค.
  • Return value
    • Promise<request.Response> - ์š”์ฒญ์— ๋Œ€ํ•œ HTTP ์‘๋‹ต

Examples

  • send-message: ์ธํ„ฐ๋„ท ํŽธ์ง€ ์ „์†ก ์˜ˆ์‹œ

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

๐Ÿ“ฎ Unofficial library for THE CAMP, an army communication service

https://www.npmjs.com/package/the-camp-lib

License:MIT License


Languages

Language:TypeScript 100.0%