analogcoding

8/1 - 4주 프로젝트 본문

Be well coding/In Immersive

8/1 - 4주 프로젝트

be well 2019. 8. 1. 20:28

Toy 42번 문제. Hashtableresizing 명시된대로 처리는 했지만 정답은 아닌 것 같음.. 오늘 테스트케이스가 너무 관대하다.

var makeHashTable = function() {
  var result = {};
  var storage = [];
  var storageLimit = 4;
  var size = 0;

  result.insert = function(key, value) {
    let index = getIndexBelowMaxForKey(key, storageLimit);
    if (!storage[index]) {
      storage[index] = value;
      size++;
    } else {
      storage[index] = value;
    }

    if ((storageLimit / 4) * 3 <= size) {
      for (let i = 0; i < Math.ceil(storageLimit / 2); i++) {
        delete storage[i];
      }
      size = storage.length;
    }
  };

  return result;
}

 

graphQL 을 이용해서 nickName을 변경

DB 에 있는 비밀번호를 변경 (update) 해주기 위해서 grapgql 과 resolver 를 정의해서 해결했다.

 

먼저 nickname graphql 파일에서 mutation 형식과 리턴 값인 Result 를 정의하고

type Mutation {
  changePassWord(password: String!): Result!
}

type Result {
  success: Boolean!
  err: String
  isLogin: Boolean!
}

Mutation 에서 인자로 첫번 째는 부모객체 ( _ 로 생략) , 두번 째는 요청 시 인자로 들어오는 mutation 인자로 받아온 새 비밀번호를
DB 에 sequelize 문으로 변경해줬다.

export default {
  Mutation: {
    changePassWord: async (_, args, { req }) => {
      const { password } = args;
      const { userinfo } = req;

      if (userinfo !== undefined && userinfo.id !== undefined) {
        const { id, nickName } = userinfo;
        return User.update({ password }, { where: { id, nickName } })
          .then(user => {
            if (user) {
              return {
                success: true,
                err: null,
                isLogin: true
              };
            }

            return {
              success: false,
              err: "PassWord Change fail",
              isLogin: true
            };
          })
          .catch(err => {
            return {
              success: false,
              err,
              isLogin: true
            };
          });
      }

      return {
        success: false,
        err: "token expire",
        isLogin: false
      };
    }
  }
};

 

'Be well coding > In Immersive' 카테고리의 다른 글

8/3 - 4주 프로젝트  (0) 2019.08.05
8/2 - 4주 프로젝트  (0) 2019.08.03
7/31 - 4주 프로젝트  (0) 2019.08.01
7/30 - 4주 프로젝트 / GraphQL , JWT , PASSPORT  (0) 2019.07.30
7/29 - 4주 프로젝트  (0) 2019.07.29
Comments